revant / civil_contracting Goto Github PK
View Code? Open in Web Editor NEWFrappe App for use in Civil Contracting Business
Home Page: http://revant.github.io/civil_contracting
License: GNU General Public License v2.0
Frappe App for use in Civil Contracting Business
Home Page: http://revant.github.io/civil_contracting
License: GNU General Public License v2.0
Too bad this app is not included in the core as its own domain.
Adding Contract, Material and Progress handling would make it a complete domain package.
Among others:
Contract management:
Material management:
Progress management:
In Measurement Book Doctype:
When Project [Link] is selected, and "Get Measurement Sheets" button is clicked, Measurements Record Table should be populated by all Measurement Sheets having Selected Project Name
Filter Link field in Measurement Book - Child Table Measurement Book Record. sheet_no link field to show only submitted Measurement Sheets
I am testing this module out however 'Make Journal Entry' does not seem to make any entry to the system. And no error message .. Please share your experience
After Submitting "Measurement Sheet" add a comment to BOM selected in the "Measurement Sheet" as per permissions or show appropriate "not permitted" message and skip commenting (or suggest better logic)
Comment under BOM:
When ever we add multiple rows quantity ,it does not add columns but goes into hourly rate column. Can this bug be fixed?
Hi Revant,
Nice work, but the install-app phase dies with the following with Ubuntu 16.04 host with docker_frappe.
Installing civil_contracting...
Updating DocTypes for civil_contracting: [========================================]
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 94, in <module>
main()
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
click.Group(commands=commands)(prog_name='bench')
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 24, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py", line 165, in install_app
_install_app(app, verbose=context.verbose)
File "/home/frappe/frappe-bench/apps/frappe/frappe/installer.py", line 145, in install_app
add_to_installed_apps(name)
File "/home/frappe/frappe-bench/apps/frappe/frappe/installer.py", line 166, in add_to_installed_apps
post_install(rebuild_website)
File "/home/frappe/frappe-bench/apps/frappe/frappe/installer.py", line 230, in post_install
init_singles()
File "/home/frappe/frappe-bench/apps/frappe/frappe/installer.py", line 251, in init_singles
doc.save()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 256, in save
return self._save(*args, **kwargs)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 279, in _save
self.insert()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 207, in insert
self._set_defaults()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 587, in _set_defaults
new_doc = frappe.new_doc(df.options, as_dict=True)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 614, in new_doc
return get_new_doc(doctype, parent_doc, parentfield, as_dict=as_dict)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 20, in get_new_doc
frappe.local.new_doc_templates[doctype] = make_new_doc(doctype)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 41, in make_new_doc
set_user_and_static_default_values(doc)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 56, in set_user_and_static_default_values
user_default_value = get_user_default_value(df, defaults, user_permissions)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/create_new.py", line 71, in get_user_default_value
if (frappe.get_meta(df.options).document_type=="Setup"
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 655, in get_meta
return frappe.model.meta.get_meta(doctype, cached=cached)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/meta.py", line 33, in get_meta
lambda: Meta(doctype))
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 173, in hget
value = generator()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/meta.py", line 33, in <lambda>
lambda: Meta(doctype))
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/meta.py", line 72, in __init__
super(Meta, self).__init__("DocType", doctype)
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 103, in __init__
self.load_from_db()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/meta.py", line 77, in load_from_db
super(Meta, self).load_from_db()
File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 140, in load_from_db
frappe.throw(_("{0} {1} not found").format(_(self.doctype), self.name), frappe.DoesNotExistError)
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 323, in throw
msgprint(msg, raise_exception=exc, title=title, indicator='red')
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 309, in msgprint
_raise_exception()
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 282, in _raise_exception
raise raise_exception(encode(msg))
frappe.exceptions.DoesNotExistError: DocType Company not found
Seems like it needs python2.7 whereas Ubuntu 16.04 comes with python3.4, just a wild guess.
Cheers,
/z
After "Worker Sheet" is submitted show button to "Make payment entry"; just like "Expense Claim" or "Sales Invoice" in ERPNext
Journal Entries: (Ledgers are selected in Systems singles doctype "Worker Sheet Settings"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.