diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 3061af2130..e2aac6a45b 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -89,7 +89,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }, __('Create')); } - if (doc.docstatus == 1) { + if (doc.docstatus === 1) { cur_frm.add_custom_button(__('Maintenance Schedule'), function () { cur_frm.cscript.make_maintenance_schedule(); }, __('Create')); diff --git a/erpnext/patches/v12_0/stock_entry_enhancements.py b/erpnext/patches/v12_0/stock_entry_enhancements.py index b7f9a8b64b..640201e960 100644 --- a/erpnext/patches/v12_0/stock_entry_enhancements.py +++ b/erpnext/patches/v12_0/stock_entry_enhancements.py @@ -7,46 +7,45 @@ import frappe from frappe.custom.doctype.custom_field.custom_field import create_custom_fields def execute(): - create_stock_entry_types() + create_stock_entry_types() - company = frappe.get_cached_value("Company", {'country': 'India'}, 'name') - if company: - pass - # add_gst_hsn_code_field() + company = frappe.db.get_value("Company", {'country': 'India'}, 'name') + if company: + add_gst_hsn_code_field() def create_stock_entry_types(): - frappe.reload_doc('stock', 'doctype', 'stock_entry_type') - frappe.reload_doc('stock', 'doctype', 'stock_entry') + frappe.reload_doc('stock', 'doctype', 'stock_entry_type') + frappe.reload_doc('stock', 'doctype', 'stock_entry') - for purpose in ["Material Issue", "Material Receipt", "Material Transfer", - "Material Transfer for Manufacture", "Material Consumption for Manufacture", "Manufacture", - "Repack", "Subcontract", "Stock Out", "Stock In"]: + for purpose in ["Material Issue", "Material Receipt", "Material Transfer", + "Material Transfer for Manufacture", "Material Consumption for Manufacture", "Manufacture", + "Repack", "Subcontract", "Stock Out", "Stock In"]: - ste_type = frappe.get_doc({ - 'doctype': 'Stock Entry Type', - 'name': purpose, - 'purpose': purpose - }) + ste_type = frappe.get_doc({ + 'doctype': 'Stock Entry Type', + 'name': purpose, + 'purpose': purpose + }) - try: - ste_type.insert() - except frappe.DuplicateEntryError: - pass + try: + ste_type.insert() + except frappe.DuplicateEntryError: + pass - frappe.db.sql(" UPDATE `tabStock Entry` set stock_entry_type = purpose ") + frappe.db.sql(" UPDATE `tabStock Entry` set stock_entry_type = purpose ") def add_gst_hsn_code_field(): - custom_fields = { - 'Stock Entry Detail': [dict(fieldname='gst_hsn_code', label='HSN/SAC', - fieldtype='Data', fetch_from='item_code.gst_hsn_code', - insert_after='description', allow_on_submit=1, print_hide=0)] - } + custom_fields = { + 'Stock Entry Detail': [dict(fieldname='gst_hsn_code', label='HSN/SAC', + fieldtype='Data', fetch_from='item_code.gst_hsn_code', + insert_after='description', allow_on_submit=1, print_hide=0)] + } - create_custom_fields(custom_fields, ignore_validate = frappe.flags.in_patch, update=True) + create_custom_fields(custom_fields, ignore_validate = frappe.flags.in_patch, update=True) - frappe.db.sql(""" update `tabStock Entry Detail`, `tabItem` - SET - `tabStock Entry Detail`.gst_hsn_code = `tabItem`.gst_hsn_code - Where - `tabItem`.name = `tabStock Entry Detail`.item_code and `tabItem`.gst_hsn_code is not null - """) \ No newline at end of file + frappe.db.sql(""" update `tabStock Entry Detail`, `tabItem` + SET + `tabStock Entry Detail`.gst_hsn_code = `tabItem`.gst_hsn_code + Where + `tabItem`.name = `tabStock Entry Detail`.item_code and `tabItem`.gst_hsn_code is not null + """) \ No newline at end of file diff --git a/erpnext/selling/doctype/sales_team/sales_team.json b/erpnext/selling/doctype/sales_team/sales_team.json index 90521347de..876789135c 100644 --- a/erpnext/selling/doctype/sales_team/sales_team.json +++ b/erpnext/selling/doctype/sales_team/sales_team.json @@ -1,6 +1,5 @@ { "allow_copy": 0, - "allow_events_in_timeline": 0, "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, @@ -20,7 +19,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "sales_person", "fieldtype": "Link", "hidden": 0, @@ -57,7 +55,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "contact_no", "fieldtype": "Data", "hidden": 1, @@ -93,7 +90,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "allocated_percentage", "fieldtype": "Float", "hidden": 0, @@ -122,40 +118,6 @@ "unique": 0, "width": "100px" }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_if_empty": 0, - "fieldname": "item_group", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Group", - "length": 0, - "no_copy": 0, - "options": "Item Group", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, { "allow_bulk_edit": 0, "allow_in_quick_entry": 0, @@ -163,7 +125,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "allocated_amount", "fieldtype": "Currency", "hidden": 0, @@ -200,8 +161,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_from": "item_group.commission_rate", - "fetch_if_empty": 1, "fieldname": "commission_rate", "fieldtype": "Data", "hidden": 0, @@ -234,7 +193,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "incentives", "fieldtype": "Currency", "hidden": 0, @@ -273,7 +231,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2019-03-15 00:06:59.441936", + "modified": "2018-09-17 13:03:14.755974", "modified_by": "Administrator", "module": "Selling", "name": "Sales Team", @@ -286,4 +244,4 @@ "track_changes": 1, "track_seen": 0, "track_views": 0 -} \ No newline at end of file +} diff --git a/erpnext/setup/doctype/item_group/item_group.json b/erpnext/setup/doctype/item_group/item_group.json index a99c9ea34f..656d460e0f 100644 --- a/erpnext/setup/doctype/item_group/item_group.json +++ b/erpnext/setup/doctype/item_group/item_group.json @@ -21,7 +21,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "gs", "fieldtype": "Section Break", "hidden": 0, @@ -53,7 +52,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "item_group_name", "fieldtype": "Data", "hidden": 0, @@ -88,7 +86,6 @@ "collapsible": 0, "columns": 0, "description": "", - "fetch_if_empty": 0, "fieldname": "parent_item_group", "fieldtype": "Link", "hidden": 0, @@ -124,7 +121,6 @@ "collapsible": 0, "columns": 0, "description": "Only leaf nodes are allowed in transaction", - "fetch_if_empty": 0, "fieldname": "is_group", "fieldtype": "Check", "hidden": 0, @@ -159,71 +155,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, - "fieldname": "column_break_5", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_if_empty": 0, - "fieldname": "commission_rate", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Commission Rate", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_in_quick_entry": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fetch_if_empty": 0, "fieldname": "image", "fieldtype": "Attach Image", "hidden": 1, @@ -256,7 +187,36 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, + "fieldname": "column_break_5", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, "fieldname": "defaults", "fieldtype": "Section Break", "hidden": 0, @@ -289,7 +249,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "item_group_defaults", "fieldtype": "Table", "hidden": 0, @@ -324,7 +283,6 @@ "collapsible": 0, "collapsible_depends_on": "", "columns": 0, - "fetch_if_empty": 0, "fieldname": "sec_break_taxes", "fieldtype": "Section Break", "hidden": 0, @@ -357,7 +315,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "taxes", "fieldtype": "Table", "hidden": 0, @@ -391,7 +348,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "sb9", "fieldtype": "Section Break", "hidden": 0, @@ -424,7 +380,6 @@ "collapsible": 0, "columns": 0, "description": "Check this if you want to show in website", - "fetch_if_empty": 0, "fieldname": "show_in_website", "fieldtype": "Check", "hidden": 0, @@ -457,7 +412,6 @@ "collapsible": 0, "columns": 0, "depends_on": "show_in_website", - "fetch_if_empty": 0, "fieldname": "route", "fieldtype": "Data", "hidden": 0, @@ -490,7 +444,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "weightage", "fieldtype": "Int", "hidden": 0, @@ -525,7 +478,6 @@ "columns": 0, "depends_on": "show_in_website", "description": "Show this slideshow at the top of the page", - "fetch_if_empty": 0, "fieldname": "slideshow", "fieldtype": "Link", "hidden": 0, @@ -560,7 +512,6 @@ "columns": 0, "depends_on": "show_in_website", "description": "HTML / Banner that will show on the top of product list.", - "fetch_if_empty": 0, "fieldname": "description", "fieldtype": "Text Editor", "hidden": 0, @@ -593,7 +544,6 @@ "collapsible": 0, "columns": 0, "depends_on": "show_in_website", - "fetch_if_empty": 0, "fieldname": "website_specifications", "fieldtype": "Table", "hidden": 0, @@ -626,7 +576,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "lft", "fieldtype": "Int", "hidden": 1, @@ -660,7 +609,6 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fetch_if_empty": 0, "fieldname": "rgt", "fieldtype": "Int", "hidden": 1, @@ -695,7 +643,6 @@ "collapsible": 0, "columns": 0, "description": "", - "fetch_if_empty": 0, "fieldname": "old_parent", "fieldtype": "Link", "hidden": 1, @@ -736,7 +683,7 @@ "issingle": 0, "istable": 0, "max_attachments": 3, - "modified": "2019-03-15 00:05:25.816002", + "modified": "2018-11-23 15:17:28.003933", "modified_by": "Administrator", "module": "Setup", "name": "Item Group", @@ -867,4 +814,4 @@ "track_changes": 0, "track_seen": 0, "track_views": 0 -} \ No newline at end of file +} diff --git a/erpnext/setup/setup_wizard/operations/install_fixtures.py b/erpnext/setup/setup_wizard/operations/install_fixtures.py index 7bd6d16663..2e4bfc0a5b 100644 --- a/erpnext/setup/setup_wizard/operations/install_fixtures.py +++ b/erpnext/setup/setup_wizard/operations/install_fixtures.py @@ -92,6 +92,8 @@ def install(country=None): {'doctype': 'Stock Entry Type', 'name': 'Subcontract', 'purpose': 'Subcontract'}, {'doctype': 'Stock Entry Type', 'name': 'Material Transfer for Manufacture', 'purpose': 'Material Transfer for Manufacture'}, {'doctype': 'Stock Entry Type', 'name': 'Material Consumption for Manufacture', 'purpose': 'Material Consumption for Manufacture'}, + {'doctype': 'Stock Entry Type', 'name': 'Stock Out', 'purpose': 'Stock Out'}, + {'doctype': 'Stock Entry Type', 'name': 'Stock In', 'purpose': 'Stock In'}, # Designation {'doctype': 'Designation', 'designation_name': _('CEO')}, diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index 71fd82181e..4881983b8e 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -202,6 +202,7 @@ def split_batch(batch_no, item_code, warehouse, qty, new_batch_id=None): ), ] )) + stock_entry.set_stock_entry_type() stock_entry.insert() stock_entry.submit() diff --git a/erpnext/stock/doctype/batch/test_batch.py b/erpnext/stock/doctype/batch/test_batch.py index 343d517c23..737f528761 100644 --- a/erpnext/stock/doctype/batch/test_batch.py +++ b/erpnext/stock/doctype/batch/test_batch.py @@ -67,7 +67,10 @@ class TestBatch(unittest.TestCase): rate = 10 ) ] - )).insert() + )) + + stock_entry.set_stock_entry_type() + stock_entry.insert() stock_entry.submit() self.assertTrue(stock_entry.items[0].batch_no) @@ -136,7 +139,10 @@ class TestBatch(unittest.TestCase): s_warehouse=receipt.items[0].warehouse, ) ] - )).insert() + )) + + stock_entry.set_stock_entry_type() + stock_entry.insert() stock_entry.submit() # assert same batch is selected @@ -193,7 +199,10 @@ class TestBatch(unittest.TestCase): allow_zero_valuation_rate = 1 ) ] - )).insert() + )) + + stock_entry.set_stock_entry_type() + stock_entry.insert() stock_entry.submit() def test_batch_name_with_naming_series(self): diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index 69bd43927c..7dc54d0e33 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -96,6 +96,8 @@ class TestMaterialRequest(unittest.TestCase): } ] }) + + se.set_stock_entry_type() se.insert() se.submit() @@ -388,6 +390,7 @@ class TestMaterialRequest(unittest.TestCase): # check for stopped status of Material Request se = frappe.copy_doc(se_doc) + se.set_stock_entry_type() se.insert() mr.update_status('Stopped') self.assertRaises(frappe.InvalidStatusError, se.submit) @@ -395,6 +398,7 @@ class TestMaterialRequest(unittest.TestCase): mr.update_status('Submitted') se = frappe.copy_doc(se_doc) + se.set_stock_entry_type() se.insert() se.submit() @@ -528,7 +532,7 @@ class TestMaterialRequest(unittest.TestCase): #testing bin requested qty after issuing stock against material request self.assertEqual(_get_requested_qty(), existing_requested_qty) - + def test_material_request_type_manufacture(self): mr = frappe.copy_doc(test_records[1]).insert() mr = frappe.get_doc("Material Request", mr.name) @@ -541,20 +545,20 @@ class TestMaterialRequest(unittest.TestCase): po = frappe.get_doc("Work Order", prod_order[0]) po.wip_warehouse = "_Test Warehouse 1 - _TC" po.submit() - + mr = frappe.get_doc("Material Request", mr.name) self.assertEqual(completed_qty + po.qty, mr.items[0].ordered_qty) new_requested_qty = frappe.db.sql("""select indented_qty from `tabBin` where \ item_code= %s and warehouse= %s """, (mr.items[0].item_code, mr.items[0].warehouse))[0][0] - + self.assertEqual(requested_qty - po.qty, new_requested_qty) - + po.cancel() mr = frappe.get_doc("Material Request", mr.name) self.assertEqual(completed_qty, mr.items[0].ordered_qty) - + new_requested_qty = frappe.db.sql("""select indented_qty from `tabBin` where \ item_code= %s and warehouse= %s """, (mr.items[0].item_code, mr.items[0].warehouse))[0][0] self.assertEqual(requested_qty, new_requested_qty) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 0193849235..84e4dd8813 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -106,7 +106,7 @@ frappe.ui.form.on('Stock Entry', { frappe.call({ doc: frm.doc, method: "set_items_for_stock_in", - callback: function(r) { + callback: function() { refresh_field('items'); } }); diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 71095b757d..3fc9944fad 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -62,6 +62,7 @@ class StockEntry(StockController): self.validate_inspection() self.validate_fg_completed_qty() self.set_job_card_data() + self.set_purpose_for_stock_entry() if not self.from_bom: self.fg_completed_qty = 0.0 @@ -486,10 +487,15 @@ class StockEntry(StockController): self.total_amount = sum([flt(item.amount) for item in self.get("items")]) def set_stock_entry_type(self): - if not self.stock_entry_type and self.purpose: + if self.purpose: self.stock_entry_type = frappe.get_cached_value('Stock Entry Type', {'purpose': self.purpose}, 'name') + def set_purpose_for_stock_entry(self): + if self.stock_entry_type and not self.purpose: + self.purpose = frappe.get_cached_value('Stock Entry Type', + self.stock_entry_type, 'purpose') + def validate_purchase_order(self): """Throw exception if more raw material is transferred against Purchase Order than in the raw materials supplied table""" @@ -1248,12 +1254,10 @@ def move_sample_to_retention_warehouse(company, items): if stock_entry.get('items'): return stock_entry.as_dict() - @frappe.whitelist() def make_stock_in_entry(source_name, target_doc=None): def set_missing_values(source, target): target.purpose = 'Stock In' - target.stock_entry_type = '' target.set_stock_entry_type() def update_item(source_doc, target_doc, source_parent): diff --git a/erpnext/stock/doctype/stock_entry/stock_entry_list.js b/erpnext/stock/doctype/stock_entry/stock_entry_list.js index 781f35bf94..40b053621a 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry_list.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry_list.js @@ -2,15 +2,14 @@ frappe.listview_settings['Stock Entry'] = { add_fields: ["`tabStock Entry`.`from_warehouse`", "`tabStock Entry`.`to_warehouse`", "`tabStock Entry`.`purpose`", "`tabStock Entry`.`work_order`", "`tabStock Entry`.`bom_no`"], get_indicator: function (doc) { - debugger if (doc.docstatus === 0) { return [__("Draft"), "red", "docstatus,=,0"]; - } else if (doc.purpose == 'Stock Out' && doc.per_transferred < 100) { + } else if (doc.purpose === 'Stock Out' && doc.per_transferred < 100) { // not delivered & overdue return [__("Goods In Transit"), "grey", "per_transferred,<,100"]; - } else if (doc.purpose == 'Stock Out' && doc.per_transferred == 100) { + } else if (doc.purpose === 'Stock Out' && doc.per_transferred === 100) { return [__("Goods Transferred"), "green", "per_transferred,=,100"]; } else if (doc.docstatus === 2) { return [__("Canceled"), "red", "docstatus,=,2"]; diff --git a/erpnext/stock/doctype/stock_entry/test_records.json b/erpnext/stock/doctype/stock_entry/test_records.json index c434bcc549..cfbdce4d77 100644 --- a/erpnext/stock/doctype/stock_entry/test_records.json +++ b/erpnext/stock/doctype/stock_entry/test_records.json @@ -1,113 +1,107 @@ [ - { - "company": "_Test Company", - "doctype": "Stock Entry", - "items": [ - { - "conversion_factor": 1.0, - "cost_center": "_Test Cost Center - _TC", - "doctype": "Stock Entry Detail", - "expense_account": "Stock Adjustment - _TC", - "basic_rate": 100, - "item_code": "_Test Item", - "parentfield": "items", - "qty": 50.0, - "stock_uom": "_Test UOM", - "t_warehouse": "_Test Warehouse - _TC", - "transfer_qty": 50.0, - "uom": "_Test UOM" - } - ], - "stock_entry_type": "Material Receipt", - "purpose": "Material Receipt" - }, - - - { - "company": "_Test Company", - "doctype": "Stock Entry", - "items": [ - { - "conversion_factor": 1.0, - "cost_center": "_Test Cost Center - _TC", - "doctype": "Stock Entry Detail", - "expense_account": "Stock Adjustment - _TC", - "basic_rate": 100, - "item_code": "_Test Item", - "parentfield": "items", - "qty": 40.0, - "s_warehouse": "_Test Warehouse - _TC", - "stock_uom": "_Test UOM", - "transfer_qty": 40.0, - "uom": "_Test UOM" - } - ], - "posting_date": "2013-01-25", - "purpose": "Material Issue", - "stock_entry_type": "Material Issue" - }, - - - { - "company": "_Test Company", - "doctype": "Stock Entry", - "items": [ - { - "conversion_factor": 1.0, - "cost_center": "_Test Cost Center - _TC", - "doctype": "Stock Entry Detail", - "expense_account": "Stock Adjustment - _TC", - "basic_rate": 100, - "item_code": "_Test Item", - "parentfield": "items", - "qty": 45.0, - "s_warehouse": "_Test Warehouse - _TC", - "stock_uom": "_Test UOM", - "t_warehouse": "_Test Warehouse 1 - _TC", - "transfer_qty": 45.0, - "uom": "_Test UOM" - } - ], - "posting_date": "2013-01-25", - "purpose": "Material Transfer", - "stock_entry_type": "Material Transfer" - }, - - - { - "company": "_Test Company", - "doctype": "Stock Entry", - "items": [ - { - "conversion_factor": 1.0, - "cost_center": "_Test Cost Center - _TC", - "doctype": "Stock Entry Detail", - "expense_account": "Stock Adjustment - _TC", - "basic_rate": 100, - "item_code": "_Test Item", - "parentfield": "items", - "qty": 50.0, - "s_warehouse": "_Test Warehouse - _TC", - "stock_uom": "_Test UOM", - "transfer_qty": 50.0, - "uom": "_Test UOM" - }, - { - "conversion_factor": 1.0, - "cost_center": "_Test Cost Center - _TC", - "doctype": "Stock Entry Detail", - "expense_account": "Stock Adjustment - _TC", - "basic_rate": 5000, - "item_code": "_Test Item Home Desktop 100", - "parentfield": "items", - "qty": 1, - "stock_uom": "_Test UOM", - "t_warehouse": "_Test Warehouse - _TC", - "transfer_qty": 1, - "uom": "_Test UOM" - } - ], - "purpose": "Repack", - "stock_entry_type": "Repack" - } + { + "company": "_Test Company", + "doctype": "Stock Entry", + "stock_entry_type": "Material Receipt", + "purpose": "Material Receipt", + "items": [ + { + "conversion_factor": 1.0, + "cost_center": "_Test Cost Center - _TC", + "doctype": "Stock Entry Detail", + "expense_account": "Stock Adjustment - _TC", + "basic_rate": 100, + "item_code": "_Test Item", + "parentfield": "items", + "qty": 50.0, + "stock_uom": "_Test UOM", + "t_warehouse": "_Test Warehouse - _TC", + "transfer_qty": 50.0, + "uom": "_Test UOM" + } + ] + }, + { + "company": "_Test Company", + "doctype": "Stock Entry", + "posting_date": "2013-01-25", + "purpose": "Material Issue", + "stock_entry_type": "Material Issue", + "items": [ + { + "conversion_factor": 1.0, + "cost_center": "_Test Cost Center - _TC", + "doctype": "Stock Entry Detail", + "expense_account": "Stock Adjustment - _TC", + "basic_rate": 100, + "item_code": "_Test Item", + "parentfield": "items", + "qty": 40.0, + "s_warehouse": "_Test Warehouse - _TC", + "stock_uom": "_Test UOM", + "transfer_qty": 40.0, + "uom": "_Test UOM" + } + ] + }, + { + "company": "_Test Company", + "doctype": "Stock Entry", + "posting_date": "2013-01-25", + "purpose": "Material Transfer", + "stock_entry_type": "Material Transfer", + "items": [ + { + "conversion_factor": 1.0, + "cost_center": "_Test Cost Center - _TC", + "doctype": "Stock Entry Detail", + "expense_account": "Stock Adjustment - _TC", + "basic_rate": 100, + "item_code": "_Test Item", + "parentfield": "items", + "qty": 45.0, + "s_warehouse": "_Test Warehouse - _TC", + "stock_uom": "_Test UOM", + "t_warehouse": "_Test Warehouse 1 - _TC", + "transfer_qty": 45.0, + "uom": "_Test UOM" + } + ] + }, + { + "company": "_Test Company", + "doctype": "Stock Entry", + "purpose": "Repack", + "stock_entry_type": "Repack", + "items": [ + { + "conversion_factor": 1.0, + "cost_center": "_Test Cost Center - _TC", + "doctype": "Stock Entry Detail", + "expense_account": "Stock Adjustment - _TC", + "basic_rate": 100, + "item_code": "_Test Item", + "parentfield": "items", + "qty": 50.0, + "s_warehouse": "_Test Warehouse - _TC", + "stock_uom": "_Test UOM", + "transfer_qty": 50.0, + "uom": "_Test UOM" + }, + { + "conversion_factor": 1.0, + "cost_center": "_Test Cost Center - _TC", + "doctype": "Stock Entry Detail", + "expense_account": "Stock Adjustment - _TC", + "basic_rate": 5000, + "item_code": "_Test Item Home Desktop 100", + "parentfield": "items", + "qty": 1, + "stock_uom": "_Test UOM", + "t_warehouse": "_Test Warehouse - _TC", + "transfer_qty": 1, + "uom": "_Test UOM" + } + ] + } ]