fixes in stock entry

This commit is contained in:
Anand Doshi 2013-03-26 12:33:43 +05:30
parent 9f91053201
commit acec0227c5
5 changed files with 83 additions and 94 deletions

View File

@ -1,189 +1,169 @@
[ [
{ {
"owner": "Administrator", "creation": "2013-02-22 01:28:05",
"docstatus": 0, "docstatus": 0,
"creation": "2010-08-08 17:09:35", "modified": "2013-03-26 07:58:20",
"modified_by": "Administrator", "modified_by": "Administrator",
"modified": "2012-04-02 14:03:39" "owner": "Administrator"
}, },
{ {
"doctype": "Table Mapper Detail",
"name": "__common__", "name": "__common__",
"parent": "Purchase Order-Purchase Receipt", "parent": "Purchase Order-Purchase Receipt",
"doctype": "Table Mapper Detail", "parentfield": "table_mapper_details",
"parenttype": "DocType Mapper", "parenttype": "DocType Mapper"
"parentfield": "table_mapper_details"
}, },
{ {
"doctype": "Field Mapper Detail",
"map": "Yes", "map": "Yes",
"name": "__common__", "name": "__common__",
"parent": "Purchase Order-Purchase Receipt", "parent": "Purchase Order-Purchase Receipt",
"doctype": "Field Mapper Detail", "parentfield": "field_mapper_details",
"parenttype": "DocType Mapper", "parenttype": "DocType Mapper"
"parentfield": "field_mapper_details"
}, },
{ {
"name": "__common__",
"to_doctype": "Purchase Receipt",
"module": "Stock",
"doctype": "DocType Mapper", "doctype": "DocType Mapper",
"from_doctype": "Purchase Order",
"module": "Stock",
"name": "__common__",
"ref_doc_submitted": 1, "ref_doc_submitted": 1,
"from_doctype": "Purchase Order" "to_doctype": "Purchase Receipt"
}, },
{ {
"name": "Purchase Order-Purchase Receipt", "doctype": "DocType Mapper",
"doctype": "DocType Mapper" "name": "Purchase Order-Purchase Receipt"
}, },
{ {
"match_id": 0, "checking_operator": "=",
"to_field": "supplier",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "supplier", "from_field": "supplier",
"checking_operator": "=" "match_id": 0,
"to_field": "supplier"
}, },
{ {
"match_id": 0, "checking_operator": "=",
"to_field": "company",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "company", "from_field": "company",
"checking_operator": "=" "match_id": 0,
"to_field": "company"
}, },
{ {
"match_id": 0, "checking_operator": "=",
"to_field": "currency",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "currency", "from_field": "currency",
"checking_operator": "=" "match_id": 0,
"to_field": "currency"
}, },
{ {
"to_field": "prevdoc_detail_docname",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "name",
"match_id": 1, "match_id": 1,
"from_field": "name" "to_field": "prevdoc_detail_docname"
}, },
{ {
"to_field": "prevdoc_docname",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "parent",
"match_id": 1, "match_id": 1,
"from_field": "parent" "to_field": "prevdoc_docname"
}, },
{ {
"to_field": "prevdoc_doctype",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "parenttype",
"match_id": 1, "match_id": 1,
"from_field": "parenttype" "to_field": "prevdoc_doctype"
}, },
{ {
"match_id": 1, "checking_operator": "=",
"to_field": "item_code",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "item_code", "from_field": "item_code",
"checking_operator": "="
},
{
"to_field": "received_qty",
"doctype": "Field Mapper Detail",
"match_id": 1, "match_id": 1,
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) " "to_field": "item_code"
}, },
{ {
"to_field": "qty",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) ",
"match_id": 1, "match_id": 1,
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) " "to_field": "received_qty"
}, },
{ {
"to_field": "stock_qty",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) ",
"match_id": 1, "match_id": 1,
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)" "to_field": "qty"
}, },
{ {
"to_field": "import_amount",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)",
"match_id": 1, "match_id": 1,
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)" "to_field": "stock_qty"
}, },
{ {
"to_field": "amount",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)",
"match_id": 1, "match_id": 1,
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)" "to_field": "import_amount"
}, },
{ {
"to_field": "schedule_date",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)",
"match_id": 1, "match_id": 1,
"from_field": "schedule_date" "to_field": "amount"
}, },
{ {
"to_field": "net_total",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "schedule_date",
"match_id": 1,
"to_field": "schedule_date"
},
{
"doctype": "Field Mapper Detail",
"from_field": "net_total",
"match_id": 0, "match_id": 0,
"from_field": "net_total" "to_field": "net_total"
}, },
{ {
"to_field": "grand_total",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "grand_total",
"match_id": 0, "match_id": 0,
"from_field": "grand_total" "to_field": "grand_total"
}, },
{ {
"to_field": "total_tax",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "total_tax",
"match_id": 0, "match_id": 0,
"from_field": "total_tax" "to_field": "total_tax"
}, },
{ {
"to_field": "conversion_rate",
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"from_field": "conversion_rate",
"match_id": 0, "match_id": 0,
"from_field": "conversion_rate" "to_field": "conversion_rate"
}, },
{ {
"reference_key": "prevdoc_detail_docname",
"match_id": 1,
"reference_doctype_key": "prevdoc_doctype",
"to_field": "purchase_receipt_details",
"doctype": "Table Mapper Detail", "doctype": "Table Mapper Detail",
"from_field": "po_details", "from_field": "po_details",
"from_table": "Purchase Order Item", "from_table": "Purchase Order Item",
"match_id": 1,
"reference_doctype_key": "prevdoc_doctype",
"reference_key": "prevdoc_detail_docname",
"to_field": "purchase_receipt_details",
"to_table": "Purchase Receipt Item", "to_table": "Purchase Receipt Item",
"validation_logic": "docstatus=1 and qty > ifnull(received_qty,0)" "validation_logic": "docstatus=1 and qty > ifnull(received_qty,0)"
}, },
{ {
"reference_key": "prevdoc_detail_docname",
"match_id": 1,
"reference_doctype_key": "prevdoc_doctype",
"to_field": "purchase_receipt_details",
"doctype": "Table Mapper Detail",
"from_field": "po_details",
"from_table": "Purchase Order Item",
"to_table": "Purchase Receipt Item",
"validation_logic": "docstatus=1 and qty > ifnull(received_qty,0)"
},
{
"reference_key": "prevdoc_docname",
"match_id": 0,
"doctype": "Table Mapper Detail", "doctype": "Table Mapper Detail",
"from_table": "Purchase Order", "from_table": "Purchase Order",
"match_id": 0,
"reference_key": "prevdoc_docname",
"to_table": "Purchase Receipt", "to_table": "Purchase Receipt",
"validation_logic": "docstatus = 1" "validation_logic": "docstatus = 1"
}, },
{ {
"match_id": 2,
"to_field": "purchase_tax_details",
"doctype": "Table Mapper Detail", "doctype": "Table Mapper Detail",
"from_field": "purchase_tax_details", "from_field": "purchase_tax_details",
"from_table": "Purchase Taxes and Charges", "from_table": "Purchase Taxes and Charges",
"to_table": "Purchase Taxes and Charges",
"validation_logic": "docstatus = 1"
},
{
"match_id": 2, "match_id": 2,
"to_field": "purchase_tax_details", "to_field": "purchase_tax_details",
"doctype": "Table Mapper Detail",
"from_field": "purchase_tax_details",
"from_table": "Purchase Taxes and Charges",
"to_table": "Purchase Taxes and Charges", "to_table": "Purchase Taxes and Charges",
"validation_logic": "docstatus = 1" "validation_logic": "docstatus = 1"
} }

View File

@ -55,6 +55,7 @@ class DocType(StockController):
self.validate_finished_goods() self.validate_finished_goods()
self.validate_return_reference_doc() self.validate_return_reference_doc()
self.validate_with_material_request() self.validate_with_material_request()
self.validate_fiscal_year()
def on_submit(self): def on_submit(self):
self.update_serial_no(1) self.update_serial_no(1)
@ -68,6 +69,11 @@ class DocType(StockController):
self.update_production_order(0) self.update_production_order(0)
self.make_gl_entries() self.make_gl_entries()
def validate_fiscal_year(self):
import accounts.utils
accounts.utils.validate_fiscal_year(self.doc.posting_date, self.doc.fiscal_year,
self.meta.get_label("posting_date"))
def validate_purpose(self): def validate_purpose(self):
valid_purposes = ["Material Issue", "Material Receipt", "Material Transfer", valid_purposes = ["Material Issue", "Material Receipt", "Material Transfer",
"Manufacture/Repack", "Subcontract", "Sales Return", "Purchase Return"] "Manufacture/Repack", "Subcontract", "Sales Return", "Purchase Return"]

View File

@ -1,8 +1,8 @@
[ [
{ {
"creation": "2013-03-11 12:34:40", "creation": "2013-03-26 06:51:17",
"docstatus": 0, "docstatus": 0,
"modified": "2013-03-19 17:48:29", "modified": "2013-03-26 07:24:53",
"modified_by": "Administrator", "modified_by": "Administrator",
"owner": "Administrator" "owner": "Administrator"
}, },
@ -542,6 +542,16 @@
"reqd": 0, "reqd": 0,
"search_index": 0 "search_index": 0
}, },
{
"doctype": "DocField",
"fieldname": "fiscal_year",
"fieldtype": "Select",
"in_filter": 0,
"label": "Fiscal Year",
"options": "link:Fiscal Year",
"print_hide": 1,
"reqd": 1
},
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"doctype": "DocField", "doctype": "DocField",
@ -610,13 +620,5 @@
{ {
"doctype": "DocPerm", "doctype": "DocPerm",
"role": "Manufacturing User" "role": "Manufacturing User"
},
{
"doctype": "DocPerm",
"role": "Manufacturing Manager"
},
{
"doctype": "DocPerm",
"role": "Material Manager"
} }
] ]

View File

@ -490,7 +490,7 @@ class TestStockEntry(unittest.TestCase):
def test_make_return_jv_for_purchase_receipt(self): def test_make_return_jv_for_purchase_receipt(self):
se, pr_name = self.test_purchase_receipt_return() se, pr_name = self.test_purchase_receipt_return()
self._test_purchase_return_jv(se) self._test_purchase_return_jv(se)
se, pr_name = self._test_purchase_return_return_against_purchase_order() se, pr_name = self._test_purchase_return_return_against_purchase_order()
self._test_purchase_return_jv(se) self._test_purchase_return_jv(se)

View File

@ -250,4 +250,5 @@ class TransactionBase(DocListController):
def validate_posting_time(self): def validate_posting_time(self):
if not self.doc.posting_time: if not self.doc.posting_time:
self.doc.posting_time = now_datetime().strftime('%H:%M:%S') self.doc.posting_time = now_datetime().strftime('%H:%M:%S')