Skip to content

Server Error when attempting to save after entering employee within job card "time logs" table. #26540

Description

@sailingphreek

Description of the issue

Job Card can not be saved with employee entered within "Time Logs" table.

Context information (for bug reports)

Output of bench version

erpnext 13.7.0
frappe 13.7.0

Steps to reproduce the issue

  1. Create a Job Card
  2. Select an employee within the "Time Logs" table
  3. Try to 'Save' the Job Card

Observed result

Server Error
pymysql.err.OperationalError: (1054, "Unknown column 'jc.employee' in 'where clause'")

Expected result

For the Job Card to save.

Stacktrace / full error message

Having a hard time getting the full error message for v13.7, but here it is for v13.6 where i was getting the same error.

{
“erpnext”: “13.6.0”,
“erpnext_support”: “0.0.3”,
“frappe”: “13.6.0”
}
Route
Form/Job Card/PO-JOB00009
Error Report
Traceback (most recent call last):
File “/home/frappe/frappe-bench/apps/frappe/frappe/app.py”, line 68, in application
response = frappe.api.handle()
File “/home/frappe/frappe-bench/apps/frappe/frappe/api.py”, line 55, in handle
return frappe.handler.handle()
File “/home/frappe/frappe-bench/apps/frappe/frappe/handler.py”, line 31, in handle
data = execute_cmd(cmd)
File “/home/frappe/frappe-bench/apps/frappe/frappe/handler.py”, line 67, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 1172, in call
return fn(*args, **newargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/job_card/job_card.py”, line 532, in make_time_log
doc.add_time_log(args)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/job_card/job_card.py”, line 209, in add_time_log
self.save()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 285, in save
return self._save(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 320, in _save
self.run_before_save_methods()
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 961, in run_before_save_methods
self.run_method(“validate”)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 859, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1148, in composer
return composed(self, method, *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 1131, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File “/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py”, line 853, in
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/job_card/job_card.py”, line 25, in validate
self.validate_time_logs()
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/job_card/job_card.py”, line 50, in validate_time_logs
data = self.get_overlap_for(d)
File “/home/frappe/frappe-bench/apps/erpnext/erpnext/manufacturing/doctype/job_card/job_card.py”, line 100, in get_overlap_for
}, as_dict=True)
File “/home/frappe/frappe-bench/apps/frappe/frappe/database/database.py”, line 146, in sql
self._cursor.execute(query, values)
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/cursors.py”, line 148, in execute
result = self._query(query)
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/cursors.py”, line 310, in _query
conn.query(q)
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py”, line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py”, line 775, in _read_query_result
result.read()
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py”, line 1156, in read
first_packet = self.connection._read_packet()
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py”, line 725, in _read_packet
packet.raise_for_error()
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/protocol.py”, line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File “/home/frappe/frappe-bench/env/lib/python3.7/site-packages/pymysql/err.py”, line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, “Unknown column ‘jc.employee’ in ‘where clause’”)
Request Data
{
“type”: “POST”,
“args”: {
“args”: "{“job_card_id”:“PO-JOB00009”,“start_time”:“2021-07-15 16:37:11”,"employees

Additional information

Thank you for the help!!!! Great software and grateful to be able to use it. Thank you!
OS version / distribution, ERPNext install method, etc.
Observed error on both 'trial license' on frappe hosted platform and on self-hosted Ubuntu server 20.04.2 LTS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions