synced timestamps
This commit is contained in:
commit
2a9afbf4f6
@ -5,7 +5,7 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:34',
|
'creation': '2010-08-08 17:09:34',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-06-15 14:42:33',
|
'modified': '2011-08-09 11:14:09',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -23,6 +23,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
|
'match_id': 1,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Delivery Note-Receivable Voucher',
|
'parent': 'Delivery Note-Receivable Voucher',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
@ -48,261 +49,14 @@
|
|||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'contact_person',
|
'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate)',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'price_list_name',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'price_list_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'charge'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 17,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'batch_no',
|
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'batch_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'serial_no',
|
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'serial_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'base_ref_rate',
|
|
||||||
'idx': 26,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'base_ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'ref_rate',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'basic_rate',
|
|
||||||
'idx': 28,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'basic_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 29,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'delivery_note'
|
'to_field': 'delivery_note'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -310,8 +64,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 30,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'dn_detail'
|
'to_field': 'dn_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -319,8 +71,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'prevdoc_docname',
|
'from_field': 'prevdoc_docname',
|
||||||
'idx': 31,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'sales_order'
|
'to_field': 'sales_order'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -328,286 +78,27 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'prevdoc_detail_docname',
|
'from_field': 'prevdoc_detail_docname',
|
||||||
'idx': 32,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'so_detail'
|
'to_field': 'so_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'export_rate',
|
'from_field': 'eval: flt(obj.amount) - flt(obj.billed_amt)',
|
||||||
'idx': 33,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.basic_rate)',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.export_rate)',
|
'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)',
|
||||||
'idx': 36,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_amount'
|
'to_field': 'export_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'adj_rate',
|
|
||||||
'idx': 37,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'adj_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 38,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 40,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 41,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 42,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 43,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 44,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tax_amount',
|
|
||||||
'idx': 45,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total',
|
|
||||||
'idx': 46,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_person',
|
|
||||||
'idx': 47,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_designation',
|
|
||||||
'idx': 48,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_designation'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_percentage',
|
|
||||||
'idx': 49,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_percentage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_amount',
|
|
||||||
'idx': 50,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'incentives',
|
|
||||||
'idx': 51,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'incentives'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 52,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 53,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 54,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_partner',
|
|
||||||
'idx': 55,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'sales_partner'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'commission_rate',
|
|
||||||
'idx': 56,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'commission_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_commission',
|
|
||||||
'idx': 57,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'total_commission'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 58,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_total',
|
|
||||||
'idx': 59,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'net_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total',
|
|
||||||
'idx': 60,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'project_name',
|
|
||||||
'idx': 61,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'project_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'warehouse',
|
|
||||||
'idx': 62,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'warehouse'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Delivery Note',
|
'from_table': 'Delivery Note',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Receivable Voucher',
|
'to_table': 'Receivable Voucher',
|
||||||
'validation_logic': 'docstatus=1'
|
'validation_logic': 'docstatus=1'
|
||||||
@ -618,11 +109,10 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'delivery_note_details',
|
'from_field': 'delivery_note_details',
|
||||||
'from_table': 'Delivery Note Detail',
|
'from_table': 'Delivery Note Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'entries',
|
'to_field': 'entries',
|
||||||
'to_table': 'RV Detail',
|
'to_table': 'RV Detail',
|
||||||
'validation_logic': '(qty > ifnull(billed_qty, 0) or amount > ifnull(billed_amt, 0)) and docstatus = 1'
|
'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
@ -630,7 +120,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'other_charges',
|
'from_field': 'other_charges',
|
||||||
'from_table': 'RV Tax Detail',
|
'from_table': 'RV Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'other_charges',
|
'to_field': 'other_charges',
|
||||||
'to_table': 'RV Tax Detail',
|
'to_table': 'RV Tax Detail',
|
||||||
@ -642,7 +131,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_team',
|
'from_field': 'sales_team',
|
||||||
'from_table': 'Sales Team',
|
'from_table': 'Sales Team',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 3,
|
'match_id': 3,
|
||||||
'to_field': 'sales_team',
|
'to_field': 'sales_team',
|
||||||
'to_table': 'Sales Team',
|
'to_table': 'Sales Team',
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Project',
|
'from_table': 'Project',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Receivable Voucher',
|
'parent': 'Project-Receivable Voucher',
|
||||||
@ -26,13 +25,16 @@
|
|||||||
|
|
||||||
# These values are common for all Field Mapper Detail
|
# These values are common for all Field Mapper Detail
|
||||||
{
|
{
|
||||||
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
|
'from_field': 'customer',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Receivable Voucher',
|
'parent': 'Project-Receivable Voucher',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
'parenttype': 'DocType Mapper'
|
'parenttype': 'DocType Mapper',
|
||||||
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType Mapper
|
# These values are common for all DocType Mapper
|
||||||
@ -52,35 +54,7 @@
|
|||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'doctype': 'Field Mapper Detail'
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:35',
|
'creation': '2010-08-08 17:09:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-13 11:26:20',
|
'modified': '2011-05-13 11:26:20',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -23,6 +23,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
|
'match_id': 1,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Purchase Order-Payable Voucher',
|
'parent': 'Purchase Order-Payable Voucher',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
@ -45,156 +46,10 @@
|
|||||||
'name': 'Purchase Order-Payable Voucher'
|
'name': 'Purchase Order-Payable Voucher'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_name',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_name',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'supplier_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_address',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -202,8 +57,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'purchase_rate',
|
'from_field': 'purchase_rate',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'rate'
|
'to_field': 'rate'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -211,44 +64,20 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'import_rate',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'import_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'import_amount'
|
'to_field': 'import_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'purchase_order'
|
'to_field': 'purchase_order'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -256,124 +85,13 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'po_detail'
|
'to_field': 'po_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'category',
|
|
||||||
'idx': 26,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'category'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'add_deduct_tax',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'add_deduct_tax'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 28,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 29,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 30,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 31,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 32,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'cost_center',
|
|
||||||
'idx': 33,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'cost_center'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'project_name',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'project_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Purchase Order',
|
'from_table': 'Purchase Order',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Payable Voucher',
|
'to_table': 'Payable Voucher',
|
||||||
'validation_logic': 'docstatus =1'
|
'validation_logic': 'docstatus =1'
|
||||||
@ -384,7 +102,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'po_details',
|
'from_field': 'po_details',
|
||||||
'from_table': 'PO Detail',
|
'from_table': 'PO Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'entries',
|
'to_field': 'entries',
|
||||||
'to_table': 'PV Detail',
|
'to_table': 'PV Detail',
|
||||||
@ -396,7 +113,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'purchase_tax_details',
|
'from_field': 'purchase_tax_details',
|
||||||
'from_table': 'Purchase Tax Detail',
|
'from_table': 'Purchase Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'purchase_tax_details',
|
'to_field': 'purchase_tax_details',
|
||||||
'to_table': 'Purchase Tax Detail',
|
'to_table': 'Purchase Tax Detail',
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:35',
|
'creation': '2010-08-08 17:09:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-13 12:18:34',
|
'modified': '2011-05-13 12:18:34',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -23,6 +23,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
|
'match_id': 1,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Purchase Receipt-Payable Voucher',
|
'parent': 'Purchase Receipt-Payable Voucher',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
@ -45,156 +46,10 @@
|
|||||||
'name': 'Purchase Receipt-Payable Voucher'
|
'name': 'Purchase Receipt-Payable Voucher'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_name',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_address',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -202,8 +57,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'purchase_rate',
|
'from_field': 'purchase_rate',
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'rate'
|
'to_field': 'rate'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -211,26 +64,13 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)',
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'import_rate',
|
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'import_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)',
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'import_amount'
|
'to_field': 'import_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -238,8 +78,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'purchase_receipt'
|
'to_field': 'purchase_receipt'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -247,8 +85,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'prevdoc_docname',
|
'from_field': 'prevdoc_docname',
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'purchase_order'
|
'to_field': 'purchase_order'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -256,8 +92,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'pr_detail'
|
'to_field': 'pr_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -265,125 +99,14 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'prevdoc_detail_docname',
|
'from_field': 'prevdoc_detail_docname',
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'po_detail'
|
'to_field': 'po_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 26,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'category',
|
|
||||||
'idx': 28,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'category'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'add_deduct_tax',
|
|
||||||
'idx': 29,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'add_deduct_tax'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 30,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 31,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 32,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 33,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'cost_center',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'cost_center'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 36,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'project_name',
|
|
||||||
'idx': 37,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'project_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'purchase_receipt_details',
|
'from_field': 'purchase_receipt_details',
|
||||||
'from_table': 'Purchase Receipt Detail',
|
'from_table': 'Purchase Receipt Detail',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'entries',
|
'to_field': 'entries',
|
||||||
'to_table': 'PV Detail',
|
'to_table': 'PV Detail',
|
||||||
@ -394,7 +117,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Purchase Receipt',
|
'from_table': 'Purchase Receipt',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Payable Voucher',
|
'to_table': 'Payable Voucher',
|
||||||
'validation_logic': 'docstatus=1'
|
'validation_logic': 'docstatus=1'
|
||||||
@ -405,7 +127,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'purchase_tax_details',
|
'from_field': 'purchase_tax_details',
|
||||||
'from_table': 'Purchase Tax Detail',
|
'from_table': 'Purchase Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'purchase_tax_details',
|
'to_field': 'purchase_tax_details',
|
||||||
'to_table': 'Purchase Tax Detail',
|
'to_table': 'Purchase Tax Detail',
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:36',
|
'creation': '2010-08-08 17:09:36',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-16 17:34:21',
|
'modified': '2011-08-08 16:56:40',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -50,7 +50,6 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer',
|
'from_field': 'customer',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer'
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
@ -58,269 +57,31 @@
|
|||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer_address',
|
'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate)',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'charge'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'price_list_name',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'price_list_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)',
|
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'base_ref_rate',
|
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'base_ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'name',
|
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'so_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'ref_rate',
|
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'basic_rate',
|
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'basic_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 26,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'sales_order'
|
'to_field': 'sales_order'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 29,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'export_rate'
|
'to_field': 'so_detail'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'export_rate',
|
'from_field': 'eval:flt(obj.amount) - flt(obj.billed_amt)',
|
||||||
'idx': 30,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.basic_rate)',
|
|
||||||
'idx': 31,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
@ -328,342 +89,24 @@
|
|||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.export_rate)',
|
'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
|
||||||
'idx': 32,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'export_amount'
|
'to_field': 'export_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'adj_rate',
|
|
||||||
'idx': 33,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'adj_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 36,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 37,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 38,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_amount',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_tax_amount',
|
|
||||||
'idx': 40,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total_tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 41,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'cost_center_other_charges',
|
|
||||||
'idx': 42,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'cost_center_other_charges'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 43,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tax_amount',
|
|
||||||
'idx': 44,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total',
|
|
||||||
'idx': 45,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 46,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 47,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tc_name',
|
|
||||||
'idx': 48,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'tc_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'select_print_heading',
|
|
||||||
'idx': 49,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'select_print_heading'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 50,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_total',
|
|
||||||
'idx': 51,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'net_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total',
|
|
||||||
'idx': 52,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'other_charges_total',
|
|
||||||
'idx': 53,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'other_charges_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total',
|
|
||||||
'idx': 54,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words',
|
|
||||||
'idx': 55,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total_export',
|
|
||||||
'idx': 56,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total_export',
|
|
||||||
'idx': 57,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words_export',
|
|
||||||
'idx': 58,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'project_name',
|
'from_field': 'project_name',
|
||||||
'idx': 59,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'project_name'
|
'to_field': 'project_name'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_partner',
|
|
||||||
'idx': 60,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'sales_partner'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_designation',
|
|
||||||
'idx': 61,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_designation'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'commission_rate',
|
|
||||||
'idx': 62,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'commission_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_commission',
|
|
||||||
'idx': 63,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'total_commission'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_percentage',
|
|
||||||
'idx': 64,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_percentage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_person',
|
|
||||||
'idx': 65,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_amount',
|
|
||||||
'idx': 66,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'incentives',
|
|
||||||
'idx': 67,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'incentives'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'reserved_warehouse',
|
'from_field': 'reserved_warehouse',
|
||||||
'idx': 68,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'warehouse'
|
'to_field': 'warehouse'
|
||||||
},
|
},
|
||||||
@ -672,7 +115,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Sales Order',
|
'from_table': 'Sales Order',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Receivable Voucher',
|
'to_table': 'Receivable Voucher',
|
||||||
'validation_logic': 'docstatus=1'
|
'validation_logic': 'docstatus=1'
|
||||||
@ -683,11 +125,10 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_order_detail',
|
'from_field': 'sales_order_detail',
|
||||||
'from_table': 'Sales Order Detail',
|
'from_table': 'Sales Order Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'entries',
|
'to_field': 'entries',
|
||||||
'to_table': 'RV Detail',
|
'to_table': 'RV Detail',
|
||||||
'validation_logic': '(qty > ifnull(billed_qty, 0) or amount > ifnull(billed_amt, 0)) and docstatus = 1'
|
'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
@ -695,7 +136,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'other_charges',
|
'from_field': 'other_charges',
|
||||||
'from_table': 'RV Tax Detail',
|
'from_table': 'RV Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'other_charges',
|
'to_field': 'other_charges',
|
||||||
'to_table': 'RV Tax Detail',
|
'to_table': 'RV Tax Detail',
|
||||||
@ -707,7 +147,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_team',
|
'from_field': 'sales_team',
|
||||||
'from_table': 'Sales Team',
|
'from_table': 'Sales Team',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 3,
|
'match_id': 3,
|
||||||
'to_field': 'sales_team',
|
'to_field': 'sales_team',
|
||||||
'to_table': 'Sales Team',
|
'to_table': 'Sales Team',
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
$.extend(cur_frm.cscript, {
|
|
||||||
Generate: function(doc, dt, dn) {
|
|
||||||
cur_frm.cscript.clear_installments(doc);
|
|
||||||
for(var i=0; i< doc.no_of_installments; i++) {
|
|
||||||
d = LocalDB.add_child(doc, 'Loan Installment', 'installments');
|
|
||||||
d.amount = doc.loan_amount / doc.no_of_installments;
|
|
||||||
d.due_date = dateutil.add_months(doc.start_date, i+1);
|
|
||||||
}
|
|
||||||
cur_frm.refresh();
|
|
||||||
},
|
|
||||||
/* submit:function(doc){
|
|
||||||
data=doc.get_values();
|
|
||||||
|
|
||||||
data['']=
|
|
||||||
$c_obj(make_doclist(dt,dn),'loan_post',data,function(){});
|
|
||||||
},*/
|
|
||||||
refresh: function(doc) {
|
|
||||||
cur_frm.cscript.hide_show_buttons(doc);
|
|
||||||
},
|
|
||||||
hide_show_buttons: function(doc) {
|
|
||||||
if(doc.docstatus==0) {
|
|
||||||
hide_field('Installment Reciept'); unhide_field('Generate');
|
|
||||||
} else if (doc.docstatus==1) {
|
|
||||||
unhide_field('Installment Reciept');hide_field('Generate');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
clear_installments: function(doc) {
|
|
||||||
$.each(getchildren('Loan Installment', doc.name, 'installments', 'Loan'),
|
|
||||||
function(i, d) {
|
|
||||||
LocalDB.delete_doc('Loan Installment', d.name);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
},
|
|
||||||
'Installment Reciept': function(doc, dt, dn) {
|
|
||||||
var d = new wn.widgets.Dialog({
|
|
||||||
width: 500,
|
|
||||||
title: 'Add a new payment installment',
|
|
||||||
fields: [
|
|
||||||
{fieldtype:'Data', label:'Cheque Number', fieldname:'cheque_number', reqd:1},
|
|
||||||
{fieldtype:'Date', label:'Cheque Date', fieldname:'cheque_date', reqd:1},
|
|
||||||
{fieldtype:'Link', label:'Bank Account', fieldname:'bank_account', reqd:1, options:'Account'},
|
|
||||||
{fieldtype:'Button', label:'Update',fieldname:'update'}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
d.show();
|
|
||||||
d.fields_dict.update.input.onclick = function() {
|
|
||||||
var data = d.get_values();
|
|
||||||
|
|
||||||
if(data) {
|
|
||||||
$c_obj(make_doclist(dt,dn),'loan_installment_post',data,function(){cur_frm.refresh(); d.hide();});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
@ -1,48 +0,0 @@
|
|||||||
import webnotes
|
|
||||||
from webnotes.model.doc import make_autoname, Document, addchild
|
|
||||||
from webnotes import msgprint
|
|
||||||
from webnotes.utils import get_defaults
|
|
||||||
import json
|
|
||||||
from accounts.utils import post_jv
|
|
||||||
sql = webnotes.conn.sql
|
|
||||||
|
|
||||||
class DocType:
|
|
||||||
def __init__(self, doc, doclist):
|
|
||||||
self.doc, self.doclist = doc, doclist
|
|
||||||
|
|
||||||
def autoname(self):
|
|
||||||
"""
|
|
||||||
Create Loan Id using naming_series pattern
|
|
||||||
"""
|
|
||||||
self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
|
|
||||||
|
|
||||||
def loan_post(self):
|
|
||||||
data['voucher_type']='Loan Issue'
|
|
||||||
data['naming_series']='JV'
|
|
||||||
data['fiscal_year'] = get_defaults()['fiscal_year'] # To be modified to take care
|
|
||||||
data['company'] = get_defaults()['company']
|
|
||||||
data['debit_account'] = self.doc['receivable_account']
|
|
||||||
data['credit_account'] = self.doc['account']
|
|
||||||
data['amount'] = self.doc.loan_amount
|
|
||||||
jv_name=post_jv(data)
|
|
||||||
|
|
||||||
def loan_installment_post(self, args):
|
|
||||||
"""
|
|
||||||
Posts the loan receipt into Journal Voucher
|
|
||||||
"""
|
|
||||||
next_inst = sql("select amount,name from `tabLoan Installment` where parent=%s and ifnull(cheque_number,'')='' order by due_date limit 1",self.doc.name)
|
|
||||||
|
|
||||||
data = json.loads(args)
|
|
||||||
data['voucher_type']='Loan Receipt'
|
|
||||||
data['naming_series']='JV'
|
|
||||||
data['amount']=next_inst[0][0]
|
|
||||||
data['debit_account']=data.get('bank_account')
|
|
||||||
data['credit_account']=self.doc.account
|
|
||||||
data['fiscal_year']=get_defaults()['fiscal_year']
|
|
||||||
data['company']=get_defaults()['company']
|
|
||||||
jv_name=post_jv(data)
|
|
||||||
|
|
||||||
sql("update `tabLoan Installment` set cheque_number=%s, cheque_date=%s, jv_number=%s where name=%s",(data.get('cheque_number'),data.get('cheque_date'),jv_name,next_inst[0][1]))
|
|
||||||
|
|
||||||
self.doclist = [Document(d.doctype, d.name) for d in self.doclist]
|
|
||||||
|
|
@ -1,172 +0,0 @@
|
|||||||
# DocType, Loan
|
|
||||||
[
|
|
||||||
|
|
||||||
# These values are common in all dictionaries
|
|
||||||
{
|
|
||||||
'creation': '2011-07-15 10:35:26',
|
|
||||||
'docstatus': 0,
|
|
||||||
'modified': '2011-07-18 12:12:19',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'owner': 'Administrator'
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocType
|
|
||||||
{
|
|
||||||
'_last_update': '1310963215',
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'doctype': 'DocType',
|
|
||||||
'module': 'Accounts',
|
|
||||||
'name': '__common__',
|
|
||||||
'section_style': 'Simple',
|
|
||||||
'show_in_menu': 0,
|
|
||||||
'version': 15
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'name': '__common__',
|
|
||||||
'parent': 'Loan',
|
|
||||||
'parentfield': 'fields',
|
|
||||||
'parenttype': 'DocType',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'name': '__common__',
|
|
||||||
'parent': 'Loan',
|
|
||||||
'parentfield': 'permissions',
|
|
||||||
'parenttype': 'DocType',
|
|
||||||
'read': 1,
|
|
||||||
'role': 'Accounts User'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocType, Loan
|
|
||||||
{
|
|
||||||
'doctype': 'DocType',
|
|
||||||
'name': 'Loan'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'cancel': 1,
|
|
||||||
'create': 1,
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 1,
|
|
||||||
'permlevel': 0,
|
|
||||||
'submit': 1,
|
|
||||||
'write': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 2,
|
|
||||||
'permlevel': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'naming_series',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 1,
|
|
||||||
'label': 'Naming Series',
|
|
||||||
'options': '\nLOAN',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'account',
|
|
||||||
'fieldtype': 'Link',
|
|
||||||
'idx': 2,
|
|
||||||
'label': 'Account',
|
|
||||||
'options': 'Account',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'receivable_account',
|
|
||||||
'fieldtype': 'Link',
|
|
||||||
'idx': 3,
|
|
||||||
'label': 'Receivable Account',
|
|
||||||
'options': 'Account'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'invoice',
|
|
||||||
'fieldtype': 'Link',
|
|
||||||
'idx': 4,
|
|
||||||
'label': 'Invoice',
|
|
||||||
'options': 'Receivable Voucher',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'loan_amount',
|
|
||||||
'fieldtype': 'Currency',
|
|
||||||
'idx': 5,
|
|
||||||
'label': 'Loan Amount',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'start_date',
|
|
||||||
'fieldtype': 'Date',
|
|
||||||
'idx': 6,
|
|
||||||
'label': 'Start Date',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'no_of_installments',
|
|
||||||
'fieldtype': 'Int',
|
|
||||||
'idx': 7,
|
|
||||||
'label': 'No of Installments',
|
|
||||||
'reqd': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldtype': 'Button',
|
|
||||||
'idx': 8,
|
|
||||||
'label': 'Generate',
|
|
||||||
'trigger': 'Client'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'installments',
|
|
||||||
'fieldtype': 'Table',
|
|
||||||
'idx': 9,
|
|
||||||
'label': 'Installments',
|
|
||||||
'options': 'Loan Installment'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'allow_on_submit': 1,
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldtype': 'Button',
|
|
||||||
'idx': 10,
|
|
||||||
'label': 'Installment Reciept'
|
|
||||||
}
|
|
||||||
]
|
|
@ -1,17 +0,0 @@
|
|||||||
import unittest
|
|
||||||
import webnotes
|
|
||||||
from webnotes.model.code import get_obj
|
|
||||||
|
|
||||||
class TestScheduleGeneartion(unittest.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
webnotes.conn.begin()
|
|
||||||
# create a mock loan
|
|
||||||
self.loan = get_obj('Loan', 'LOAN00001')
|
|
||||||
|
|
||||||
def test_generation(self):
|
|
||||||
"test the genaration of loan installments"
|
|
||||||
self.loan.generate()
|
|
||||||
self.assertEqual(self.loan.get_installment_total(), self.loan.doc.loan_amount)
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
webnotes.conn.rollback()
|
|
@ -1,111 +0,0 @@
|
|||||||
# DocType, Loan Installment
|
|
||||||
[
|
|
||||||
|
|
||||||
# These values are common in all dictionaries
|
|
||||||
{
|
|
||||||
'creation': '2011-07-15 10:36:42',
|
|
||||||
'docstatus': 0,
|
|
||||||
'modified': '2011-07-15 15:48:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'owner': 'Administrator'
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocType
|
|
||||||
{
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'doctype': 'DocType',
|
|
||||||
'istable': 1,
|
|
||||||
'module': 'Accounts',
|
|
||||||
'name': '__common__',
|
|
||||||
'section_style': 'Simple',
|
|
||||||
'show_in_menu': 0,
|
|
||||||
'version': 4
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'name': '__common__',
|
|
||||||
'parent': 'Loan Installment',
|
|
||||||
'parentfield': 'fields',
|
|
||||||
'parenttype': 'DocType'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocType, Loan Installment
|
|
||||||
{
|
|
||||||
'doctype': 'DocType',
|
|
||||||
'name': 'Loan Installment'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'amount',
|
|
||||||
'fieldtype': 'Currency',
|
|
||||||
'idx': 1,
|
|
||||||
'label': 'Amount',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'due_date',
|
|
||||||
'fieldtype': 'Date',
|
|
||||||
'idx': 2,
|
|
||||||
'label': 'Due Date',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'cheque_number',
|
|
||||||
'fieldtype': 'Data',
|
|
||||||
'idx': 3,
|
|
||||||
'label': 'Cheque Number',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'cheque_date',
|
|
||||||
'fieldtype': 'Date',
|
|
||||||
'idx': 4,
|
|
||||||
'label': 'Cheque Date',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'deposit_date',
|
|
||||||
'fieldtype': 'Date',
|
|
||||||
'idx': 5,
|
|
||||||
'label': 'Deposit Date',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'realized_date',
|
|
||||||
'fieldtype': 'Date',
|
|
||||||
'idx': 6,
|
|
||||||
'label': 'Realized Date',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'jv_number',
|
|
||||||
'fieldtype': 'Link',
|
|
||||||
'hidden': 0,
|
|
||||||
'idx': 7,
|
|
||||||
'label': 'JV Number',
|
|
||||||
'options': 'Journal Voucher',
|
|
||||||
'permlevel': 1
|
|
||||||
}
|
|
||||||
]
|
|
@ -84,7 +84,7 @@ class DocType(TransactionBase):
|
|||||||
self.validate_duplicate_docname('purchase_order')
|
self.validate_duplicate_docname('purchase_order')
|
||||||
self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail']]")
|
self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail']]")
|
||||||
|
|
||||||
ret = eval(self.get_credit_to())
|
ret = self.get_credit_to()
|
||||||
#self.doc.supplier_name = ret['supplier_name']
|
#self.doc.supplier_name = ret['supplier_name']
|
||||||
#self.doc.supplier_address = ret['supplier_address']
|
#self.doc.supplier_address = ret['supplier_address']
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ class DocType(TransactionBase):
|
|||||||
get_obj('DocType Mapper', 'Sales Order-Receivable Voucher').dt_map('Sales Order', 'Receivable Voucher', self.doc.sales_order_main, self.doc, self.doclist, "[['Sales Order', 'Receivable Voucher'],['Sales Order Detail', 'RV Detail'],['RV Tax Detail','RV Tax Detail'], ['Sales Team', 'Sales Team']]")
|
get_obj('DocType Mapper', 'Sales Order-Receivable Voucher').dt_map('Sales Order', 'Receivable Voucher', self.doc.sales_order_main, self.doc, self.doclist, "[['Sales Order', 'Receivable Voucher'],['Sales Order Detail', 'RV Detail'],['RV Tax Detail','RV Tax Detail'], ['Sales Team', 'Sales Team']]")
|
||||||
self.get_income_account('entries')
|
self.get_income_account('entries')
|
||||||
|
|
||||||
ret = eval(self.get_debit_to())
|
ret = self.get_debit_to()
|
||||||
if ret.has_key('debit_to'):
|
if ret.has_key('debit_to'):
|
||||||
self.doc.debit_to = ret['debit_to']
|
self.doc.debit_to = ret['debit_to']
|
||||||
|
|
||||||
|
@ -1,17 +1,15 @@
|
|||||||
report.customize_filters = function() {
|
report.customize_filters = function() {
|
||||||
|
|
||||||
//this.hide_all_filters();
|
|
||||||
this.mytabs.items['Select Columns'].hide();
|
|
||||||
this.mytabs.items['More Filters'].hide();
|
|
||||||
|
|
||||||
|
|
||||||
this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Budget Detail'});
|
this.add_filter({fieldname:'period', label:'Period', fieldtype:'Select', options:'Monthly'+NEWLINE+'Quarterly'+NEWLINE+'Half Yearly'+NEWLINE+'Annual',report_default:'Quarterly',ignore : 1, parent:'Budget Detail'});
|
||||||
|
this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', report_default:sys_defaults.company, ignore : 1, parent:'Budget Detail', in_first_page:1});
|
||||||
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Fiscal Year'].df.in_first_page = 1;
|
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Fiscal Year'].df.in_first_page = 1;
|
||||||
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Period'].df.in_first_page = 1;
|
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Period'].df.in_first_page = 1;
|
||||||
|
|
||||||
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year;
|
this.filter_fields_dict['Budget Detail'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year;
|
||||||
}
|
}
|
||||||
|
|
||||||
report.aftertableprint = function(t) {
|
report.aftertableprint = function(t) {
|
||||||
$yt(t,'*',1,{whiteSpace:'pre'});
|
$yt(t,'*',1,{whiteSpace:'pre'});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.mytabs.items['More Filters'].hide();
|
||||||
this.mytabs.items['Select Columns'].hide();
|
this.mytabs.items['Select Columns'].hide();
|
||||||
|
@ -131,11 +131,6 @@ def append_colnames(name, colnames, coltypes, colwidths, coloptions, col_idx):
|
|||||||
col_idx[str(c) + n ] = len(colnames) - 1
|
col_idx[str(c) + n ] = len(colnames) - 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# make default columns
|
|
||||||
#coltypes[col_idx[based_on]] = 'Link'
|
|
||||||
#coloptions[col_idx[based_on]]= based_on
|
|
||||||
|
|
||||||
# get start date
|
# get start date
|
||||||
start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
|
start_date = get_value('Fiscal Year', fiscal_year, 'year_start_date')
|
||||||
if not start_date:
|
if not start_date:
|
||||||
@ -162,7 +157,7 @@ for r in res:
|
|||||||
|
|
||||||
ch = make_child_lst(based_on,r[0].strip())
|
ch = make_child_lst(based_on,r[0].strip())
|
||||||
|
|
||||||
actual = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where t2.is_pl_account = 'Yes' and t1.is_cancelled = 'No' and t1.cost_center in %s and t2.debit_or_credit = 'Debit' and t1.posting_date between '%s' and '%s' and t1.account = t2.name"%(ch, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
|
actual = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where ifnull(t2.is_pl_account, 'No') = 'Yes' and ifnull(t1.is_cancelled, 'No') = 'No' and t1.cost_center in %s and t2.debit_or_credit = 'Debit' and t1.posting_date between '%s' and '%s' and t1.account = t2.name"%(ch, mon_list[count][data['start_date']], mon_list[count][data['end_date']]))
|
||||||
|
|
||||||
#----------------------------------------------------------
|
#----------------------------------------------------------
|
||||||
actual = flt(actual[0][0])
|
actual = flt(actual[0][0])
|
||||||
|
@ -1 +1,10 @@
|
|||||||
SELECT CONCAT(REPEAT(' ', COUNT(parent.name) - 1), node.name) AS name FROM `tabCost Center` AS node,`tabCost Center` AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.docstatus !=2 GROUP BY node.name ORDER BY node.lft
|
SELECT
|
||||||
|
CONCAT(REPEAT(' ', COUNT(parent.name) - 1), node.name) AS name
|
||||||
|
FROM
|
||||||
|
`tabCost Center` AS node,`tabCost Center` AS parent
|
||||||
|
WHERE
|
||||||
|
node.lft BETWEEN parent.lft AND parent.rgt
|
||||||
|
AND node.docstatus !=2
|
||||||
|
AND node.company_name like '%(company)s%%'
|
||||||
|
GROUP BY node.name
|
||||||
|
ORDER BY node.lft
|
||||||
|
@ -11,8 +11,8 @@ else:
|
|||||||
from_date = filter_values['posting_date']
|
from_date = filter_values['posting_date']
|
||||||
to_date = filter_values['posting_date1']
|
to_date = filter_values['posting_date1']
|
||||||
|
|
||||||
ysd, from_date_year = sql("select year_start_date, name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",from_date)[0]
|
from_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",from_date)[0][0]
|
||||||
|
#to_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",to_date)[0][0]
|
||||||
|
|
||||||
# define columns
|
# define columns
|
||||||
#---------------
|
#---------------
|
||||||
@ -49,13 +49,25 @@ total_diff = total_debit - total_credit
|
|||||||
|
|
||||||
# opening
|
# opening
|
||||||
account = filter_values.get('account')
|
account = filter_values.get('account')
|
||||||
if account:
|
if not account:
|
||||||
|
msgprint('Select an account to proceed',raise_exception=0,small=1)
|
||||||
|
|
||||||
|
|
||||||
acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account)
|
acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account)
|
||||||
|
|
||||||
|
opening_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, from_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
|
||||||
closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
|
closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
|
||||||
if acc_det[0][0] == 'Credit':
|
if acc_det[0][0] == 'Credit':
|
||||||
closing_bal = -1*closing_bal
|
closing_bal = -1*closing_bal
|
||||||
|
opening_bal = -1*opening_bal
|
||||||
|
|
||||||
out = []
|
out = []
|
||||||
|
|
||||||
|
t_row = ['' for i in range(len(colnames))]
|
||||||
|
t_row[1] = 'Opening as on '+formatdate(from_date)
|
||||||
|
t_row[col_idx['Debit']-1] = opening_bal
|
||||||
|
out.append(t_row)
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
for r in res:
|
for r in res:
|
||||||
count +=1
|
count +=1
|
||||||
@ -85,7 +97,7 @@ if total_debit != 0 or total_credit != 0:
|
|||||||
# closing
|
# closing
|
||||||
if account:
|
if account:
|
||||||
t_row = ['' for i in range(len(colnames))]
|
t_row = ['' for i in range(len(colnames))]
|
||||||
t_row[1] = 'Closing Balance on ' + to_date
|
t_row[1] = 'Closing Balance on ' + formatdate(to_date)
|
||||||
t_row[col_idx['Debit']-1] = flt(closing_bal)
|
t_row[col_idx['Debit']-1] = flt(closing_bal)
|
||||||
out.append(t_row)
|
out.append(t_row)
|
||||||
|
|
||||||
|
@ -3,15 +3,10 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
|
||||||
'creation': '2011-07-27 16:17:04',
|
'creation': '2011-07-27 16:17:04',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-27 16:17:04',
|
'modified': '2011-07-27 16:17:04',
|
||||||
=======
|
|
||||||
'creation': '2011-07-26 17:01:34',
|
'creation': '2011-07-26 17:01:34',
|
||||||
'docstatus': 0,
|
|
||||||
'modified': '2011-07-28 12:55:50',
|
|
||||||
>>>>>>> d075a6c53dc2c832a363409cd4b32ff5a6482e5a
|
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-07-27 16:17:04',
|
'creation': '2011-08-29 13:45:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-27 16:17:04',
|
'modified': '2011-08-29 13:45:35',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-07-26 18:11:47',
|
'creation': '2011-08-29 13:45:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-26 18:27:01',
|
'modified': '2011-08-29 13:45:35',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-07-27 16:17:04',
|
'creation': '2011-08-29 13:45:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-27 16:17:04',
|
'modified': '2011-08-29 13:45:35',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,15 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
|
||||||
'creation': '2011-07-27 16:17:04',
|
|
||||||
'docstatus': 0,
|
|
||||||
'modified': '2011-07-27 16:17:04',
|
|
||||||
=======
|
|
||||||
'creation': '2011-07-27 18:48:29',
|
'creation': '2011-07-27 18:48:29',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-28 12:56:35',
|
'modified': '2011-07-28 12:56:35',
|
||||||
>>>>>>> d075a6c53dc2c832a363409cd4b32ff5a6482e5a
|
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,15 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
'creation': '2011-08-29 13:45:36',
|
||||||
'creation': '2011-07-27 16:17:04',
|
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-27 16:17:04',
|
'modified': '2011-08-29 13:45:36',
|
||||||
=======
|
|
||||||
'creation': '2011-07-28 12:13:41',
|
|
||||||
'docstatus': 0,
|
|
||||||
'modified': '2011-07-28 12:56:47',
|
|
||||||
>>>>>>> d075a6c53dc2c832a363409cd4b32ff5a6482e5a
|
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-07-27 16:17:04',
|
'creation': '2011-08-29 13:45:36',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-27 16:17:04',
|
'modified': '2011-08-29 13:45:36',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
@ -45,21 +45,11 @@
|
|||||||
'name': 'Indent-Purchase Order'
|
'name': 'Indent-Purchase Order'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
},
|
},
|
||||||
@ -68,7 +58,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
@ -77,7 +66,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -86,7 +74,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 5,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_detail_docname'
|
'to_field': 'prevdoc_detail_docname'
|
||||||
},
|
},
|
||||||
@ -95,7 +82,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'uom',
|
'from_field': 'uom',
|
||||||
'idx': 6,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'stock_uom'
|
'to_field': 'stock_uom'
|
||||||
},
|
},
|
||||||
@ -104,88 +90,14 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(1)',
|
'from_field': 'eval:flt(1)',
|
||||||
'idx': 7,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'conversion_factor'
|
'to_field': 'conversion_factor'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'uom',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'warehouse',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'warehouse'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'schedule_date',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'schedule_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(obj.qty) - flt(obj.ordered_qty)',
|
'from_field': 'eval:flt(obj.qty) - flt(obj.ordered_qty)',
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'stock_qty'
|
'to_field': 'stock_qty'
|
||||||
},
|
},
|
||||||
@ -194,7 +106,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(obj.qty) - flt(obj.ordered_qty)',
|
'from_field': 'eval:flt(obj.qty) - flt(obj.ordered_qty)',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
@ -203,7 +114,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Indent',
|
'from_table': 'Indent',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
'to_table': 'Purchase Order',
|
'to_table': 'Purchase Order',
|
||||||
@ -215,7 +125,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'indent_details',
|
'from_field': 'indent_details',
|
||||||
'from_table': 'Indent Detail',
|
'from_table': 'Indent Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'to_field': 'po_details',
|
'to_field': 'po_details',
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-04-06 15:33:09',
|
'creation': '2011-05-05 15:58:13',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-04 14:49:55',
|
'modified': '2011-05-05 16:20:10',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -49,7 +49,6 @@
|
|||||||
'checking_operator': '>=',
|
'checking_operator': '>=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'transaction_date',
|
'from_field': 'transaction_date',
|
||||||
'idx': 1,
|
|
||||||
'map': 'No',
|
'map': 'No',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'transaction_date'
|
'to_field': 'transaction_date'
|
||||||
@ -60,148 +59,43 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 2,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 3,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tc_name',
|
|
||||||
'idx': 4,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'tc_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 5,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'letter_head',
|
|
||||||
'idx': 6,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'letter_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 7,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'sales_order_no'
|
'to_field': 'sales_order_no'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 8,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 9,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 10,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 11,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'stock_uom',
|
'from_field': 'stock_uom',
|
||||||
'idx': 12,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'uom'
|
'to_field': 'uom'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'qty',
|
|
||||||
'idx': 13,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'reserved_warehouse',
|
'from_field': 'reserved_warehouse',
|
||||||
'idx': 14,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'warehouse'
|
'to_field': 'warehouse'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 15,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_order_details',
|
'from_field': 'sales_order_details',
|
||||||
'from_table': 'Sales Order Detail',
|
'from_table': 'Sales Order Detail',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'reference_key': 'prevdoc_detail_docname',
|
'reference_key': 'prevdoc_detail_docname',
|
||||||
@ -214,7 +108,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Sales Order',
|
'from_table': 'Sales Order',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
'to_table': 'Indent',
|
'to_table': 'Indent',
|
||||||
|
3
erpnext_version.py
Normal file
3
erpnext_version.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# version info
|
||||||
|
|
||||||
|
version='1.0.0'
|
12
home/page/dashboard/dashboard.css
Normal file
12
home/page/dashboard/dashboard.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
div.dashboard_table td {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dashboard-title {
|
||||||
|
font-weight: bold;
|
||||||
|
padding: '3px 0px';
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dashboard-graph {
|
||||||
|
height: 180px;
|
||||||
|
}
|
8
home/page/dashboard/dashboard.html
Normal file
8
home/page/dashboard/dashboard.html
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<div class="layout_wrapper dashboard">
|
||||||
|
<div class="header"></div>
|
||||||
|
<div class="body">
|
||||||
|
<!-- 4x2 table to show the dashboards-->
|
||||||
|
<div class="help_box">Loading...</div>
|
||||||
|
<div class="dashboard_table"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
142
home/page/dashboard/dashboard.js
Normal file
142
home/page/dashboard/dashboard.js
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
pscript.onload_dashboard = function() {
|
||||||
|
// load jqplot
|
||||||
|
$.scriptPath = 'js/'
|
||||||
|
$.require(['jquery/jquery.jqplot.min.js',
|
||||||
|
'jquery/jqplot-plugins/jqplot.barRenderer.js',
|
||||||
|
'jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js',
|
||||||
|
'jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js',
|
||||||
|
'jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js']);
|
||||||
|
|
||||||
|
|
||||||
|
pscript.dashboard_settings = {
|
||||||
|
company: sys_defaults.company,
|
||||||
|
start: dateutil.obj_to_str(dateutil.add_days(new Date(), -180)),
|
||||||
|
end: dateutil.obj_to_str(new Date()),
|
||||||
|
interval: 30
|
||||||
|
}
|
||||||
|
|
||||||
|
var ph = new PageHeader($('.dashboard .header').get(0), 'Dashboard');
|
||||||
|
var db = new Dashboard();
|
||||||
|
|
||||||
|
ph.add_button('Settings', db.show_settings);
|
||||||
|
|
||||||
|
db.refresh();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Dashboard = function() {
|
||||||
|
var me = this;
|
||||||
|
$.extend(me, {
|
||||||
|
refresh: function() {
|
||||||
|
$('.dashboard .help_box').css('display', 'block');
|
||||||
|
$c_page('home', 'dashboard', 'load_dashboard', JSON.stringify(pscript.dashboard_settings), function(r,rt) {
|
||||||
|
$('.dashboard .help_box').css('display', 'none');
|
||||||
|
me.render(r.message);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
render: function(data) {
|
||||||
|
$('.dashboard_table').html('');
|
||||||
|
var t = make_table($('.dashboard_table').get(0), 4, 2, '100%', ['50%', '50%'], {padding: '5px'});
|
||||||
|
var ridx=0; var cidx=0;
|
||||||
|
for(var i=0; i< data.length; i++) {
|
||||||
|
// switch columns and rows
|
||||||
|
if(cidx==2) { cidx=0; ridx++}
|
||||||
|
|
||||||
|
// give an id!
|
||||||
|
var cell = $td(t,ridx,cidx);
|
||||||
|
var title = $a(cell, 'div', 'dashboard-title', '', data[i][0].title);
|
||||||
|
var parent = $a(cell, 'div', 'dashboard-graph');
|
||||||
|
if(data[i][0].comment);
|
||||||
|
var comment = $a(cell, 'div', 'comment', '', data[i][0].comment)
|
||||||
|
|
||||||
|
parent.id = '_dashboard' + ridx + '-' + cidx;
|
||||||
|
|
||||||
|
// render graph
|
||||||
|
me.render_graph(parent.id, data[i][1], data[i][0].fillColor);
|
||||||
|
cidx++;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
render_graph: function(parent, values, fillColor) {
|
||||||
|
var vl = [];
|
||||||
|
$.each(values, function(i,v) {
|
||||||
|
vl.push([dateutil.str_to_user(v[0]), v[1]]);
|
||||||
|
});
|
||||||
|
$.jqplot(parent, [vl], {
|
||||||
|
seriesDefaults:{
|
||||||
|
renderer:$.jqplot.BarRenderer,
|
||||||
|
rendererOptions: {fillToZero: true},
|
||||||
|
},
|
||||||
|
axes: {
|
||||||
|
// Use a category axis on the x axis and use our custom ticks.
|
||||||
|
xaxis: {
|
||||||
|
min: 0,
|
||||||
|
renderer: $.jqplot.CategoryAxisRenderer,
|
||||||
|
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
|
||||||
|
tickOptions: {
|
||||||
|
angle: -30,
|
||||||
|
fontSize: '8pt'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// Pad the y axis just a little so bars can get close to, but
|
||||||
|
// not touch, the grid boundaries. 1.2 is the default padding.
|
||||||
|
yaxis: {
|
||||||
|
min: 0,
|
||||||
|
pad: 1.05,
|
||||||
|
tickOptions: {formatString: '%d'}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
seriesColors: [fillColor]
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
show_settings: function() {
|
||||||
|
var d = new wn.widgets.Dialog({
|
||||||
|
title: 'Set Company Settings',
|
||||||
|
width: 500,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
label:'Company',
|
||||||
|
reqd: 1,
|
||||||
|
fieldname:'company',
|
||||||
|
fieldtype:'Link',
|
||||||
|
options: 'Company'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'Start Date',
|
||||||
|
reqd: 1,
|
||||||
|
fieldname:'start',
|
||||||
|
fieldtype:'Date',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'End Date',
|
||||||
|
reqd: 1,
|
||||||
|
fieldname:'end',
|
||||||
|
fieldtype:'Date',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'Interval',
|
||||||
|
reqd: 1,
|
||||||
|
fieldname:'interval',
|
||||||
|
fieldtype:'Int'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'Regenerate',
|
||||||
|
fieldname:'refresh',
|
||||||
|
fieldtype:'Button'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
d.onshow = function() {
|
||||||
|
d.set_values(pscript.dashboard_settings);
|
||||||
|
}
|
||||||
|
d.fields_dict.refresh.input.onclick = function() {
|
||||||
|
pscript.dashboard_settings = d.get_values();
|
||||||
|
me.refresh();
|
||||||
|
d.hide();
|
||||||
|
}
|
||||||
|
d.show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
260
home/page/dashboard/dashboard.py
Normal file
260
home/page/dashboard/dashboard.py
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
dashboards = [
|
||||||
|
{
|
||||||
|
'type': 'account',
|
||||||
|
'account': 'Income',
|
||||||
|
'title': 'Income',
|
||||||
|
'fillColor': '#90EE90'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'account',
|
||||||
|
'account': 'Expenses',
|
||||||
|
'title': 'Expenses',
|
||||||
|
'fillColor': '#90EE90'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'receivables',
|
||||||
|
'title': 'Receivables',
|
||||||
|
'fillColor': '#FFE4B5'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'payables',
|
||||||
|
'title': 'Payables',
|
||||||
|
'fillColor': '#FFE4B5'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'collection',
|
||||||
|
'title': 'Collection',
|
||||||
|
'comment':'This info comes from the accounts your have marked as "Bank or Cash"',
|
||||||
|
'fillColor': '#DDA0DD'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'payments',
|
||||||
|
'title': 'Payments',
|
||||||
|
'comment':'This info comes from the accounts your have marked as "Bank or Cash"',
|
||||||
|
'fillColor': '#DDA0DD'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'creation',
|
||||||
|
'doctype': 'Quotation',
|
||||||
|
'title': 'New Quotations',
|
||||||
|
'fillColor': '#ADD8E6'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'type': 'creation',
|
||||||
|
'doctype': 'Sales Order',
|
||||||
|
'title': 'New Orders',
|
||||||
|
'fillColor': '#ADD8E6'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
class DashboardWidget:
|
||||||
|
def __init__(self, company, start, end, interval):
|
||||||
|
from webnotes.utils import getdate
|
||||||
|
from webnotes.model.code import get_obj
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
self.company = company
|
||||||
|
self.abbr = webnotes.conn.get_value('Company', company, 'abbr')
|
||||||
|
self.start = getdate(start)
|
||||||
|
self.end = getdate(end)
|
||||||
|
|
||||||
|
self.interval = interval
|
||||||
|
|
||||||
|
self.glc = get_obj('GL Control')
|
||||||
|
self.cash_accounts = [d[0] for d in webnotes.conn.sql("""
|
||||||
|
select name from tabAccount
|
||||||
|
where account_type='Bank or Cash'
|
||||||
|
and company = %s and docstatus = 0
|
||||||
|
""", company)]
|
||||||
|
|
||||||
|
self.receivables_group = webnotes.conn.get_value('Company', company,'receivables_group')
|
||||||
|
self.payables_group = webnotes.conn.get_value('Company', company,'payables_group')
|
||||||
|
|
||||||
|
# list of bank and cash accounts
|
||||||
|
self.bc_list = [s[0] for s in webnotes.conn.sql("select name from tabAccount where account_type='Bank or Cash'")]
|
||||||
|
|
||||||
|
|
||||||
|
def timeline(self):
|
||||||
|
"""
|
||||||
|
get the timeline for the dashboard
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
from webnotes.utils import add_days
|
||||||
|
tl = []
|
||||||
|
|
||||||
|
if self.start > self.end:
|
||||||
|
webnotes.msgprint("Start must be before end", raise_exception=1)
|
||||||
|
|
||||||
|
curr = self.start
|
||||||
|
tl.append(curr)
|
||||||
|
|
||||||
|
while curr < self.end:
|
||||||
|
curr = add_days(curr, self.interval, 'date')
|
||||||
|
tl.append(curr)
|
||||||
|
|
||||||
|
tl.append(self.end)
|
||||||
|
|
||||||
|
return tl
|
||||||
|
|
||||||
|
def generate(self, opts):
|
||||||
|
"""
|
||||||
|
Generate the dasboard
|
||||||
|
"""
|
||||||
|
from webnotes.utils import flt
|
||||||
|
tl = self.timeline()
|
||||||
|
self.out = []
|
||||||
|
|
||||||
|
for i in range(len(tl)-1):
|
||||||
|
self.out.append([tl[i+1].strftime('%Y-%m-%d'), flt(self.value(opts, tl[i], tl[i+1])) or 0])
|
||||||
|
|
||||||
|
return self.out
|
||||||
|
|
||||||
|
def get_account_balance(self, acc, start):
|
||||||
|
"""
|
||||||
|
Get as on account balance
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
# add abbreviation to company
|
||||||
|
|
||||||
|
if not acc.endswith(self.abbr):
|
||||||
|
acc += ' - ' + self.abbr
|
||||||
|
|
||||||
|
# get other reqd parameters
|
||||||
|
try:
|
||||||
|
globals().update(webnotes.conn.sql('select debit_or_credit, lft, rgt from tabAccount where name=%s', acc, as_dict=1)[0])
|
||||||
|
except Exception,e:
|
||||||
|
webnotes.msgprint('Wrongly defined account: ' + acc)
|
||||||
|
print acc
|
||||||
|
raise e
|
||||||
|
|
||||||
|
return self.glc.get_as_on_balance(acc, self.get_fiscal_year(start), start, debit_or_credit, lft, rgt)
|
||||||
|
|
||||||
|
def get_fiscal_year(self, dt):
|
||||||
|
"""
|
||||||
|
get fiscal year from date
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
return webnotes.conn.sql("""
|
||||||
|
select name from `tabFiscal Year`
|
||||||
|
where year_start_date <= %s and
|
||||||
|
DATE_ADD(year_start_date, INTERVAL 1 YEAR) >= %s
|
||||||
|
""", (dt, dt))[0][0]
|
||||||
|
|
||||||
|
def get_creation_trend(self, doctype, start, end):
|
||||||
|
"""
|
||||||
|
Get creation # of creations in period
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
return int(webnotes.conn.sql("""
|
||||||
|
select count(*) from `tab%s` where creation between %s and %s and docstatus=1
|
||||||
|
""" % (doctype, '%s','%s'), (start, end))[0][0])
|
||||||
|
|
||||||
|
def get_account_amt(self, acc, start, end, debit_or_credit):
|
||||||
|
"""
|
||||||
|
Get debit, credit over a period
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
# add abbreviation to company
|
||||||
|
|
||||||
|
if not acc.endswith(self.abbr):
|
||||||
|
acc += ' - ' + self.abbr
|
||||||
|
|
||||||
|
ret = webnotes.conn.sql("""
|
||||||
|
select ifnull(sum(ifnull(t1.debit,0)),0), ifnull(sum(ifnull(t1.credit,0)),0)
|
||||||
|
from `tabGL Entry` t1, tabAccount t2
|
||||||
|
where t1.account = t2.name
|
||||||
|
and t2.is_pl_account = 'Yes'
|
||||||
|
and t2.debit_or_credit=%s
|
||||||
|
and ifnull(t1.is_cancelled, 'No')='No'
|
||||||
|
and t1.posting_date between %s and %s
|
||||||
|
""", (debit_or_credit, start, end))[0]
|
||||||
|
|
||||||
|
return debit_or_credit=='Credit' and float(ret[1]-ret[0]) or float(ret[0]-ret[1])
|
||||||
|
|
||||||
|
def get_bank_amt(self, debit_or_credit, master_type, start, end):
|
||||||
|
"""
|
||||||
|
Get collection (reduction in receivables over a period)
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
reg = '('+'|'.join(self.bc_list) + ')'
|
||||||
|
|
||||||
|
return webnotes.conn.sql("""
|
||||||
|
select sum(t1.%s)
|
||||||
|
from `tabGL Entry` t1, tabAccount t2
|
||||||
|
where t1.account = t2.name
|
||||||
|
and t2.master_type='%s'
|
||||||
|
and t1.%s > 0
|
||||||
|
and t1.against REGEXP '%s'
|
||||||
|
and ifnull(t1.is_cancelled, 'No')='No'
|
||||||
|
and t1.posting_date between '%s' and '%s'
|
||||||
|
""" % (debit_or_credit, master_type, debit_or_credit, reg, start, end))[0][0]
|
||||||
|
|
||||||
|
|
||||||
|
def value(self, opts, start, end):
|
||||||
|
"""
|
||||||
|
Value of the series on a particular date
|
||||||
|
"""
|
||||||
|
import webnotes
|
||||||
|
if opts['type']=='account':
|
||||||
|
debit_or_credit = 'Debit'
|
||||||
|
if opts['account']=='Income':
|
||||||
|
debit_or_credit = 'Credit'
|
||||||
|
|
||||||
|
return self.get_account_amt(opts['account'], start, end, debit_or_credit)
|
||||||
|
|
||||||
|
elif opts['type']=='receivables':
|
||||||
|
return self.get_account_balance(self.receivables_group, end)[2]
|
||||||
|
|
||||||
|
elif opts['type']=='payables':
|
||||||
|
return self.get_account_balance(self.payables_group, end)[2]
|
||||||
|
|
||||||
|
elif opts['type']=='collection':
|
||||||
|
return self.get_bank_amt('credit', 'Customer', start, end)
|
||||||
|
|
||||||
|
elif opts['type']=='payments':
|
||||||
|
return self.get_bank_amt('debit', 'Supplier', start, end)
|
||||||
|
|
||||||
|
elif opts['type']=='creation':
|
||||||
|
return self.get_creation_trend(opts['doctype'], start, end)
|
||||||
|
|
||||||
|
|
||||||
|
def load_dashboard(args):
|
||||||
|
"""
|
||||||
|
Get dashboard based on
|
||||||
|
1. Company (default company)
|
||||||
|
2. Start Date (last 3 months)
|
||||||
|
3. End Date (today)
|
||||||
|
4. Interval (7 days)
|
||||||
|
"""
|
||||||
|
dl = []
|
||||||
|
import json
|
||||||
|
args = json.loads(args)
|
||||||
|
dw = DashboardWidget(args['company'], args['start'], args['end'], int(args['interval']))
|
||||||
|
|
||||||
|
# render the dashboards
|
||||||
|
for d in dashboards:
|
||||||
|
dl.append([d, dw.generate(d)])
|
||||||
|
|
||||||
|
return dl
|
||||||
|
|
||||||
|
if __name__=='__main__':
|
||||||
|
import sys
|
||||||
|
sys.path.append('/var/www/webnotes/wnframework/cgi-bin')
|
||||||
|
from webnotes.db import Database
|
||||||
|
import webnotes
|
||||||
|
webnotes.conn = Database(use_default=1)
|
||||||
|
webnotes.session = {'user':'Administrator'}
|
||||||
|
print load_dashboard("""{
|
||||||
|
"company": "My Test",
|
||||||
|
"start": "2011-05-01",
|
||||||
|
"end": "2011-08-01",
|
||||||
|
"interval": "7"
|
||||||
|
}""")
|
49
home/page/dashboard/dashboard.txt
Normal file
49
home/page/dashboard/dashboard.txt
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Page, dashboard
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2011-08-25 16:22:44',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2011-08-25 16:22:54',
|
||||||
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Page
|
||||||
|
{
|
||||||
|
'category': 'Standard',
|
||||||
|
'doctype': 'Page',
|
||||||
|
'module': 'Home',
|
||||||
|
'name': '__common__',
|
||||||
|
'page_name': 'Dashboard',
|
||||||
|
'standard': 'Yes'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Page Role
|
||||||
|
{
|
||||||
|
'doctype': 'Page Role',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'dashboard',
|
||||||
|
'parentfield': 'roles',
|
||||||
|
'parenttype': 'Page'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Page, dashboard
|
||||||
|
{
|
||||||
|
'doctype': 'Page',
|
||||||
|
'name': 'dashboard'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Page Role
|
||||||
|
{
|
||||||
|
'doctype': 'Page Role',
|
||||||
|
'role': 'System Manager'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Page Role
|
||||||
|
{
|
||||||
|
'doctype': 'Page Role',
|
||||||
|
'role': 'Accounts Manager'
|
||||||
|
}
|
||||||
|
]
|
@ -25,12 +25,7 @@ pscript.home_make_body = function() {
|
|||||||
|
|
||||||
wrapper.banner_area = $a(wrapper.head, 'div');
|
wrapper.banner_area = $a(wrapper.head, 'div');
|
||||||
|
|
||||||
wrapper.setup_wizard_area = $a(wrapper.body, 'div', 'setup-wizard')
|
wrapper.setup_wizard_area = $a(wrapper.body, 'div', 'setup-wizard');
|
||||||
|
|
||||||
wrapper.system_message_area = $a(wrapper.body, 'div', '',
|
|
||||||
{marginBottom:'16px', padding:'8px', backgroundColor:'#FFD', border:'1px dashed #AA6', display:'none'})
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================================
|
// ==================================
|
||||||
@ -436,8 +431,8 @@ FeedList.prototype.make_head = function() {
|
|||||||
// head
|
// head
|
||||||
|
|
||||||
$a(this.head,'h1','', {display:'inline'}, 'Home');
|
$a(this.head,'h1','', {display:'inline'}, 'Home');
|
||||||
$a(this.head,'span','link_type', {marginLeft:'7px'}, '[?]', function() {
|
$a(this.head,'span','link_type', {marginLeft:'7px'}, 'help', function() {
|
||||||
msgprint('<b>What appears here?</b> This is where you get updates of everything you are allowed to access and generates an update')
|
msgprint('<b>What appears here?</b> This is where you get updates of everything you are permitted to follow')
|
||||||
})
|
})
|
||||||
|
|
||||||
// refresh
|
// refresh
|
||||||
@ -445,6 +440,11 @@ FeedList.prototype.make_head = function() {
|
|||||||
{cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh',
|
{cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh',
|
||||||
function() { me.run(); }
|
function() { me.run(); }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if(has_common(user_roles, ['System Manager','Accounts Manager'])) {
|
||||||
|
$btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'})
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FeedList.prototype.run = function() {
|
FeedList.prototype.run = function() {
|
||||||
@ -594,14 +594,15 @@ HomeStatusBar = function() {
|
|||||||
|
|
||||||
this.render = function(r) {
|
this.render = function(r) {
|
||||||
this.wrapper.innerHTML = '';
|
this.wrapper.innerHTML = '';
|
||||||
this.span = $a(this.wrapper, 'span', 'home-status-link')
|
this.span = $a(this.wrapper, 'span', 'link_type', {fontWeight:'bold'});
|
||||||
this.span.onclick = function() { loadpage('My Company') }
|
this.span.onclick = function() { loadpage('My Company') }
|
||||||
|
|
||||||
if(r.unread_messages) {
|
if(r.unread_messages) {
|
||||||
this.span.innerHTML = '<span class="home-status-unread">' + r.unread_messages + '</span> unread message' + (cint(r.unread_messages) > 1 ? 's' : '');
|
this.span.innerHTML = '<span class="home-status-unread">' + r.unread_messages + '</span> unread';
|
||||||
} else {
|
} else {
|
||||||
this.span.innerHTML = 'No unread messages.';
|
this.span.innerHTML = 'Team / Messages';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -614,10 +615,6 @@ pscript.home_make_status = function() {
|
|||||||
function(r,rt) {
|
function(r,rt) {
|
||||||
home_status_bar.render(r.message);
|
home_status_bar.render(r.message);
|
||||||
|
|
||||||
// system_messages
|
|
||||||
if(r.message.system_message)
|
|
||||||
pscript.show_system_message(wrapper, r.message.system_message);
|
|
||||||
|
|
||||||
// render online users
|
// render online users
|
||||||
pscript.online_users_obj.render(r.message.online_users);
|
pscript.online_users_obj.render(r.message.online_users);
|
||||||
pscript.online_users = r.message.online_users;
|
pscript.online_users = r.message.online_users;
|
||||||
@ -630,24 +627,6 @@ pscript.home_make_status = function() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// show system message
|
|
||||||
// -------------------
|
|
||||||
pscript.show_system_message = function(wrapper, msg) {
|
|
||||||
$ds(wrapper.system_message_area);
|
|
||||||
var txt = $a(wrapper.system_message_area, 'div', '', {lineHeight:'1.6em'});
|
|
||||||
txt.innerHTML = msg;
|
|
||||||
|
|
||||||
var span = $ln($a(wrapper.system_message_area, 'div', '', {textAlign:'right'}), 'Dismiss'.bold(),
|
|
||||||
function(me) {
|
|
||||||
me.set_working();
|
|
||||||
$c_obj('Home Control', 'dismiss_message', '', function(r,rt) {
|
|
||||||
me.done_working();
|
|
||||||
$(wrapper.system_message_area).slideUp();
|
|
||||||
});
|
|
||||||
}, {fontSize:'11px'}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// complete my company registration
|
// complete my company registration
|
||||||
// --------------------------------
|
// --------------------------------
|
||||||
pscript.complete_registration = function()
|
pscript.complete_registration = function()
|
||||||
|
@ -29,17 +29,10 @@ def get_status_details(arg=None):
|
|||||||
online = get_online_users()
|
online = get_online_users()
|
||||||
|
|
||||||
# system messages
|
# system messages
|
||||||
msg_id = webnotes.conn.get_global('system_message_id')
|
|
||||||
msg = ''
|
|
||||||
|
|
||||||
if msg_id and msg_id != webnotes.conn.get_global('system_message_id', webnotes.session['user']):
|
|
||||||
msg = webnotes.conn.get_global('system_message')
|
|
||||||
|
|
||||||
ret = {
|
ret = {
|
||||||
'user_count': len(online) or 0,
|
'user_count': len(online) or 0,
|
||||||
'unread_messages': get_unread_messages(),
|
'unread_messages': get_unread_messages(),
|
||||||
'online_users': online or [],
|
'online_users': online or [],
|
||||||
'system_message':msg,
|
|
||||||
'is_trial': webnotes.conn.get_global('is_trial'),
|
'is_trial': webnotes.conn.get_global('is_trial'),
|
||||||
'days_to_expiry': (webnotes.conn.get_global('days_to_expiry') or '0'),
|
'days_to_expiry': (webnotes.conn.get_global('days_to_expiry') or '0'),
|
||||||
'setup_status': get_setup_status()
|
'setup_status': get_setup_status()
|
||||||
@ -56,7 +49,20 @@ def get_setup_status():
|
|||||||
percent = 20
|
percent = 20
|
||||||
ret = []
|
ret = []
|
||||||
|
|
||||||
if not webnotes.conn.get_value('Personalize', None, 'header_html'):
|
def is_header_set():
|
||||||
|
header = webnotes.conn.get_value('Control Panel', None, 'client_name') or ''
|
||||||
|
|
||||||
|
if header.startswith('<div style="padding:4px; font-size:20px;">'\
|
||||||
|
+webnotes.conn.get_value('Control Panel', None, 'company_name')):
|
||||||
|
return False
|
||||||
|
|
||||||
|
elif 'Banner Comes Here' in header:
|
||||||
|
return False
|
||||||
|
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
if not is_header_set():
|
||||||
ret.append('<a href="#!Form/Personalize/Personalize">Upload your company banner</a>')
|
ret.append('<a href="#!Form/Personalize/Personalize">Upload your company banner</a>')
|
||||||
else:
|
else:
|
||||||
percent += 20
|
percent += 20
|
||||||
|
@ -134,24 +134,28 @@ MemberList.prototype.make_search = function() {
|
|||||||
MemberList.prototype.make_list = function() {
|
MemberList.prototype.make_list = function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
this.lst_area = $a(this.list_wrapper, 'div');
|
this.lst_area = $a(this.list_wrapper, 'div');
|
||||||
this.lst = new Listing('Profiles',1);
|
|
||||||
this.lst.colwidths = ['100%'];
|
this.lst = new wn.widgets.Listing({
|
||||||
this.lst.opts.cell_style = {padding:'0px'}
|
parent: this.lst_area,
|
||||||
this.lst.get_query = function() {
|
as_dict: 1,
|
||||||
|
get_query: function() {
|
||||||
var c1 = '';
|
var c1 = '';
|
||||||
if(me.search_inp.value && me.search_inp.value != 'Search') {
|
if(me.search_inp.value && me.search_inp.value != 'Search') {
|
||||||
var c1 = repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")', {txt:'%' + me.search_inp.value + '%'});
|
var c1 = repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")', {txt:'%' + me.search_inp.value + '%'});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.query = repl("SELECT distinct ifnull(name,''), ifnull(concat_ws(' ', first_name, last_name),''), \
|
return repl("SELECT name, \
|
||||||
ifnull(messanger_status,''), ifnull(gender,''), ifnull(file_list,''), 0, enabled, last_login \
|
ifnull(concat_ws(' ', first_name, last_name),'') as full_name, \
|
||||||
from tabProfile where docstatus != 2 AND name not in ('Guest','Administrator') %(cond)s \
|
gender, file_list, enabled \
|
||||||
|
FROM tabProfile \
|
||||||
|
WHERE docstatus != 2 \
|
||||||
|
AND name not in ('Guest','Administrator') %(cond)s \
|
||||||
ORDER BY name asc",{cond:c1});
|
ORDER BY name asc",{cond:c1});
|
||||||
|
},
|
||||||
|
render_row: function(parent, data) {
|
||||||
|
me.member_items[data.name] = new MemberItem(parent, data, me);
|
||||||
}
|
}
|
||||||
this.lst.make(this.lst_area);
|
});
|
||||||
this.lst.show_cell= function(cell, ri, ci, d) {
|
|
||||||
me.member_items[d[ri][0]] = new MemberItem(cell, d[ri], me);
|
|
||||||
}
|
|
||||||
this.lst.run();
|
this.lst.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,14 +190,14 @@ MemberItem = function(parent, det, mlist) {
|
|||||||
var me = this;
|
var me = this;
|
||||||
this.det = det;
|
this.det = det;
|
||||||
this.wrapper = $a(parent, 'div');
|
this.wrapper = $a(parent, 'div');
|
||||||
this.enabled = det[6];
|
this.enabled = det.enabled;
|
||||||
|
|
||||||
this.tab = make_table(this.wrapper, 1,2,'100%', ['20%', '70%'], {padding:'4px', overflow:'hidden'});
|
this.tab = make_table(this.wrapper, 1,2,'100%', ['20%', '70%'], {padding:'4px', overflow:'hidden'});
|
||||||
$y(this.tab, {tableLayout:'fixed', borderCollapse:'collapse'})
|
$y(this.tab, {tableLayout:'fixed', borderCollapse:'collapse'})
|
||||||
|
|
||||||
this.is_online = function() {
|
this.is_online = function() {
|
||||||
for(var i=0;i<pscript.online_users.length;i++) {
|
for(var i=0;i<pscript.online_users.length;i++) {
|
||||||
if(det[0]==pscript.online_users[i][0]) return true;
|
if(det.name==pscript.online_users[i][0]) return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,30 +214,30 @@ MemberItem = function(parent, det, mlist) {
|
|||||||
this.set_image = function() {
|
this.set_image = function() {
|
||||||
// image
|
// image
|
||||||
this.img = $a($td(this.tab,0,0),'img','',{width:'41px'});
|
this.img = $a($td(this.tab,0,0),'img','',{width:'41px'});
|
||||||
set_user_img(this.img, det[0], null,
|
set_user_img(this.img, det.name, null,
|
||||||
(det[4] ? det[4].split(NEWLINE)[0].split(',')[1] : ('no_img_' + (det[3]=='Female' ? 'f' : 'm'))));
|
(det.file_list ? det.file_list.split(NEWLINE)[0].split(',')[1] : ('no_img_' + (det.gender=='Female' ? 'f' : 'm'))));
|
||||||
}
|
}
|
||||||
|
|
||||||
// set other details like email id, name etc
|
// set other details like email id, name etc
|
||||||
this.set_details = function() {
|
this.set_details = function() {
|
||||||
// name
|
// name
|
||||||
this.fullname = det[1] ? det[1] : det[0];
|
this.fullname = det.full_name || det.name;
|
||||||
var div = $a($td(this.tab, 0, 1), 'div', '', {fontWeight: 'bold',padding:'2px 0px'});
|
var div = $a($td(this.tab, 0, 1), 'div', '', {fontWeight: 'bold',padding:'2px 0px'});
|
||||||
this.name_link = $a(div,'span','link_type');
|
this.name_link = $a(div,'span','link_type');
|
||||||
this.name_link.innerHTML = crop(this.fullname, 15);
|
this.name_link.innerHTML = crop(this.fullname, 15);
|
||||||
this.name_link.onclick = function() {
|
this.name_link.onclick = function() {
|
||||||
mlist.show_profile(me.det[0], me);
|
mlist.show_profile(me.det.name, me);
|
||||||
}
|
}
|
||||||
|
|
||||||
// "you" tag
|
// "you" tag
|
||||||
if(user==det[0]) {
|
if(user==det.name) {
|
||||||
var span = $a(div,'span','',{padding:'2px' ,marginLeft:'3px'});
|
var span = $a(div,'span','',{padding:'2px' ,marginLeft:'3px'});
|
||||||
span.innerHTML = '(You)'
|
span.innerHTML = '(You)'
|
||||||
}
|
}
|
||||||
|
|
||||||
// email id
|
// email id
|
||||||
var div = $a($td(this.tab, 0, 1), 'div', '', {color: '#777', fontSize:'11px'});
|
var div = $a($td(this.tab, 0, 1), 'div', '', {color: '#777', fontSize:'11px'});
|
||||||
div.innerHTML = det[0];
|
div.innerHTML = det.name;
|
||||||
|
|
||||||
// working img
|
// working img
|
||||||
var div = $a($td(this.tab, 0, 1), 'div');
|
var div = $a($td(this.tab, 0, 1), 'div');
|
||||||
@ -256,7 +260,7 @@ MemberItem = function(parent, det, mlist) {
|
|||||||
this.set_details();
|
this.set_details();
|
||||||
|
|
||||||
// show initial
|
// show initial
|
||||||
if(user==det[0]) me.name_link.onclick();
|
if(user==det.name) me.name_link.onclick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -305,6 +309,7 @@ MemberProfile = function(parent, uid, member_item) {
|
|||||||
if(has_common(['Administrator','System Manager'],user_roles)) {
|
if(has_common(['Administrator','System Manager'],user_roles)) {
|
||||||
var roles_btn = $btn(this.toolbar_area, 'Set Roles', function() { me.show_roles() },{marginRight:'3px'});
|
var roles_btn = $btn(this.toolbar_area, 'Set Roles', function() { me.show_roles() },{marginRight:'3px'});
|
||||||
var delete_btn = $btn(this.toolbar_area, 'Delete User', function() { me.delete_user(); },{marginRight:'3px'});
|
var delete_btn = $btn(this.toolbar_area, 'Delete User', function() { me.delete_user(); },{marginRight:'3px'});
|
||||||
|
var ip_btn = $btn(this.toolbar_area, 'Securty Settings', function() { me.set_security(); },{marginRight:'3px'});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,6 +320,74 @@ MemberProfile = function(parent, uid, member_item) {
|
|||||||
this.role_object.dialog.show();
|
this.role_object.dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// show securty settings
|
||||||
|
this.set_security = function() {
|
||||||
|
var d = new wn.widgets.Dialog({
|
||||||
|
title: 'Set User Security',
|
||||||
|
width: 500,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
label:'IP Address',
|
||||||
|
description: 'Restrict user login by IP address, partial ips (111.111.111), \
|
||||||
|
multiple addresses (separated by commas) allowed',
|
||||||
|
fieldname:'restrict_ip',
|
||||||
|
fieldtype:'Data'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label:'Login After',
|
||||||
|
description: 'User can only login after this hour (0-24)',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
fieldname: 'login_after'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label:'Login Before',
|
||||||
|
description: 'User can only login before this hour (0-24)',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
fieldname: 'login_before'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label:'New Password',
|
||||||
|
description: 'Update the current user password',
|
||||||
|
fieldtype: 'Data',
|
||||||
|
fieldname: 'new_password'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label:'Update',
|
||||||
|
fieldtype:'Button',
|
||||||
|
fieldname:'update'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
d.onshow = function() {
|
||||||
|
d.set_values({
|
||||||
|
restrict_ip: me.profile.restrict_ip || '',
|
||||||
|
login_before: me.profile.login_before || '',
|
||||||
|
login_after: me.profile.login_after || '',
|
||||||
|
new_password: ''
|
||||||
|
})
|
||||||
|
}
|
||||||
|
d.fields_dict.update.input.onclick = function() {
|
||||||
|
var btn = this;
|
||||||
|
this.set_working();
|
||||||
|
var args = d.get_values();
|
||||||
|
args.user = me.profile.name;
|
||||||
|
$c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) {
|
||||||
|
if(r.exc) {
|
||||||
|
msgprint(r.exc);
|
||||||
|
btn.done_working();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$.extend(me.profile, d.get_values());
|
||||||
|
d.hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
d.show();
|
||||||
|
}
|
||||||
|
|
||||||
// delete user
|
// delete user
|
||||||
// create a confirm dialog and call server method
|
// create a confirm dialog and call server method
|
||||||
this.delete_user = function() {
|
this.delete_user = function() {
|
||||||
@ -534,6 +607,7 @@ MemberConversation = function(parent, uid, fullname) {
|
|||||||
|
|
||||||
this.lst = new wn.widgets.Listing({
|
this.lst = new wn.widgets.Listing({
|
||||||
parent: this.lst_area,
|
parent: this.lst_area,
|
||||||
|
as_dict: 1,
|
||||||
no_result_message: (user==uid
|
no_result_message: (user==uid
|
||||||
? 'No messages by anyone yet'
|
? 'No messages by anyone yet'
|
||||||
: 'No messages yet. To start a conversation post a new message'),
|
: 'No messages yet. To start a conversation post a new message'),
|
||||||
@ -577,18 +651,18 @@ MemberCoversationComment = function(cell, det, conv) {
|
|||||||
this.wrapper = $a(cell, 'div', 'my-company-comment-wrapper');
|
this.wrapper = $a(cell, 'div', 'my-company-comment-wrapper');
|
||||||
this.comment = $a(this.wrapper, 'div', 'my-company-comment');
|
this.comment = $a(this.wrapper, 'div', 'my-company-comment');
|
||||||
|
|
||||||
this.user = $a(this.comment, 'span', 'link_type', {fontWeight:'bold'}, pscript.get_fullname(det[1]));
|
this.user = $a(this.comment, 'span', 'link_type', {fontWeight:'bold'}, pscript.get_fullname(det.owner));
|
||||||
this.user.onclick = function() {
|
this.user.onclick = function() {
|
||||||
page_body.pages['My Company'].member_list.show_profile(me.det[1]);
|
page_body.pages['My Company'].member_list.show_profile(me.det.owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
var st = (!det[4] ? {fontWeight: 'bold'} : null);
|
var st = (!det.docstatus ? {fontWeight: 'bold'} : null);
|
||||||
this.msg = $a(this.comment, 'span', 'social', st, ': ' + det[0]);
|
this.msg = $a(this.comment, 'span', 'social', st, ': ' + det.comment);
|
||||||
|
|
||||||
if(det[1]==user) {
|
if(det.full_name==user) {
|
||||||
$y(this.wrapper, {backgroundColor: '#D9D9F3'});
|
$y(this.wrapper, {backgroundColor: '#D9D9F3'});
|
||||||
}
|
}
|
||||||
this.timestamp = $a(this.wrapper, 'div', 'my-company-timestamp', '', comment_when(det[3]));
|
this.timestamp = $a(this.wrapper, 'div', 'my-company-timestamp', '', comment_when(det.creation));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,3 +129,19 @@ def set_read_all_messages(arg=''):
|
|||||||
WHERE comment_doctype = 'My Company'
|
WHERE comment_doctype = 'My Company'
|
||||||
AND comment_docname = %s
|
AND comment_docname = %s
|
||||||
""", webnotes.user.name)
|
""", webnotes.user.name)
|
||||||
|
|
||||||
|
def update_security(args=''):
|
||||||
|
import json
|
||||||
|
args = json.loads(args)
|
||||||
|
webnotes.conn.set_value('Profile', args['user'], 'restrict_ip', args.get('restrict_ip'))
|
||||||
|
webnotes.conn.set_value('Profile', args['user'], 'login_after', args.get('login_after'))
|
||||||
|
webnotes.conn.set_value('Profile', args['user'], 'login_before', args.get('login_before'))
|
||||||
|
|
||||||
|
if 'new_password' in args:
|
||||||
|
if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
|
||||||
|
import server_tools.gateway_utils
|
||||||
|
webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'])['message'])
|
||||||
|
else:
|
||||||
|
webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user']))
|
||||||
|
|
||||||
|
webnotes.msgprint('Settings Updated')
|
@ -16,7 +16,7 @@ def change_password(arg):
|
|||||||
webnotes.msgprint('Old password is not correct', raise_exception=1)
|
webnotes.msgprint('Old password is not correct', raise_exception=1)
|
||||||
|
|
||||||
from webnotes.utils import nowdate
|
from webnotes.utils import nowdate
|
||||||
webnotes.conn.sql("update tabProfile set password=password(%s), password_last_updated=%s where name=%s",(arg['new_password'], nowdate(), webnotes.session['user']))
|
webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s",(arg['new_password'], nowdate(), webnotes.session['user']))
|
||||||
webnotes.msgprint('Password Updated');
|
webnotes.msgprint('Password Updated');
|
||||||
|
|
||||||
def get_user_details(arg=None):
|
def get_user_details(arg=None):
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'kra_sheet',
|
'from_field': 'kra_sheet',
|
||||||
'from_table': 'KRA Sheet',
|
'from_table': 'KRA Sheet',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'KRA Template-Appraisal',
|
'parent': 'KRA Template-Appraisal',
|
||||||
@ -26,17 +25,6 @@
|
|||||||
'validation_logic': 'name is not Null'
|
'validation_logic': 'name is not Null'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'name': '__common__',
|
|
||||||
'parent': 'KRA Template-Appraisal',
|
|
||||||
'parentfield': 'field_mapper_details',
|
|
||||||
'parenttype': 'DocType Mapper'
|
|
||||||
},
|
|
||||||
|
|
||||||
# These values are common for all DocType Mapper
|
# These values are common for all DocType Mapper
|
||||||
{
|
{
|
||||||
'doctype': 'DocType Mapper',
|
'doctype': 'DocType Mapper',
|
||||||
@ -52,22 +40,6 @@
|
|||||||
'name': 'KRA Template-Appraisal'
|
'name': 'KRA Template-Appraisal'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'kra',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'kra'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'per_weightage',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'per_weightage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail'
|
'doctype': 'Table Mapper Detail'
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-12-14 10:23:25',
|
'creation': '2010-12-14 10:23:25',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-02-12 18:31:40',
|
'modified': '2011-02-12 18:31:40',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'harshada@webnotestech.com'
|
'owner': 'harshada@webnotestech.com'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -45,74 +45,10 @@
|
|||||||
'name': 'Salary Structure-Salary Slip'
|
'name': 'Salary Structure-Salary Slip'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'employee',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'employee'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'employee_name',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'employee_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'department',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'department'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'designation',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'designation'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'branch',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'branch'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grade',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grade'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'e_type',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'e_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'total_earning',
|
'from_field': 'total_earning',
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'gross_pay'
|
'to_field': 'gross_pay'
|
||||||
},
|
},
|
||||||
@ -121,43 +57,14 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'modified_value',
|
'from_field': 'modified_value',
|
||||||
'idx': 8,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'e_amount'
|
'to_field': 'e_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_deduction',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'total_deduction'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'd_type',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'd_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_pay',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'net_pay'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'd_modified_amt',
|
'from_field': 'd_modified_amt',
|
||||||
'idx': 10,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'd_amount'
|
'to_field': 'd_amount'
|
||||||
},
|
},
|
||||||
@ -166,7 +73,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'modified_value',
|
'from_field': 'modified_value',
|
||||||
'idx': 12,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'e_modified_amount'
|
'to_field': 'e_modified_amount'
|
||||||
},
|
},
|
||||||
@ -175,7 +81,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'depend_on_lwp',
|
'from_field': 'depend_on_lwp',
|
||||||
'idx': 13,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'e_depends_on_lwp'
|
'to_field': 'e_depends_on_lwp'
|
||||||
},
|
},
|
||||||
@ -184,7 +89,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'd_modified_amt',
|
'from_field': 'd_modified_amt',
|
||||||
'idx': 16,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'd_modified_amount'
|
'to_field': 'd_modified_amount'
|
||||||
},
|
},
|
||||||
@ -193,7 +97,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'depend_on_lwp',
|
'from_field': 'depend_on_lwp',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'd_depends_on_lwp'
|
'to_field': 'd_depends_on_lwp'
|
||||||
},
|
},
|
||||||
@ -202,7 +105,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Salary Structure',
|
'from_table': 'Salary Structure',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Salary Slip'
|
'to_table': 'Salary Slip'
|
||||||
},
|
},
|
||||||
@ -212,7 +114,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'earning_details',
|
'from_field': 'earning_details',
|
||||||
'from_table': 'Earning Detail',
|
'from_table': 'Earning Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'earning_details',
|
'to_field': 'earning_details',
|
||||||
'to_table': 'SS Earning Detail'
|
'to_table': 'SS Earning Detail'
|
||||||
@ -223,7 +124,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'deduction_details',
|
'from_field': 'deduction_details',
|
||||||
'from_table': 'Deduction Detail',
|
'from_table': 'Deduction Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'deduction_details',
|
'to_field': 'deduction_details',
|
||||||
'to_table': 'SS Deduction Detail'
|
'to_table': 'SS Deduction Detail'
|
||||||
|
@ -1,603 +1,318 @@
|
|||||||
|
# Module Def, HR
|
||||||
[
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'_last_update': None,
|
'creation': '2011-07-01 17:41:43',
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'disabled': 'No',
|
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'doctype': u'Module Def',
|
'modified': '2011-08-25 13:54:43',
|
||||||
'doctype_list': None,
|
|
||||||
'file_list': None,
|
|
||||||
'idx': None,
|
|
||||||
'is_hidden': 'No',
|
|
||||||
'last_updated_date': None,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Module Def Role
|
||||||
|
{
|
||||||
|
'doctype': 'Module Def Role',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'HR',
|
||||||
|
'parentfield': 'roles',
|
||||||
|
'parenttype': 'Module Def'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Module Def Item
|
||||||
|
{
|
||||||
|
'doctype': 'Module Def Item',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'HR',
|
||||||
|
'parentfield': 'items',
|
||||||
|
'parenttype': 'Module Def'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Module Def
|
||||||
|
{
|
||||||
|
'disabled': 'No',
|
||||||
|
'doctype': u'Module Def',
|
||||||
|
'is_hidden': 'No',
|
||||||
'module_desc': 'Human Resource Management - Employee Database, Salaries etc.',
|
'module_desc': 'Human Resource Management - Employee Database, Salaries etc.',
|
||||||
'module_icon': 'HR.gif',
|
'module_icon': 'HR.gif',
|
||||||
'module_label': 'HR',
|
'module_label': 'HR',
|
||||||
'module_name': 'HR',
|
'module_name': 'HR',
|
||||||
'module_page': None,
|
|
||||||
'module_seq': 9,
|
'module_seq': 9,
|
||||||
'name': 'HR',
|
'name': '__common__'
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': None,
|
|
||||||
'parentfield': None,
|
|
||||||
'parenttype': None,
|
|
||||||
'trash_reason': None,
|
|
||||||
'widget_code': None
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def, HR
|
||||||
|
{
|
||||||
|
'doctype': u'Module Def',
|
||||||
|
'name': 'HR'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Your Employee Database',
|
'description': 'Your Employee Database',
|
||||||
'display_name': 'Employee',
|
'display_name': 'Employee',
|
||||||
'doc_name': 'Employee',
|
'doc_name': 'Employee',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'employee_name\nemployment_type\nstatus\nbranch\ndesignation\ndepartment\ngrade\nreports_to',
|
'fields': 'employee_name\nemployment_type\nstatus\nbranch\ndesignation\ndepartment\ngrade\nreports_to',
|
||||||
'hide': None,
|
'idx': 1
|
||||||
'icon': None,
|
|
||||||
'idx': 1,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01335',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Employees Daily Attendance Tracking Form',
|
'description': 'Employees Daily Attendance Tracking Form',
|
||||||
'display_name': 'Attendance',
|
'display_name': 'Attendance',
|
||||||
'doc_name': 'Attendance',
|
'doc_name': 'Attendance',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'employee\nemployee_name\nstatus\natt_date\nfiscal_year\ncompany',
|
'fields': 'employee\nemployee_name\nstatus\natt_date\nfiscal_year\ncompany',
|
||||||
'hide': None,
|
'idx': 2
|
||||||
'icon': None,
|
|
||||||
'idx': 2,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01336',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Upload Attendance data',
|
'description': 'Upload Attendance data',
|
||||||
'display_name': 'Attendance Control Panel',
|
'display_name': 'Attendance Control Panel',
|
||||||
'doc_name': 'Attendance Control Panel',
|
'doc_name': 'Attendance Control Panel',
|
||||||
'doc_type': 'Single DocType',
|
'doc_type': 'Single DocType',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 3
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 3,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01337',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Leave allocation for selected employees at a time',
|
'description': 'Leave allocation for selected employees at a time',
|
||||||
'display_name': 'Leave Control Panel',
|
'display_name': 'Leave Control Panel',
|
||||||
'doc_name': 'Leave Control Panel',
|
'doc_name': 'Leave Control Panel',
|
||||||
'doc_type': 'Single DocType',
|
'doc_type': 'Single DocType',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 4
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 4,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01338',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Allocate leave for fiscal year',
|
'description': 'Allocate leave for fiscal year',
|
||||||
'display_name': 'Leave Allocation',
|
'display_name': 'Leave Allocation',
|
||||||
'doc_name': 'Leave Allocation',
|
'doc_name': 'Leave Allocation',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'employee\nleave_type\nfiscal_year\ntotal_leaves_allocated\nposting_date',
|
'fields': 'employee\nleave_type\nfiscal_year\ntotal_leaves_allocated\nposting_date',
|
||||||
'hide': None,
|
'idx': 5
|
||||||
'icon': None,
|
|
||||||
'idx': 5,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01339',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Apply Leave',
|
'description': 'Apply Leave',
|
||||||
'display_name': 'Leave Application',
|
'display_name': 'Leave Application',
|
||||||
'doc_name': 'Leave Application',
|
'doc_name': 'Leave Application',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'employee\nleave_type\nfiscal_year\nfrom_date\nto_date\ntotal_leave_days',
|
'fields': 'employee\nleave_type\nfiscal_year\nfrom_date\nto_date\ntotal_leave_days',
|
||||||
'hide': None,
|
'idx': 6
|
||||||
'icon': None,
|
|
||||||
'idx': 6,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01340',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Submit Employees Expenses',
|
'description': 'Submit Employees Expenses',
|
||||||
'display_name': 'Expense Voucher',
|
'display_name': 'Expense Voucher',
|
||||||
'doc_name': 'Expense Voucher',
|
'doc_name': 'Expense Voucher',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'status\nemployee\nemployee_name\nposting_date\ntotal_claimed_amount\ntotal_sanctioned_amount\nexp_approver',
|
'fields': 'status\nemployee\nemployee_name\nposting_date\ntotal_claimed_amount\ntotal_sanctioned_amount\nexp_approver',
|
||||||
'hide': None,
|
'idx': 7
|
||||||
'icon': None,
|
|
||||||
'idx': 7,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01341',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Assign Responsibilities to employee and evaluate',
|
'description': 'Assign Responsibilities to employee and evaluate',
|
||||||
'display_name': 'Appraisal',
|
'display_name': 'Appraisal',
|
||||||
'doc_name': 'Appraisal',
|
'doc_name': 'Appraisal',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'status\nemployee\nemployee_name\nstart_date\nend_date\ntotal_score\nkra_approver',
|
'fields': 'status\nemployee\nemployee_name\nstart_date\nend_date\ntotal_score\nkra_approver',
|
||||||
'hide': None,
|
'idx': 8
|
||||||
'icon': None,
|
|
||||||
'idx': 8,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01342',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Generate Salary Structure heads for an employee',
|
'description': 'Generate Salary Structure heads for an employee',
|
||||||
'display_name': 'Salary Structure',
|
'display_name': 'Salary Structure',
|
||||||
'doc_name': 'Salary Structure',
|
'doc_name': 'Salary Structure',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'employee\nis_active\nfiscal_year\nfrom_date\nctc\ntotal_earning\ntotal_deduction\ntotal',
|
'fields': 'employee\nis_active\nfiscal_year\nfrom_date\nctc\ntotal_earning\ntotal_deduction\ntotal',
|
||||||
'hide': None,
|
'idx': 9
|
||||||
'icon': None,
|
|
||||||
'idx': 9,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01343',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Generate Salary Slip for an employee',
|
'description': 'Generate Salary Slip for an employee',
|
||||||
'display_name': 'Salary Slip',
|
'display_name': 'Salary Slip',
|
||||||
'doc_name': 'Salary Slip',
|
'doc_name': 'Salary Slip',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'month\nyear\nemployee\nemployee_name\npayment_days\narrear_amount\nencashment_amount\ngross_pay\ntotal_deduction\nnet_pay',
|
'fields': 'month\nyear\nemployee\nemployee_name\npayment_days\narrear_amount\nencashment_amount\ngross_pay\ntotal_deduction\nnet_pay',
|
||||||
'hide': None,
|
'idx': 10
|
||||||
'icon': None,
|
|
||||||
'idx': 10,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01344',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
'description': 'Generate Salary Slip for multiple employee at a time based on selected criteria',
|
||||||
'creation': '2011-06-30 15:51:33',
|
'display_name': 'Salary Manager',
|
||||||
'description': 'Generate Salary Slip for all employee at a time',
|
'doc_name': 'Salary Manager',
|
||||||
'display_name': 'Salary Slip Control Panel',
|
|
||||||
'doc_name': 'Salary Slip Control Panel',
|
|
||||||
'doc_type': 'Single DocType',
|
'doc_type': 'Single DocType',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 11
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 11,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01345',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': 'Job Applications received for various positions',
|
'description': 'Job Applications received for various positions',
|
||||||
'display_name': 'Job Application',
|
'display_name': 'Job Application',
|
||||||
'doc_name': 'Job Application',
|
'doc_name': 'Job Application',
|
||||||
'doc_type': 'Forms',
|
'doc_type': 'Forms',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': 'applicant_name\nemail\nposition',
|
'fields': 'applicant_name\nemail\nposition',
|
||||||
'hide': None,
|
'idx': 12
|
||||||
'icon': None,
|
|
||||||
'idx': 12,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01346',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Employee Information',
|
'display_name': 'Employee Information',
|
||||||
'doc_name': 'Employee',
|
'doc_name': 'Employee',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 13
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 13,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01347',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': None,
|
|
||||||
'display_name': "Employee's Birthday",
|
'display_name': "Employee's Birthday",
|
||||||
'doc_name': 'Employee',
|
'doc_name': 'Employee',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 14
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 14,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01348',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'New or left employees for a month',
|
'display_name': 'New or left employees for a month',
|
||||||
'doc_name': 'Employee',
|
'doc_name': 'Employee',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 15
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 15,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01349',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Monthly Attendance Details',
|
'display_name': 'Monthly Attendance Details',
|
||||||
'doc_name': 'Attendance',
|
'doc_name': 'Attendance',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 16
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 16,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01350',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:33',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Leave Application Details',
|
'display_name': 'Leave Application Details',
|
||||||
'doc_name': 'Leave Application',
|
'doc_name': 'Leave Application',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 17
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 17,
|
|
||||||
'modified': '2011-06-30 15:51:33',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01351',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Leave Allocation Details',
|
'display_name': 'Leave Allocation Details',
|
||||||
'doc_name': 'Leave Allocation',
|
'doc_name': 'Leave Allocation',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 18
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 18,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01352',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Employee Leave Balance Report',
|
'display_name': 'Employee Leave Balance Report',
|
||||||
'doc_name': 'Employee',
|
'doc_name': 'Employee',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 19
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 19,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01353',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Salary Structure Details',
|
'display_name': 'Salary Structure Details',
|
||||||
'doc_name': 'Salary Structure',
|
'doc_name': 'Salary Structure',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 20
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 20,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01354',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Salary Register',
|
'display_name': 'Salary Register',
|
||||||
'doc_name': 'Salary Slip',
|
'doc_name': 'Salary Slip',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 21
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 21,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01355',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Salary Slips',
|
'display_name': 'Salary Slips',
|
||||||
'doc_name': 'Salary Slip',
|
'doc_name': 'Salary Slip',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 22
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 22,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01356',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Pending Appraisals',
|
'display_name': 'Pending Appraisals',
|
||||||
'doc_name': 'Appraisal',
|
'doc_name': 'Appraisal',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 23
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 23,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01357',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Employee Appraisals',
|
'display_name': 'Employee Appraisals',
|
||||||
'doc_name': 'Appraisal',
|
'doc_name': 'Appraisal',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 24
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 24,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01358',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Pending Expense Vouchers',
|
'display_name': 'Pending Expense Vouchers',
|
||||||
'doc_name': 'Expense Voucher',
|
'doc_name': 'Expense Voucher',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 25
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 25,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01359',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Item
|
||||||
{
|
{
|
||||||
'click_function': None,
|
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'description': None,
|
|
||||||
'display_name': 'Expense Vouchers',
|
'display_name': 'Expense Vouchers',
|
||||||
'doc_name': 'Expense Voucher',
|
'doc_name': 'Expense Voucher',
|
||||||
'doc_type': 'Reports',
|
'doc_type': 'Reports',
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Item',
|
'doctype': 'Module Def Item',
|
||||||
'fields': None,
|
'idx': 26
|
||||||
'hide': None,
|
|
||||||
'icon': None,
|
|
||||||
'idx': 26,
|
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDI01360',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'items',
|
|
||||||
'parenttype': 'Module Def'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Role
|
||||||
{
|
{
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Role',
|
'doctype': 'Module Def Role',
|
||||||
'idx': 1,
|
'idx': 1,
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDR00340',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'roles',
|
|
||||||
'parenttype': 'Module Def',
|
|
||||||
'role': 'HR Manager'
|
'role': 'HR Manager'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Module Def Role
|
||||||
{
|
{
|
||||||
'creation': '2011-06-30 15:51:34',
|
|
||||||
'docstatus': 0,
|
|
||||||
'doctype': 'Module Def Role',
|
'doctype': 'Module Def Role',
|
||||||
'idx': 2,
|
'idx': 2,
|
||||||
'modified': '2011-06-30 15:51:34',
|
|
||||||
'modified_by': 'Administrator',
|
|
||||||
'name': 'MDR00341',
|
|
||||||
'owner': 'Administrator',
|
|
||||||
'parent': 'HR',
|
|
||||||
'parentfield': 'roles',
|
|
||||||
'parenttype': 'Module Def',
|
|
||||||
'role': 'HR User'
|
'role': 'HR User'
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-02-17 11:16:08',
|
'creation': '2010-08-08 17:08:59',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-06-27 14:39:04',
|
'modified': '2011-08-11 17:27:12',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -26,7 +26,7 @@
|
|||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'subject': '%(employee_name)s',
|
'subject': '%(employee_name)s',
|
||||||
'tag_fields': 'status',
|
'tag_fields': 'status',
|
||||||
'version': 443
|
'version': 444
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -40,12 +40,14 @@
|
|||||||
|
|
||||||
# These values are common for all DocPerm
|
# These values are common for all DocPerm
|
||||||
{
|
{
|
||||||
|
'amend': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Employee',
|
'parent': 'Employee',
|
||||||
'parentfield': 'permissions',
|
'parentfield': 'permissions',
|
||||||
'parenttype': 'DocType',
|
'parenttype': 'DocType',
|
||||||
'read': 1
|
'read': 1,
|
||||||
|
'submit': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Employee
|
# DocType, Employee
|
||||||
@ -56,21 +58,24 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'cancel': 1,
|
'cancel': 0,
|
||||||
'create': 1,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 1,
|
'idx': 1,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'System Manager',
|
'role': 'Employee',
|
||||||
'write': 1
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
|
'cancel': 0,
|
||||||
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 2,
|
'idx': 2,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'All'
|
'role': 'All',
|
||||||
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
@ -95,22 +100,6 @@
|
|||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 5,
|
|
||||||
'permlevel': 1,
|
|
||||||
'role': 'HR User'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 6,
|
|
||||||
'permlevel': 1,
|
|
||||||
'role': 'HR Manager'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
@ -141,7 +130,7 @@
|
|||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'naming_series',
|
'oldfieldname': 'naming_series',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
'options': 'WN-EMP\nEMP/',
|
'options': 'EMP/',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 0
|
'reqd': 0
|
||||||
},
|
},
|
||||||
@ -173,8 +162,7 @@
|
|||||||
'oldfieldname': 'employee_name',
|
'oldfieldname': 'employee_name',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 1
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -276,7 +264,7 @@
|
|||||||
'options': '\nActive\nLeft',
|
'options': '\nActive\nLeft',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1,
|
||||||
'search_index': 0
|
'search_index': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -409,8 +397,7 @@
|
|||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Department',
|
'options': 'Department',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 1
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -474,21 +461,11 @@
|
|||||||
'reqd': 0
|
'reqd': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'is_sales_person',
|
|
||||||
'fieldtype': 'Check',
|
|
||||||
'idx': 27,
|
|
||||||
'label': 'Is Sales Person',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 28,
|
'idx': 27,
|
||||||
'label': 'Salary Information',
|
'label': 'Salary Information',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -501,7 +478,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'salary_mode',
|
'fieldname': 'salary_mode',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 29,
|
'idx': 28,
|
||||||
'label': 'Salary Mode',
|
'label': 'Salary Mode',
|
||||||
'oldfieldname': 'salary_mode',
|
'oldfieldname': 'salary_mode',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -518,7 +495,7 @@
|
|||||||
'fieldname': 'bank_name',
|
'fieldname': 'bank_name',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'idx': 30,
|
'idx': 29,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Bank Name',
|
'label': 'Bank Name',
|
||||||
'oldfieldname': 'bank_name',
|
'oldfieldname': 'bank_name',
|
||||||
@ -535,7 +512,7 @@
|
|||||||
'fieldname': 'bank_ac_no',
|
'fieldname': 'bank_ac_no',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'idx': 31,
|
'idx': 30,
|
||||||
'label': 'Bank A/C No.',
|
'label': 'Bank A/C No.',
|
||||||
'oldfieldname': 'bank_ac_no',
|
'oldfieldname': 'bank_ac_no',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -547,7 +524,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'esic_card_no',
|
'fieldname': 'esic_card_no',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 32,
|
'idx': 31,
|
||||||
'label': 'ESIC CARD No',
|
'label': 'ESIC CARD No',
|
||||||
'oldfieldname': 'esic_card_no',
|
'oldfieldname': 'esic_card_no',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -559,7 +536,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'pf_number',
|
'fieldname': 'pf_number',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 33,
|
'idx': 32,
|
||||||
'label': 'PF Number',
|
'label': 'PF Number',
|
||||||
'oldfieldname': 'pf_number',
|
'oldfieldname': 'pf_number',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -571,7 +548,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'gratuity_lic_id',
|
'fieldname': 'gratuity_lic_id',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 34,
|
'idx': 33,
|
||||||
'label': 'Gratuity LIC ID',
|
'label': 'Gratuity LIC ID',
|
||||||
'oldfieldname': 'gratuity_lic_id',
|
'oldfieldname': 'gratuity_lic_id',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -582,7 +559,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 35,
|
'idx': 34,
|
||||||
'label': 'Contact Details',
|
'label': 'Contact Details',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -591,7 +568,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 36,
|
'idx': 35,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@ -601,7 +578,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'cell_number',
|
'fieldname': 'cell_number',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 37,
|
'idx': 36,
|
||||||
'label': 'Cell Number',
|
'label': 'Cell Number',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -611,7 +588,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'personal_email',
|
'fieldname': 'personal_email',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 38,
|
'idx': 37,
|
||||||
'label': 'Personal Email',
|
'label': 'Personal Email',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -621,7 +598,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'notice_number_of_days',
|
'fieldname': 'notice_number_of_days',
|
||||||
'fieldtype': 'Int',
|
'fieldtype': 'Int',
|
||||||
'idx': 39,
|
'idx': 38,
|
||||||
'label': 'Notice - Number of Days',
|
'label': 'Notice - Number of Days',
|
||||||
'oldfieldname': 'notice_number_of_days',
|
'oldfieldname': 'notice_number_of_days',
|
||||||
'oldfieldtype': 'Int',
|
'oldfieldtype': 'Int',
|
||||||
@ -632,7 +609,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 40,
|
'idx': 39,
|
||||||
'label': 'Emergency Contact Details',
|
'label': 'Emergency Contact Details',
|
||||||
'options': '<b>Emergency Contact Details</b>',
|
'options': '<b>Emergency Contact Details</b>',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -643,7 +620,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'person_to_be_contacted',
|
'fieldname': 'person_to_be_contacted',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 41,
|
'idx': 40,
|
||||||
'label': 'Person To Be Contacted',
|
'label': 'Person To Be Contacted',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -653,7 +630,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'relation',
|
'fieldname': 'relation',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 42,
|
'idx': 41,
|
||||||
'label': 'Relation',
|
'label': 'Relation',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -663,7 +640,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'emergency_phone_number',
|
'fieldname': 'emergency_phone_number',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 43,
|
'idx': 42,
|
||||||
'label': 'Emergency Phone Number',
|
'label': 'Emergency Phone Number',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -672,7 +649,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 44,
|
'idx': 43,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@ -682,7 +659,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'permanent_accommodation_type',
|
'fieldname': 'permanent_accommodation_type',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 45,
|
'idx': 44,
|
||||||
'label': 'Permanent Accommodation Type',
|
'label': 'Permanent Accommodation Type',
|
||||||
'options': '\nRented\nOwned',
|
'options': '\nRented\nOwned',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -693,7 +670,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'permanent_address',
|
'fieldname': 'permanent_address',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 46,
|
'idx': 45,
|
||||||
'label': 'Permanent Address',
|
'label': 'Permanent Address',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -703,7 +680,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'current_accommodation_type',
|
'fieldname': 'current_accommodation_type',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 47,
|
'idx': 46,
|
||||||
'label': 'Current Accommodation Type',
|
'label': 'Current Accommodation Type',
|
||||||
'options': '\nRented\nOwned',
|
'options': '\nRented\nOwned',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -714,7 +691,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'current_address',
|
'fieldname': 'current_address',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 48,
|
'idx': 47,
|
||||||
'label': 'Current Address',
|
'label': 'Current Address',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -723,7 +700,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 49,
|
'idx': 48,
|
||||||
'label': 'Personal Details',
|
'label': 'Personal Details',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -732,7 +709,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 50,
|
'idx': 49,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@ -742,7 +719,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'pan_number',
|
'fieldname': 'pan_number',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 51,
|
'idx': 50,
|
||||||
'label': 'PAN Number',
|
'label': 'PAN Number',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -752,7 +729,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'passport_number',
|
'fieldname': 'passport_number',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 52,
|
'idx': 51,
|
||||||
'label': 'Passport Number',
|
'label': 'Passport Number',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -763,7 +740,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 53,
|
'idx': 52,
|
||||||
'label': 'Employee Profile',
|
'label': 'Employee Profile',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -775,7 +752,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'date_of_issue',
|
'fieldname': 'date_of_issue',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 54,
|
'idx': 53,
|
||||||
'label': 'Date of Issue',
|
'label': 'Date of Issue',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -785,7 +762,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'valid_upto',
|
'fieldname': 'valid_upto',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 55,
|
'idx': 54,
|
||||||
'label': 'Valid Upto',
|
'label': 'Valid Upto',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -796,7 +773,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 56,
|
'idx': 55,
|
||||||
'label': 'Salary Structure',
|
'label': 'Salary Structure',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -808,7 +785,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'place_of_issue',
|
'fieldname': 'place_of_issue',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 57,
|
'idx': 56,
|
||||||
'label': 'Place of Issue',
|
'label': 'Place of Issue',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -818,7 +795,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'marital_status',
|
'fieldname': 'marital_status',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 58,
|
'idx': 57,
|
||||||
'label': 'Marital Status',
|
'label': 'Marital Status',
|
||||||
'options': '\nSingle\nMarried\nDivorced\nWidowed',
|
'options': '\nSingle\nMarried\nDivorced\nWidowed',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -829,7 +806,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'blood_group',
|
'fieldname': 'blood_group',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 59,
|
'idx': 58,
|
||||||
'label': 'Blood Group',
|
'label': 'Blood Group',
|
||||||
'options': '\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-',
|
'options': '\nA+\nA-\nB+\nB-\nAB+\nAB-\nO+\nO-',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -839,7 +816,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 60,
|
'idx': 59,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@ -851,7 +828,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'family_background',
|
'fieldname': 'family_background',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 61,
|
'idx': 60,
|
||||||
'label': 'Family Background',
|
'label': 'Family Background',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -863,7 +840,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'health_details',
|
'fieldname': 'health_details',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 62,
|
'idx': 61,
|
||||||
'label': 'Health Details',
|
'label': 'Health Details',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -872,7 +849,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 63,
|
'idx': 62,
|
||||||
'label': 'Educational Qualification',
|
'label': 'Educational Qualification',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -882,7 +859,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'educational_qualification_details',
|
'fieldname': 'educational_qualification_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 64,
|
'idx': 63,
|
||||||
'label': 'Educational Qualification Details',
|
'label': 'Educational Qualification Details',
|
||||||
'options': 'Educational Qualifications Detail',
|
'options': 'Educational Qualifications Detail',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -892,7 +869,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 65,
|
'idx': 64,
|
||||||
'label': 'Career History',
|
'label': 'Career History',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -901,7 +878,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 66,
|
'idx': 65,
|
||||||
'label': 'Previous Work Experience',
|
'label': 'Previous Work Experience',
|
||||||
'options': 'Simple',
|
'options': 'Simple',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -912,7 +889,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'previous_experience_details',
|
'fieldname': 'previous_experience_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 67,
|
'idx': 66,
|
||||||
'label': 'Previous Experience Details',
|
'label': 'Previous Experience Details',
|
||||||
'options': 'Previous Experience Detail',
|
'options': 'Previous Experience Detail',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -922,7 +899,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 68,
|
'idx': 67,
|
||||||
'label': 'History In Company',
|
'label': 'History In Company',
|
||||||
'options': 'Simple',
|
'options': 'Simple',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -933,7 +910,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'experience_in_company_details',
|
'fieldname': 'experience_in_company_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 69,
|
'idx': 68,
|
||||||
'label': 'Experience In Company Details',
|
'label': 'Experience In Company Details',
|
||||||
'options': 'Experience In Company Detail',
|
'options': 'Experience In Company Detail',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -943,7 +920,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 70,
|
'idx': 69,
|
||||||
'label': 'Exit',
|
'label': 'Exit',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -953,7 +930,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 71,
|
'idx': 70,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@ -963,7 +940,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'resignation_letter_date',
|
'fieldname': 'resignation_letter_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 72,
|
'idx': 71,
|
||||||
'label': 'Resignation Letter Date',
|
'label': 'Resignation Letter Date',
|
||||||
'oldfieldname': 'resignation_letter_date',
|
'oldfieldname': 'resignation_letter_date',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -975,7 +952,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'relieving_date',
|
'fieldname': 'relieving_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 73,
|
'idx': 72,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Relieving Date',
|
'label': 'Relieving Date',
|
||||||
'oldfieldname': 'relieving_date',
|
'oldfieldname': 'relieving_date',
|
||||||
@ -988,7 +965,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'reason_for_leaving',
|
'fieldname': 'reason_for_leaving',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 74,
|
'idx': 73,
|
||||||
'label': 'Reason for Leaving',
|
'label': 'Reason for Leaving',
|
||||||
'oldfieldname': 'reason_for_leaving',
|
'oldfieldname': 'reason_for_leaving',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -1000,7 +977,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'leave_encashed',
|
'fieldname': 'leave_encashed',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 75,
|
'idx': 74,
|
||||||
'label': 'Leave Encashed?',
|
'label': 'Leave Encashed?',
|
||||||
'oldfieldname': 'leave_encashed',
|
'oldfieldname': 'leave_encashed',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -1013,7 +990,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'encashment_date',
|
'fieldname': 'encashment_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 76,
|
'idx': 75,
|
||||||
'label': 'Encashment Date',
|
'label': 'Encashment Date',
|
||||||
'oldfieldname': 'encashment_date',
|
'oldfieldname': 'encashment_date',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -1024,7 +1001,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 77,
|
'idx': 76,
|
||||||
'label': 'Exit Interview Details',
|
'label': 'Exit Interview Details',
|
||||||
'oldfieldname': 'col_brk6',
|
'oldfieldname': 'col_brk6',
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
@ -1037,7 +1014,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'held_on',
|
'fieldname': 'held_on',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 78,
|
'idx': 77,
|
||||||
'label': 'Held On',
|
'label': 'Held On',
|
||||||
'oldfieldname': 'held_on',
|
'oldfieldname': 'held_on',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -1049,7 +1026,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'reason_for_resignation',
|
'fieldname': 'reason_for_resignation',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 79,
|
'idx': 78,
|
||||||
'label': 'Reason for Resignation',
|
'label': 'Reason for Resignation',
|
||||||
'oldfieldname': 'reason_for_resignation',
|
'oldfieldname': 'reason_for_resignation',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -1062,7 +1039,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'new_workplace',
|
'fieldname': 'new_workplace',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 80,
|
'idx': 79,
|
||||||
'label': 'New Workplace',
|
'label': 'New Workplace',
|
||||||
'oldfieldname': 'new_workplace',
|
'oldfieldname': 'new_workplace',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -1074,7 +1051,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'feedback',
|
'fieldname': 'feedback',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 81,
|
'idx': 80,
|
||||||
'label': 'Feedback',
|
'label': 'Feedback',
|
||||||
'oldfieldname': 'feedback',
|
'oldfieldname': 'feedback',
|
||||||
'oldfieldtype': 'Text',
|
'oldfieldtype': 'Text',
|
||||||
@ -1087,7 +1064,7 @@
|
|||||||
'fieldname': 'file_list',
|
'fieldname': 'file_list',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': 'Text',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 82,
|
'idx': 81,
|
||||||
'label': 'File List',
|
'label': 'File List',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1
|
'print_hide': 1
|
||||||
@ -1098,7 +1075,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'trash_reason',
|
'fieldname': 'trash_reason',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 83,
|
'idx': 82,
|
||||||
'label': 'Trash Reason',
|
'label': 'Trash Reason',
|
||||||
'oldfieldname': 'trash_reason',
|
'oldfieldname': 'trash_reason',
|
||||||
'oldfieldtype': 'Small Text',
|
'oldfieldtype': 'Small Text',
|
||||||
|
@ -75,7 +75,7 @@ class DocType:
|
|||||||
# get total allocated leaves
|
# get total allocated leaves
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
def get_total_allocated_leaves(self):
|
def get_total_allocated_leaves(self):
|
||||||
leave_det = eval(self.get_carry_forwarded_leaves())
|
leave_det = self.get_carry_forwarded_leaves()
|
||||||
set(self.doc,'carry_forwarded_leaves',flt(leave_det['carry_forwarded_leaves']))
|
set(self.doc,'carry_forwarded_leaves',flt(leave_det['carry_forwarded_leaves']))
|
||||||
set(self.doc,'total_leaves_allocated',flt(leave_det['total_leaves_allocated']))
|
set(self.doc,'total_leaves_allocated',flt(leave_det['total_leaves_allocated']))
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ class DocType:
|
|||||||
if not self.is_lwp():
|
if not self.is_lwp():
|
||||||
bal = self.get_leave_balance()
|
bal = self.get_leave_balance()
|
||||||
tot_leaves = self.get_total_leave_days()
|
tot_leaves = self.get_total_leave_days()
|
||||||
bal, tot_leaves = eval(bal), eval(tot_leaves)
|
bal, tot_leaves = bal, tot_leaves
|
||||||
set(self.doc,'leave_balance',flt(bal['leave_balance']))
|
set(self.doc,'leave_balance',flt(bal['leave_balance']))
|
||||||
set(self.doc,'total_leave_days',flt(tot_leaves['total_leave_days']))
|
set(self.doc,'total_leave_days',flt(tot_leaves['total_leave_days']))
|
||||||
if flt(bal['leave_balance']) < flt(tot_leaves['total_leave_days']):
|
if flt(bal['leave_balance']) < flt(tot_leaves['total_leave_days']):
|
||||||
|
4
hr/doctype/salary_manager/__init__.py
Normal file
4
hr/doctype/salary_manager/__init__.py
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
from webnotes import ValidationError
|
||||||
|
|
||||||
|
class SalarySlipExistsError(ValidationError): pass
|
||||||
|
|
67
hr/doctype/salary_manager/salary_manager.js
Normal file
67
hr/doctype/salary_manager/salary_manager.js
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
var display_activity_log = function(msg) {
|
||||||
|
if(!pscript.ss_html)
|
||||||
|
pscript.ss_html = $a(cur_frm.fields_dict['Activity Log'].wrapper,'div','',{border:'1px solid #CCC', backgroundColor:'#CCC'});
|
||||||
|
pscript.ss_html.innerHTML = '<div style="color:#EEE; background-color:#555;"><b><i>Activity Log:</i><br></b></div>';
|
||||||
|
pscript.ss_html.innerHTML += '<div style="color:#666; padding: 5px">'+ msg + '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
//Create salary slip
|
||||||
|
//-----------------------
|
||||||
|
cur_frm.cscript['Create Salary Slip'] = function(doc, cdt, cdn) {
|
||||||
|
var callback = function(r, rt){
|
||||||
|
if (r.message)
|
||||||
|
display_activity_log(r.message);
|
||||||
|
}
|
||||||
|
$c('runserverobj', args={'method':'create_sal_slip','docs':compress_doclist(make_doclist (cdt, cdn))},callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Submit salary slip
|
||||||
|
//-----------------------
|
||||||
|
cur_frm.cscript['Submit Salary Slip'] = function(doc, cdt, cdn) {
|
||||||
|
var check = confirm("Do you really want to Submit all Salary Slip for month : " + doc.month+" and fiscal year : "+doc.fiscal_year);
|
||||||
|
if(check){
|
||||||
|
var callback = function(r, rt){
|
||||||
|
if (r.message)
|
||||||
|
display_activity_log(r.message);
|
||||||
|
}
|
||||||
|
$c('runserverobj', args={'method':'submit_salary_slip','docs':compress_doclist(make_doclist (cdt, cdn))},callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make Bank Voucher
|
||||||
|
//-----------------------
|
||||||
|
cur_frm.cscript['Make Bank Voucher'] = function(doc,cdt,cdn){
|
||||||
|
if(doc.month && doc.fiscal_year){
|
||||||
|
cur_frm.cscript.make_jv(doc, cdt, cdn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Make JV
|
||||||
|
//-----------------------
|
||||||
|
cur_frm.cscript.make_jv = function(doc, dt, dn) {
|
||||||
|
var call_back = function(r,rt){
|
||||||
|
var jv = LocalDB.create('Journal Voucher');
|
||||||
|
jv = locals['Journal Voucher'][jv];
|
||||||
|
jv.voucher_type = 'Bank Voucher';
|
||||||
|
jv.user_remark = 'Payment of salary for the month: ' + doc.month + 'and fiscal year: ' + doc.fiscal_year;
|
||||||
|
jv.fiscal_year = doc.fiscal_year;
|
||||||
|
jv.company = doc.company;
|
||||||
|
jv.posting_date = dateutil.obj_to_str(new Date());
|
||||||
|
|
||||||
|
// credit to bank
|
||||||
|
var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
|
||||||
|
d1.account = r.message['default_bank_account'];
|
||||||
|
d1.credit = r.message['amount']
|
||||||
|
|
||||||
|
// debit to salary account
|
||||||
|
var d2 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
|
||||||
|
d2.account = r.message['default_salary_account'];
|
||||||
|
d2.debit = r.message['amount']
|
||||||
|
|
||||||
|
loaddoc('Journal Voucher', jv.name);
|
||||||
|
}
|
||||||
|
$c_obj(make_doclist(dt,dn),'get_acc_details','',call_back);
|
||||||
|
}
|
172
hr/doctype/salary_manager/salary_manager.py
Normal file
172
hr/doctype/salary_manager/salary_manager.py
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
# Please edit this list and import only required elements
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
|
||||||
|
from webnotes.model import db_exists
|
||||||
|
from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
|
||||||
|
from webnotes.model.doclist import getlist, copy_doclist
|
||||||
|
from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
|
||||||
|
from webnotes import session, form, is_testing, msgprint, errprint
|
||||||
|
|
||||||
|
set = webnotes.conn.set
|
||||||
|
sql = webnotes.conn.sql
|
||||||
|
get_value = webnotes.conn.get_value
|
||||||
|
in_transaction = webnotes.conn.in_transaction
|
||||||
|
convert_to_lists = webnotes.conn.convert_to_lists
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
class DocType:
|
||||||
|
def __init__(self, doc, doclist):
|
||||||
|
self.doc = doc
|
||||||
|
self.doclist = doclist
|
||||||
|
|
||||||
|
|
||||||
|
def get_emp_list(self):
|
||||||
|
"""
|
||||||
|
Returns list of active employees based on selected criteria
|
||||||
|
and for which salary structure exists
|
||||||
|
"""
|
||||||
|
|
||||||
|
cond = self.get_filter_condition()
|
||||||
|
|
||||||
|
emp_list = sql("""
|
||||||
|
select t1.name
|
||||||
|
from `tabEmployee` t1, `tabSalary Structure` t2
|
||||||
|
where t1.docstatus!=2 and t2.docstatus != 2
|
||||||
|
and ifnull(t1.status, 'Left') = 'Active' and ifnull(t2.is_active, 'No') = 'Yes'
|
||||||
|
and t1.name = t2.employee
|
||||||
|
%s """% cond)
|
||||||
|
|
||||||
|
return emp_list
|
||||||
|
|
||||||
|
|
||||||
|
def get_filter_condition(self):
|
||||||
|
self.check_mandatory()
|
||||||
|
|
||||||
|
cond = ''
|
||||||
|
for f in ['company', 'branch', 'department', 'designation', 'grade', 'employment_type']:
|
||||||
|
if self.doc.fields.get(f):
|
||||||
|
cond += " and t1." + f + " = '" + self.doc.fields.get(f) + "'"
|
||||||
|
|
||||||
|
return cond
|
||||||
|
|
||||||
|
|
||||||
|
def check_mandatory(self):
|
||||||
|
for f in ['company', 'month', 'fiscal_year']:
|
||||||
|
if not self.doc.fields[f]:
|
||||||
|
msgprint("Please select %s to proceed" % f, raise_exception=1)
|
||||||
|
|
||||||
|
|
||||||
|
def create_sal_slip(self):
|
||||||
|
"""
|
||||||
|
Creates salary slip for selected employees if already not created
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
emp_list = self.get_emp_list()
|
||||||
|
log = ""
|
||||||
|
if emp_list:
|
||||||
|
log = "<table><tr><td colspan = 2>Following Salary Slip has been created: </td></tr><tr><td><u>SAL SLIP ID</u></td><td><u>EMPLOYEE NAME</u></td></tr>"
|
||||||
|
else:
|
||||||
|
log = "<table><tr><td colspan = 2>No employee found for the above selected criteria</td></tr>"
|
||||||
|
|
||||||
|
for emp in emp_list:
|
||||||
|
if not sql("""select name from `tabSalary Slip`
|
||||||
|
where docstatus!= 2 and employee = %s and month = %s and fiscal_year = %s and company = %s
|
||||||
|
""", (emp[0], self.doc.month, self.doc.fiscal_year, self.doc.company)):
|
||||||
|
ss = Document('Salary Slip')
|
||||||
|
ss.fiscal_year = self.doc.fiscal_year
|
||||||
|
ss.employee = emp[0]
|
||||||
|
ss.month = self.doc.month
|
||||||
|
ss.email_check = self.doc.send_email
|
||||||
|
ss.company = self.doc.company
|
||||||
|
ss.save(1)
|
||||||
|
|
||||||
|
ss_obj = get_obj('Salary Slip', ss.name, with_children=1)
|
||||||
|
ss_obj.get_emp_and_leave_details()
|
||||||
|
ss_obj.calculate_net_pay()
|
||||||
|
ss_obj.validate()
|
||||||
|
ss_obj.doc.save()
|
||||||
|
|
||||||
|
for d in getlist(ss_obj.doclist, 'earning_details'):
|
||||||
|
d.save()
|
||||||
|
for d in getlist(ss_obj.doclist, 'deduction_details'):
|
||||||
|
d.save()
|
||||||
|
|
||||||
|
log += '<tr><td>' + ss.name + '</td><td>' + ss_obj.doc.employee_name + '</td></tr>'
|
||||||
|
log += '</table>'
|
||||||
|
return log
|
||||||
|
|
||||||
|
def get_sal_slip_list(self):
|
||||||
|
"""
|
||||||
|
Returns list of salary slips based on selected criteria
|
||||||
|
which are not submitted
|
||||||
|
"""
|
||||||
|
cond = self.get_filter_condition()
|
||||||
|
ss_list = sql("""
|
||||||
|
select t1.name from `tabSalary Slip` t1
|
||||||
|
where t1.docstatus = 0 and month = '%s' and fiscal_year = '%s' %s
|
||||||
|
""" % (self.doc.month, self.doc.fiscal_year, cond))
|
||||||
|
return ss_list
|
||||||
|
|
||||||
|
|
||||||
|
def submit_salary_slip(self):
|
||||||
|
"""
|
||||||
|
Submit all salary slips based on selected criteria
|
||||||
|
"""
|
||||||
|
ss_list = self.get_sal_slip_list()
|
||||||
|
log = ""
|
||||||
|
if ss_list:
|
||||||
|
log = """<table>
|
||||||
|
<tr>
|
||||||
|
<td colspan = 2>Following Salary Slip has been submitted: </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><u>SAL SLIP ID</u></td>
|
||||||
|
<td><u>EMPLOYEE NAME</u></td>
|
||||||
|
</tr>
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
log = "<table><tr><td colspan = 2>No salary slip found to submit for the above selected criteria</td></tr>"
|
||||||
|
|
||||||
|
for ss in ss_list:
|
||||||
|
ss_obj = get_obj("Salary Slip",ss[0],with_children=1)
|
||||||
|
set(ss_obj.doc, 'docstatus', 1)
|
||||||
|
ss_obj.on_submit()
|
||||||
|
|
||||||
|
log += '<tr><td>' + ss[0] + '</td><td>' + ss_obj.doc.employee_name + '</td></tr>'
|
||||||
|
log += '</table>'
|
||||||
|
return log
|
||||||
|
|
||||||
|
|
||||||
|
def get_total_salary(self):
|
||||||
|
"""
|
||||||
|
Get total salary amount from submitted salary slip based on selected criteria
|
||||||
|
"""
|
||||||
|
cond = self.get_filter_condition()
|
||||||
|
tot = sql("""
|
||||||
|
select sum(rounded_total) from `tabSalary Slip` t1
|
||||||
|
where t1.docstatus = 1 and month = '%s' and fiscal_year = '%s' %s
|
||||||
|
""" % (self.doc.month, self.doc.fiscal_year, cond))
|
||||||
|
|
||||||
|
return flt(tot[0][0])
|
||||||
|
|
||||||
|
|
||||||
|
def get_acc_details(self):
|
||||||
|
"""
|
||||||
|
get default bank account,default salary acount from company
|
||||||
|
"""
|
||||||
|
amt = self.get_total_salary()
|
||||||
|
com = sql("select default_bank_account from `tabCompany` where name = '%s'" % self.doc.company)
|
||||||
|
|
||||||
|
if not com[0][0] or not com[0][1]:
|
||||||
|
msgprint("You can set Default Bank Account in Company master.")
|
||||||
|
|
||||||
|
ret = {
|
||||||
|
'def_bank_acc' : com and com[0][0] or '',
|
||||||
|
'def_sal_acc' : com and com[0][1] or '',
|
||||||
|
'amount' : amt
|
||||||
|
}
|
||||||
|
return ret
|
@ -1,42 +1,37 @@
|
|||||||
# DocType, Salary Slip Control Panel
|
# DocType, Salary Manager
|
||||||
[
|
[
|
||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:20',
|
'creation': '2011-08-11 16:40:04',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2010-12-29 18:02:38',
|
'modified': '2011-08-25 12:02:57',
|
||||||
'modified_by': 'umair@iwebnotes.com',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1294312182',
|
'_last_update': '1314179318',
|
||||||
'allow_copy': 1,
|
'allow_copy': 1,
|
||||||
'allow_email': 1,
|
'allow_email': 1,
|
||||||
'allow_print': 1,
|
'allow_print': 1,
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'hide_heading': 0,
|
'document_type': 'Other',
|
||||||
'hide_toolbar': 0,
|
|
||||||
'in_create': 0,
|
|
||||||
'issingle': 1,
|
'issingle': 1,
|
||||||
'module': 'HR',
|
'module': 'HR',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'read_only': 1,
|
|
||||||
'section_style': 'Simple',
|
'section_style': 'Simple',
|
||||||
'server_code_error': ' ',
|
'show_in_menu': 1,
|
||||||
'show_in_menu': 0,
|
'version': 29
|
||||||
'use_template': 0,
|
|
||||||
'version': 113
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Salary Slip Control Panel',
|
'parent': 'Salary Manager',
|
||||||
'parentfield': 'fields',
|
'parentfield': 'fields',
|
||||||
'parenttype': 'DocType',
|
'parenttype': 'DocType',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -47,7 +42,7 @@
|
|||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Salary Slip Control Panel',
|
'parent': 'Salary Manager',
|
||||||
'parentfield': 'permissions',
|
'parentfield': 'permissions',
|
||||||
'parenttype': 'DocType',
|
'parenttype': 'DocType',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -55,10 +50,10 @@
|
|||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Salary Slip Control Panel
|
# DocType, Salary Manager
|
||||||
{
|
{
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'name': 'Salary Slip Control Panel'
|
'name': 'Salary Manager'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
@ -84,22 +79,76 @@
|
|||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'HTML',
|
||||||
'idx': 1,
|
'idx': 1,
|
||||||
'label': 'Salary Slip Control Panel'
|
'label': 'Document Description',
|
||||||
|
'options': '<div class="field_description">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'employee_type',
|
'fieldtype': 'Section Break',
|
||||||
|
'idx': 2
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break',
|
||||||
|
'idx': 3,
|
||||||
|
'width': '50%'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'company',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 2,
|
'idx': 4,
|
||||||
'label': 'Employment Type',
|
'label': 'Company',
|
||||||
'oldfieldname': 'employee_type',
|
'options': 'link:Company',
|
||||||
'oldfieldtype': 'Select',
|
'reqd': 1
|
||||||
'options': 'link:Employment Type'
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'branch',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 5,
|
||||||
|
'label': 'Branch',
|
||||||
|
'options': 'Branch'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'department',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 6,
|
||||||
|
'label': 'Department',
|
||||||
|
'options': 'Department'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'designation',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 7,
|
||||||
|
'label': 'Designation',
|
||||||
|
'options': 'Designation'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break',
|
||||||
|
'idx': 8,
|
||||||
|
'width': '50%'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -107,180 +156,132 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'grade',
|
'fieldname': 'grade',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 3,
|
'idx': 9,
|
||||||
'label': 'Grade',
|
'label': 'Grade',
|
||||||
'oldfieldname': 'grade',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': 'link:Grade'
|
'options': 'link:Grade'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'branch',
|
'fieldname': 'employment_type',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 4,
|
'idx': 10,
|
||||||
'label': 'Branch',
|
'label': 'Employment Type',
|
||||||
'oldfieldname': 'branch',
|
'options': 'link:Employment Type'
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': 'link:Branch'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'department',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 5,
|
|
||||||
'label': 'Department',
|
|
||||||
'oldfieldname': 'department',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': 'link:Department'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'designation',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 6,
|
|
||||||
'label': 'Designation',
|
|
||||||
'oldfieldname': 'designation',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': 'link:Designation'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldtype': 'Column Break',
|
|
||||||
'idx': 7,
|
|
||||||
'oldfieldtype': 'Column Break'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'fiscal_year',
|
'fieldname': 'fiscal_year',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 8,
|
|
||||||
'in_filter': 1,
|
|
||||||
'label': 'Fiscal Year',
|
|
||||||
'oldfieldname': 'fiscal_year',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': 'link:Fiscal Year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'month',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 9,
|
|
||||||
'label': 'Month',
|
|
||||||
'oldfieldname': 'month',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': '\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'year',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 10,
|
|
||||||
'label': 'Year',
|
|
||||||
'oldfieldname': 'year',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': '\n2009\n2010\n2011\n2012'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'week_off',
|
|
||||||
'fieldtype': 'Currency',
|
|
||||||
'idx': 11,
|
'idx': 11,
|
||||||
'label': 'Week Off',
|
'label': 'Fiscal Year',
|
||||||
'oldfieldname': 'week_off',
|
'options': 'link:Fiscal Year',
|
||||||
'oldfieldtype': 'Currency'
|
'reqd': 1
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'arrear_amount',
|
|
||||||
'fieldtype': 'Currency',
|
|
||||||
'idx': 12,
|
|
||||||
'label': 'Arrear Amount',
|
|
||||||
'oldfieldname': 'arrear_amount',
|
|
||||||
'oldfieldtype': 'Currency'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'email_check',
|
'fieldname': 'month',
|
||||||
|
'fieldtype': 'Select',
|
||||||
|
'idx': 12,
|
||||||
|
'label': 'Month',
|
||||||
|
'options': '\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
|
||||||
|
'reqd': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Check if you want to send salary slip in mail to each employee while submitting salary slip',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'send_email',
|
||||||
'fieldtype': 'Check',
|
'fieldtype': 'Check',
|
||||||
'idx': 13,
|
'idx': 13,
|
||||||
'label': 'Email',
|
'label': 'Send Email'
|
||||||
'oldfieldname': 'email_check',
|
|
||||||
'oldfieldtype': 'Check'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 14,
|
'idx': 14
|
||||||
'oldfieldtype': 'Section Break'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldtype': 'Button',
|
|
||||||
'idx': 15,
|
|
||||||
'label': 'Process Payroll',
|
|
||||||
'oldfieldtype': 'Button',
|
|
||||||
'trigger': 'Client'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldtype': 'HTML',
|
|
||||||
'idx': 16,
|
|
||||||
'label': 'Salary Slip HTML'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 17
|
'idx': 15,
|
||||||
|
'width': '50%'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Creates salary slip for above mentioned criteria.',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 18,
|
'idx': 16,
|
||||||
'label': 'Submit Salary Slip',
|
'label': 'Create Salary Slip',
|
||||||
'oldfieldtype': 'Button',
|
|
||||||
'trigger': 'Client'
|
'trigger': 'Client'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break',
|
||||||
|
'idx': 17,
|
||||||
|
'width': '25%'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Submit all salary slips for the above selected criteria',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
|
'idx': 18,
|
||||||
|
'label': 'Submit Salary Slip',
|
||||||
|
'trigger': 'Client'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break',
|
||||||
'idx': 19,
|
'idx': 19,
|
||||||
|
'width': '25%'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Create Bank Voucher for the total salary paid for the above selected criteria',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Button',
|
||||||
|
'idx': 20,
|
||||||
'label': 'Make Bank Voucher',
|
'label': 'Make Bank Voucher',
|
||||||
'trigger': 'Client'
|
'trigger': 'Client'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Section Break',
|
||||||
|
'idx': 21
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'HTML',
|
||||||
|
'idx': 22,
|
||||||
|
'label': 'Activity Log'
|
||||||
}
|
}
|
||||||
]
|
]
|
199
hr/doctype/salary_manager/test_salary_manager.py
Normal file
199
hr/doctype/salary_manager/test_salary_manager.py
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
import unittest
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
from webnotes.model.code import get_obj
|
||||||
|
sql = webnotes.conn.sql
|
||||||
|
|
||||||
|
class TestSalaryManager(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
webnotes.conn.begin()
|
||||||
|
for rec in [des1, dep1, branch1, grade1, comp1, emp1, emp2]:
|
||||||
|
rec.save(1)
|
||||||
|
|
||||||
|
ss1[0].employee = emp1.name
|
||||||
|
for s in ss1: s.save(1)
|
||||||
|
for s in ss1[1:]:
|
||||||
|
sql("update `tabEarning Detail` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
|
||||||
|
sql("update `tabDeduction Detail` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
|
||||||
|
|
||||||
|
|
||||||
|
ss2[0].employee = emp2.name
|
||||||
|
for s in ss2: s.save(1)
|
||||||
|
for s in ss2[1:]:
|
||||||
|
sql("update `tabEarning Detail` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
|
||||||
|
sql("update `tabDeduction Detail` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
|
||||||
|
|
||||||
|
sman.save()
|
||||||
|
self.sm = get_obj('Salary Manager')
|
||||||
|
leave.save(1)
|
||||||
|
self.sm.create_sal_slip()
|
||||||
|
|
||||||
|
def test_creation(self):
|
||||||
|
ssid = sql("""
|
||||||
|
select name, department
|
||||||
|
from `tabSalary Slip`
|
||||||
|
where month = '08' and fiscal_year='2011-2012'""")
|
||||||
|
|
||||||
|
self.assertTrue(len(ssid)==1)
|
||||||
|
self.assertTrue(ssid[0][1] == 'dep1')
|
||||||
|
|
||||||
|
|
||||||
|
def test_lwp_calc(self):
|
||||||
|
ss = sql("""
|
||||||
|
select payment_days
|
||||||
|
from `tabSalary Slip`
|
||||||
|
where month = '08' and fiscal_year='2011-2012' and employee = '%s'
|
||||||
|
""" % emp1.name)
|
||||||
|
|
||||||
|
self.assertTrue(ss[0][0]==27)
|
||||||
|
|
||||||
|
def test_net_pay(self):
|
||||||
|
ss = webnotes.conn.sql("""
|
||||||
|
select rounded_total
|
||||||
|
from `tabSalary Slip`
|
||||||
|
where month = '08'
|
||||||
|
and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
|
||||||
|
self.assertTrue(ss[0][0]==67)
|
||||||
|
|
||||||
|
def test_submit(self):
|
||||||
|
self.sm.submit_salary_slip()
|
||||||
|
ss = webnotes.conn.sql("""
|
||||||
|
select docstatus
|
||||||
|
from `tabSalary Slip`
|
||||||
|
where month = '08'
|
||||||
|
and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
|
||||||
|
self.assertTrue(ss[0][0]==1)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
webnotes.conn.rollback()
|
||||||
|
|
||||||
|
#--------------------------------------------
|
||||||
|
# test data
|
||||||
|
#--------------------------------------------
|
||||||
|
des1 = Document(fielddata={
|
||||||
|
'name':'des1',
|
||||||
|
'doctype':'Designation',
|
||||||
|
'designation_name':'des1'
|
||||||
|
})
|
||||||
|
|
||||||
|
dep1 = Document(fielddata={
|
||||||
|
'name':'dep1',
|
||||||
|
'doctype':'Department',
|
||||||
|
'department_name' : 'dep1'
|
||||||
|
})
|
||||||
|
|
||||||
|
branch1 = Document(fielddata={
|
||||||
|
'name':'branch1',
|
||||||
|
'doctype':'Branch',
|
||||||
|
'branch' : 'branch1'
|
||||||
|
})
|
||||||
|
|
||||||
|
comp1 = Document(fielddata={
|
||||||
|
'name':'comp1',
|
||||||
|
'doctype':'Company',
|
||||||
|
'abbr':'c1',
|
||||||
|
'company_name' : 'comp1'
|
||||||
|
})
|
||||||
|
|
||||||
|
grade1 = Document(fielddata={
|
||||||
|
'name':'grade1',
|
||||||
|
'doctype':'Grade',
|
||||||
|
'grade_name' : 'grade1'
|
||||||
|
})
|
||||||
|
|
||||||
|
emp1 = Document(fielddata={
|
||||||
|
'doctype':'Employee',
|
||||||
|
'employee_number':'emp1',
|
||||||
|
'department':'dep1',
|
||||||
|
'designation':'des1',
|
||||||
|
'branch' : 'branch1',
|
||||||
|
'company':'comp1',
|
||||||
|
'grade':'grade1',
|
||||||
|
'naming_series':'EMP/',
|
||||||
|
'status':'Active',
|
||||||
|
'docstatus':0,
|
||||||
|
'employee_name':'emp1'
|
||||||
|
})
|
||||||
|
|
||||||
|
emp2 = Document(fielddata={
|
||||||
|
'doctype':'Employee',
|
||||||
|
'employee_number':'emp2',
|
||||||
|
'department':'dep1',
|
||||||
|
'designation':'des2',
|
||||||
|
'branch' : 'branch1',
|
||||||
|
'company':'comp1',
|
||||||
|
'naming_series':'EMP/',
|
||||||
|
'grade':'grade1',
|
||||||
|
'status':'Active',
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
ss1 = [
|
||||||
|
Document(fielddata={
|
||||||
|
'doctype':'Salary Structure',
|
||||||
|
'docstatus':0,
|
||||||
|
'employee':'emp1',
|
||||||
|
'is_active':'Yes',
|
||||||
|
'department': 'dep1',
|
||||||
|
'designation' : 'des1',
|
||||||
|
'employee_name': 'emp1'
|
||||||
|
}),
|
||||||
|
Document(fielddata={
|
||||||
|
'parenttype':'Salary Structure',
|
||||||
|
'parentfield':'earning_details',
|
||||||
|
'doctype':'Earning Detail',
|
||||||
|
'e_type' : 'Basic',
|
||||||
|
'depend_on_lwp':1,
|
||||||
|
'modified_value':100
|
||||||
|
}),
|
||||||
|
Document(fielddata={
|
||||||
|
'parenttype':'Salary Structure',
|
||||||
|
'parentfield':'earning_details',
|
||||||
|
'doctype':'Deduction Detail',
|
||||||
|
'd_type':'TDS',
|
||||||
|
'd_modified_amt':20
|
||||||
|
})
|
||||||
|
]
|
||||||
|
|
||||||
|
ss2 = [
|
||||||
|
Document(fielddata={
|
||||||
|
'doctype':'Salary Structure',
|
||||||
|
'is_active':'Yes',
|
||||||
|
'docstatus':0,
|
||||||
|
}),
|
||||||
|
Document(fielddata={
|
||||||
|
'parenttype':'Salary Structure',
|
||||||
|
'parentfield':'deduction_details',
|
||||||
|
'doctype':'Earning Detail',
|
||||||
|
'e_type' : 'Basic',
|
||||||
|
'modified_value':100
|
||||||
|
}),
|
||||||
|
Document(fielddata={
|
||||||
|
'parenttype':'Salary Structure',
|
||||||
|
'parentfield':'deduction_details',
|
||||||
|
'doctype':'Deduction Detail',
|
||||||
|
'd_type':'TDS',
|
||||||
|
'd_modified_amt':20
|
||||||
|
})
|
||||||
|
]
|
||||||
|
|
||||||
|
sman = Document(fielddata={
|
||||||
|
'name':'Salary Manager',
|
||||||
|
'doctype':'Salary Manager',
|
||||||
|
'company': 'comp1',
|
||||||
|
'department':'dep1',
|
||||||
|
'designation':'des1',
|
||||||
|
'month': '08',
|
||||||
|
'fiscal_year':'2011-2012'
|
||||||
|
})
|
||||||
|
|
||||||
|
leave = Document(fielddata = {
|
||||||
|
'doctype':'Leave Application',
|
||||||
|
'employee':'emp1',
|
||||||
|
'from_date':'2011-08-12',
|
||||||
|
'to_date':'2011-08-15',
|
||||||
|
'total_leave_days':'4',
|
||||||
|
'leave_type':'Leave Without Pay',
|
||||||
|
'docstatus':1
|
||||||
|
})
|
@ -68,7 +68,7 @@ var calculate_earning_total = function(doc, dt, dn) {
|
|||||||
var total_earn = 0;
|
var total_earn = 0;
|
||||||
for(var i = 0; i < tbl.length; i++){
|
for(var i = 0; i < tbl.length; i++){
|
||||||
if(cint(tbl[i].e_depends_on_lwp) == 1) {
|
if(cint(tbl[i].e_depends_on_lwp) == 1) {
|
||||||
tbl[i].e_modified_amount = flt(tbl[i].e_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month));
|
tbl[i].e_modified_amount = Math.round(tbl[i].e_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month)*100)/100;
|
||||||
refresh_field('e_modified_amount', tbl[i].name, 'earning_details');
|
refresh_field('e_modified_amount', tbl[i].name, 'earning_details');
|
||||||
}
|
}
|
||||||
total_earn += flt(tbl[i].e_modified_amount);
|
total_earn += flt(tbl[i].e_modified_amount);
|
||||||
@ -85,7 +85,7 @@ var calculate_ded_total = function(doc, dt, dn) {
|
|||||||
var total_ded = 0;
|
var total_ded = 0;
|
||||||
for(var i = 0; i < tbl.length; i++){
|
for(var i = 0; i < tbl.length; i++){
|
||||||
if(cint(tbl[i].d_depends_on_lwp) == 1) {
|
if(cint(tbl[i].d_depends_on_lwp) == 1) {
|
||||||
tbl[i].d_modified_amount = flt(tbl[i].d_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month));
|
tbl[i].d_modified_amount = Math.round(tbl[i].d_amount)*(flt(doc.payment_days)/cint(doc.total_days_in_month)*100)/100;
|
||||||
refresh_field('d_modified_amount', tbl[i].name, 'deduction_details');
|
refresh_field('d_modified_amount', tbl[i].name, 'deduction_details');
|
||||||
}
|
}
|
||||||
total_ded += flt(tbl[i].d_modified_amount);
|
total_ded += flt(tbl[i].d_modified_amount);
|
||||||
|
@ -130,44 +130,76 @@ class DocType(TransactionBase):
|
|||||||
dcc = TransactionBase().get_company_currency(self.doc.company)
|
dcc = TransactionBase().get_company_currency(self.doc.company)
|
||||||
self.doc.total_in_words = get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
|
self.doc.total_in_words = get_obj('Sales Common').get_total_in_words(dcc, self.doc.rounded_total)
|
||||||
|
|
||||||
|
|
||||||
|
def calculate_earning_total(self):
|
||||||
|
"""
|
||||||
|
Calculates total earnings considering lwp
|
||||||
|
"""
|
||||||
|
self.doc.gross_pay = flt(self.doc.arrear_amount) + flt(self.doc.leave_encashment_amount)
|
||||||
|
for d in getlist(self.doclist, 'earning_details'):
|
||||||
|
if cint(d.e_depends_on_lwp) == 1:
|
||||||
|
d.e_modified_amount = round(flt(d.e_amount)*flt(self.doc.payment_days)/cint(self.doc.total_days_in_month), 2)
|
||||||
|
self.doc.gross_pay += d.e_modified_amount
|
||||||
|
|
||||||
|
def calculate_ded_total(self):
|
||||||
|
"""
|
||||||
|
Calculates total deduction considering lwp
|
||||||
|
"""
|
||||||
|
self.doc.total_deduction = 0
|
||||||
|
for d in getlist(self.doclist, 'deduction_details'):
|
||||||
|
if cint(d.d_depends_on_lwp) == 1:
|
||||||
|
d.d_modified_amount = round(flt(d.d_amount)*flt(self.doc.payment_days)/cint(self.doc.total_days_in_month), 2)
|
||||||
|
self.doc.total_deduction += d.d_modified_amount
|
||||||
|
|
||||||
|
def calculate_net_pay(self):
|
||||||
|
"""
|
||||||
|
Calculate net payment
|
||||||
|
"""
|
||||||
|
self.calculate_earning_total()
|
||||||
|
self.calculate_ded_total()
|
||||||
|
self.doc.net_pay = flt(self.doc.gross_pay) - flt(self.doc.total_deduction)
|
||||||
|
self.doc.rounded_total = round(self.doc.net_pay)
|
||||||
|
|
||||||
# ON SUBMIT
|
# ON SUBMIT
|
||||||
#=======================================================
|
#=======================================================
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
if(self.doc.email_check == 1):
|
if(self.doc.email_check == 1):
|
||||||
self.send_mail_funct()
|
self.send_mail_funct()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
#=======================================================
|
#=======================================================
|
||||||
def send_mail_funct(self):
|
def send_mail_funct(self):
|
||||||
emailid_ret=sql("select company_email from `tabEmployee` where name = '%s'"%self.doc.employee)
|
emailid_ret=sql("select company_email from `tabEmployee` where name = '%s'"%self.doc.employee)
|
||||||
if emailid_ret:
|
if emailid_ret:
|
||||||
receiver = cstr(emailid_ret[0][0])
|
receiver = cstr(emailid_ret[0][0])
|
||||||
subj = 'Salary Slip ' + cstr(self.doc.month) +' '+cstr(self.doc.year)
|
subj = 'Salary Slip - ' + cstr(self.doc.month) +'/'+cstr(self.doc.fiscal_year)
|
||||||
earn_ret=sql("select e_type,e_amount from `tabSS Earning Detail` where parent = '%s'"%self.doc.name)
|
earn_ret=sql("select e_type,e_modified_amount from `tabSS Earning Detail` where parent = '%s'"%self.doc.name)
|
||||||
ded_ret=sql("select d_type,d_amount from `tabSS Deduction Detail` where parent = '%s'"%self.doc.name)
|
ded_ret=sql("select d_type,d_modified_amount from `tabSS Deduction Detail` where parent = '%s'"%self.doc.name)
|
||||||
|
|
||||||
earn_table = ''
|
earn_table = ''
|
||||||
ded_table = ''
|
ded_table = ''
|
||||||
if earn_ret:
|
if earn_ret:
|
||||||
|
earn_table += "<table cellspacing=5px cellpadding=5px width='100%%'>"
|
||||||
earn_table += "<table cellspacing= '5' cellpadding='5' >"
|
|
||||||
|
|
||||||
for e in earn_ret:
|
for e in earn_ret:
|
||||||
if not e[1]:
|
if not e[1]:
|
||||||
earn_table +='<tr><td>%s</td><td>0.00</td></tr>'%(cstr(e[0]))
|
earn_table +='<tr><td>%s</td><td align="right">0.00</td></tr>'%(cstr(e[0]))
|
||||||
else:
|
else:
|
||||||
earn_table +='<tr><td>%s</td><td>%s</td></tr>'%(cstr(e[0]),cstr(e[1]))
|
earn_table +='<tr><td>%s</td><td align="right">%s</td></tr>'%(cstr(e[0]),cstr(e[1]))
|
||||||
earn_table += '</table>'
|
earn_table += '</table>'
|
||||||
|
|
||||||
if ded_ret:
|
if ded_ret:
|
||||||
|
|
||||||
ded_table += "<table cellspacing= '5' cellpadding='5' >"
|
ded_table += "<table cellspacing=5px cellpadding=5px width='100%%'>"
|
||||||
|
|
||||||
for d in ded_ret:
|
for d in ded_ret:
|
||||||
if not d[1]:
|
if not d[1]:
|
||||||
ded_table +='<tr><td>%s</td><td>0.00</td></tr>'%(cstr(d[0]))
|
ded_table +='<tr><td">%s</td><td align="right">0.00</td></tr>'%(cstr(d[0]))
|
||||||
else:
|
else:
|
||||||
ded_table +='<tr><td>%s</td><td>%s</td></tr>'%(cstr(d[0]),cstr(d[1]))
|
ded_table +='<tr><td>%s</td><td align="right">%s</td></tr>'%(cstr(d[0]),cstr(d[1]))
|
||||||
ded_table += '</table>'
|
ded_table += '</table>'
|
||||||
|
|
||||||
letter_head = sql("select value from `tabSingles` where field = 'letter_head' and doctype = 'Control Panel'")
|
letter_head = sql("select value from `tabSingles` where field = 'letter_head' and doctype = 'Control Panel'")
|
||||||
@ -175,62 +207,61 @@ class DocType(TransactionBase):
|
|||||||
if not letter_head:
|
if not letter_head:
|
||||||
letter_head = ''
|
letter_head = ''
|
||||||
|
|
||||||
msg = ''' %s <br>
|
msg = '''<div> %s <br>
|
||||||
<table cellspacing= "5" cellpadding="5" >
|
<table cellspacing= "5" cellpadding="5" width = "100%%">
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan = 4><h4>Salary Slip</h4></td>
|
<td width = "100%%" colspan = "2"><h4>Salary Slip</h4></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan = 2><b>Employee Code : %s</b></td>
|
<td width = "50%%"><b>Employee Code : %s</b></td>
|
||||||
<td colspan = 2><b>Employee Name : %s</b></td>
|
<td width = "50%%"><b>Employee Name : %s</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Month : %s</td>
|
<td width = "50%%">Month : %s</td>
|
||||||
<td>Year : %s</td>
|
<td width = "50%%">Fiscal Year : %s</td>
|
||||||
<td colspan = 2>Fiscal Year : %s</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Department : %s</td>
|
<td width = "50%%">Department : %s</td>
|
||||||
<td>Branch : %s</td>
|
<td width = "50%%">Branch : %s</td>
|
||||||
<td colspan = 2>Designation : %s</td>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width = "50%%">Designation : %s</td>
|
||||||
|
<td width = "50%%">Grade : %s</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width = "50%%">Bank Account No. : %s</td>
|
||||||
|
<td width = "50%%">Bank Name : %s</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Grade : %s</td>
|
<td width = "50%%">Arrear Amount : <b>%s</b></td>
|
||||||
<td>Bank Account No. : %s</td>
|
<td width = "50%%">Payment days : %s</td>
|
||||||
<td colspan = 2>Bank Name : %s</td>
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table border="1px solid #CCC" width="100%%" cellpadding="0px" cellspacing="0px">
|
||||||
<tr>
|
<tr>
|
||||||
<td>PF No. : %s</td>
|
<td colspan = 2 width = "50%%" bgcolor="#CCC" align="center"><b>Earnings</b></td>
|
||||||
<td>ESIC No. : %s</td>
|
<td colspan = 2 width = "50%%" bgcolor="#CCC" align="center"><b>Deductions</b></td>
|
||||||
<td colspan = 2>Arrear Amount : <b>%s</b></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Total days in month : %s</td>
|
<td colspan = 2 width = "50%%" valign= "top">%s</td>
|
||||||
<td>Leave Without Pay : %s</td>
|
<td colspan = 2 width = "50%%" valign= "top">%s</td>
|
||||||
<td colspan = 2>Payment days : %s</td>
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<br><br>
|
</table>
|
||||||
|
<table cellspacing= "5" cellpadding="5" width = '100%%'>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan = 2><b>Earning</b></td>
|
<td width = '25%%'><b>Gross Pay :</b> </td><td width = '25%%' align='right'>%s</td>
|
||||||
<td colspan = 2><b>Deduction</b></td>
|
<td width = '25%%'><b>Total Deduction :</b></td><td width = '25%%' align='right'> %s</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan = 2>%s</td>
|
<tdwidth='25%%'><b>Net Pay : </b></td><td width = '25%%' align='right'><b>%s</b></td>
|
||||||
<td colspan = 2>%s</td>
|
<td colspan = '2' width = '50%%'></td>
|
||||||
</tr>
|
|
||||||
<br>
|
|
||||||
<tr>
|
|
||||||
<td colspan = 2><b>Gross Pay :</b> %s</td>
|
|
||||||
<td colspan = 2><b>Total Deduction :</b> %s</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Net Pay : %s</b></td>
|
<td width='25%%'><b>Net Pay(in words) : </td><td colspan = '3' width = '50%%'>%s</b></td>
|
||||||
<td colspan = 3><b>Net Pay (in words) : %s</b></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</table>'''%(cstr(letter_head[0][0]),cstr(self.doc.employee),self.doc.employee_name,cstr(self.doc.month),cstr(self.doc.year),cstr(self.doc.fiscal_year),self.doc.department,self.doc.branch,self.doc.designation,self.doc.grade,cstr(self.doc.bank_account_no),self.doc.bank_name,cstr(self.doc.pf_no),cstr(self.doc.esic_no),cstr(self.doc.arrear_amount),cstr(self.doc.total_days_in_month),cstr(self.doc.leave_without_pay),cstr(self.doc.payment_days),earn_table,ded_table,cstr(self.doc.gross_pay),cstr(self.doc.total_deduction),cstr(self.doc.net_pay),cstr(self.doc.net_pay_in_words))
|
</table></div>'''%(cstr(letter_head[0][0]),cstr(self.doc.employee), cstr(self.doc.employee_name), cstr(self.doc.month), cstr(self.doc.fiscal_year), cstr(self.doc.department), cstr(self.doc.branch), cstr(self.doc.designation), cstr(self.doc.grade), cstr(self.doc.bank_account_no), cstr(self.doc.bank_name), cstr(self.doc.arrear_amount), cstr(self.doc.payment_days), earn_table, ded_table, cstr(flt(self.doc.gross_pay)), cstr(flt(self.doc.total_deduction)), cstr(flt(self.doc.net_pay)), cstr(self.doc.total_in_words))
|
||||||
sendmail([receiver], sender='automail@webnotestech.com', subject=subj, parts=[['text/plain', msg]])
|
sendmail([receiver], sender='automail@erpnext.com', subject=subj, parts=[['text/plain', msg]])
|
||||||
else:
|
else:
|
||||||
msgprint("Company Email ID not found.")
|
msgprint("Company Email ID not found.")
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
cur_frm.cscript.onload = function(doc, cdt, cdn) {
|
|
||||||
alert("Salary Slip Control Panel is currently under re-development. It will take around a week time.");
|
|
||||||
hide_field(['Process Payroll', 'Submit Salary Slip', 'Make Bank Voucher']);
|
|
||||||
}
|
|
||||||
|
|
||||||
cur_frm.cscript['Process Payroll'] = function(doc,cdt,cdn){
|
|
||||||
$c('runserverobj', args={'method':'process_payroll','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},function(r,rt){
|
|
||||||
|
|
||||||
if(!pscript.ss_html)
|
|
||||||
pscript.ss_html = $a(cur_frm.fields_dict['Salary Slip HTML'].wrapper,'span','',{border:'1px solid #CCC', backgroundColor:'#DDD'});
|
|
||||||
pscript.ss_html.innerHTML = '';
|
|
||||||
pscript.ss_html.innerHTML = r.message;
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
cur_frm.cscript['Submit Salary Slip'] = function(doc,cdt,cdn){
|
|
||||||
if(doc.month && doc.fiscal_year && doc.year){
|
|
||||||
var check = confirm("DO you really want to Submit all Salary Slip for month : " + doc.month+" and year : "+doc.year);
|
|
||||||
if(check){
|
|
||||||
$c('runserverobj', args={'method':'submit_sal_slip','docs':compress_doclist (make_doclist (doc.doctype,doc.name))},function(r,rt){
|
|
||||||
|
|
||||||
if(!pscript.ss_html)
|
|
||||||
pscript.ss_html = $a(cur_frm.fields_dict['Salary Slip HTML'].wrapper,'span','',{border:'1px solid #CCC', backgroundColor:'#DDD'});
|
|
||||||
pscript.ss_html.innerHTML = '';
|
|
||||||
pscript.ss_html.innerHTML = r.message;
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
alert("Please select month, fiscal year and year");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make JV
|
|
||||||
// --------
|
|
||||||
cur_frm.cscript.make_jv = function(doc, dt, dn) {
|
|
||||||
var call_back = function(r,rt){
|
|
||||||
var jv = LocalDB.create('Journal Voucher');
|
|
||||||
jv = locals['Journal Voucher'][jv];
|
|
||||||
jv.voucher_type = 'Bank Voucher';
|
|
||||||
jv.remark = 'Salary - Bank Voucher';
|
|
||||||
jv.fiscal_year = doc.fiscal_year;
|
|
||||||
jv.company = doc.company;
|
|
||||||
|
|
||||||
// credit to bank
|
|
||||||
var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
|
|
||||||
d1.account = r.message['default_bank_account'];
|
|
||||||
|
|
||||||
// debit to salary account
|
|
||||||
var d1 = LocalDB.add_child(jv, 'Journal Voucher Detail', 'entries');
|
|
||||||
d1.account = r.message['default_salary_account'];
|
|
||||||
if(!r.message['default_salary_account'] && !r.message['default_bank_account']) alert("To debit salary amount in salary head and credit amount from bank, you need to specify default salary account and default bank account in Global Defaults.\nGo to Setup, click on Company. Select a company.\nSelect Default Salary Account, Default Bank Account from Accounting tab.");
|
|
||||||
else if(!r.message['default_salary_account']) alert("To debit salary amount you need to specify default salary account in Global Defaults.\nGo to Setup, click on Company. Select a company.\nSelect Default Salary Account from Accounting tab.");
|
|
||||||
else if(!r.message['default_bank_account']) alert("To credit salary amount you need to specify default bank account in Global Defaults.\nGo to Setup, click on Company. Select a company.\nSelect Default Bank Account from Accounting tab.");
|
|
||||||
loaddoc('Journal Voucher', jv.name);
|
|
||||||
}
|
|
||||||
$c_obj(make_doclist(dt,dn),'get_acct_dtl','',call_back);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Make Journal Voucher
|
|
||||||
// --------------------
|
|
||||||
cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
|
|
||||||
cur_frm.cscript.make_jv(doc,dt,dn);
|
|
||||||
}
|
|
@ -1,137 +0,0 @@
|
|||||||
# Please edit this list and import only required elements
|
|
||||||
import webnotes
|
|
||||||
|
|
||||||
from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
|
|
||||||
from webnotes.model import db_exists
|
|
||||||
from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
|
|
||||||
from webnotes.model.doclist import getlist, copy_doclist
|
|
||||||
from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
|
|
||||||
from webnotes import session, form, is_testing, msgprint, errprint
|
|
||||||
|
|
||||||
set = webnotes.conn.set
|
|
||||||
sql = webnotes.conn.sql
|
|
||||||
get_value = webnotes.conn.get_value
|
|
||||||
in_transaction = webnotes.conn.in_transaction
|
|
||||||
convert_to_lists = webnotes.conn.convert_to_lists
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
class DocType:
|
|
||||||
def __init__(self, doc, doclist):
|
|
||||||
self.doc = doc
|
|
||||||
self.doclist = doclist
|
|
||||||
|
|
||||||
# Get Employees
|
|
||||||
# **********************************************************************
|
|
||||||
def get_employee(self):
|
|
||||||
e1 = self.emp_fr_memp() #get employee list from employee where employee is active
|
|
||||||
e2 = self.emp_fr_salstr(e1) #get employee list from salary structure whose salary structure is created and is active
|
|
||||||
e3 = self.emp_fr_salslip(e2) #get employee list from salary slip whose salary slip not yet created for this month and year
|
|
||||||
return e3
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
def emp_fr_memp(self):
|
|
||||||
lst1 = [[self.doc.employee_type,"employment_type"],[self.doc.branch,"branch"],[self.doc.designation,"designation"],[self.doc.department, "department"],[self.doc.grade,"grade"]]
|
|
||||||
|
|
||||||
condition = ""
|
|
||||||
#flag = 0
|
|
||||||
for l in lst1:
|
|
||||||
|
|
||||||
if(l[0]):
|
|
||||||
#if flag == 0:
|
|
||||||
# condition += l[1] + "= '" + l[0] +"'"
|
|
||||||
#else:
|
|
||||||
condition += " and " + l[1]+ "= '" +l[0] +"'"
|
|
||||||
#flag = 1
|
|
||||||
|
|
||||||
emp_query = "select name from `tabEmployee` where status = 'Active'"
|
|
||||||
#if flag == 1:
|
|
||||||
emp_query += condition
|
|
||||||
|
|
||||||
e = sql(emp_query)
|
|
||||||
return e
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
def emp_fr_salstr(self,e1):
|
|
||||||
lst = []
|
|
||||||
for r in e1:
|
|
||||||
lst.append(r[0])
|
|
||||||
|
|
||||||
|
|
||||||
e_lst = "%s"%lst
|
|
||||||
e_lst=e_lst.replace("[","(")
|
|
||||||
e_lst=e_lst.replace("]",")")
|
|
||||||
cond = ''
|
|
||||||
|
|
||||||
if e1:
|
|
||||||
cond = " and employee in %s"%e_lst
|
|
||||||
|
|
||||||
el=sql("select employee from `tabSalary Structure` where is_active = 'Yes'"+cond)
|
|
||||||
|
|
||||||
return el
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
def emp_fr_salslip(self,e2):
|
|
||||||
e3 = []
|
|
||||||
for i in e2:
|
|
||||||
ret = sql("select name from `tabSalary Slip` where month = '%s' and year = '%s' and employee = '%s' and docstatus !=2 "%(self.doc.month,self.doc.year,i[0]))
|
|
||||||
|
|
||||||
if not ret:
|
|
||||||
e3.append(i[0])
|
|
||||||
return e3
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
def process_payroll(self):
|
|
||||||
sal_slip_str = ''
|
|
||||||
if self.doc.month and self.doc.fiscal_year and self.doc.year:
|
|
||||||
e = self.get_employee()
|
|
||||||
if e:
|
|
||||||
self.doc.emp_lst=e
|
|
||||||
sal_slip_str += 'Sucessfully created following salary slips:'
|
|
||||||
for i in e:
|
|
||||||
ss = Document('Salary Slip')
|
|
||||||
ss.fiscal_year = self.doc.fiscal_year
|
|
||||||
ss.employee = i
|
|
||||||
ss.month = self.doc.month
|
|
||||||
ss.year= self.doc.year
|
|
||||||
ss.arrear_amount = self.doc.arrear_amount
|
|
||||||
ss.email_check = self.doc.email_check
|
|
||||||
ss.save(1)
|
|
||||||
salary_obj=get_obj("Salary Slip",ss.name,with_children=1)
|
|
||||||
salary_obj.process_payroll_all()
|
|
||||||
sal_slip_str += "<br/>"+ss.name
|
|
||||||
|
|
||||||
else:
|
|
||||||
|
|
||||||
msgprint("For Process Payroll Fiscal Year, Month, Year fields are mandatory.")
|
|
||||||
if not sal_slip_str:
|
|
||||||
|
|
||||||
sal_slip_str = "No record found."
|
|
||||||
return cstr(sal_slip_str)
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
def submit_sal_slip(self):
|
|
||||||
|
|
||||||
sal_slip_str = ''
|
|
||||||
r = sql("select name from `tabSalary Slip` where month='%s' and year = '%s' and fiscal_year = '%s' and docstatus = 0"%(self.doc.month,self.doc.year,self.doc.fiscal_year))
|
|
||||||
|
|
||||||
|
|
||||||
ret = sql("update `tabSalary Slip` set docstatus = 1 where month='%s' and year = '%s' and fiscal_year = '%s' and docstatus = 0"%(self.doc.month,self.doc.year,self.doc.fiscal_year))
|
|
||||||
if r:
|
|
||||||
sal_slip_str += 'Sucessfully updated following salary slips:'
|
|
||||||
for i in r:
|
|
||||||
|
|
||||||
salary_obj=get_obj("Salary Slip",i[0],with_children=1)
|
|
||||||
salary_obj.on_submit()
|
|
||||||
sal_slip_str += "<br/>"+cstr(i[0])
|
|
||||||
if not sal_slip_str:
|
|
||||||
|
|
||||||
sal_slip_str = "No record found."
|
|
||||||
return cstr(sal_slip_str)
|
|
||||||
|
|
||||||
# **********************************************************************
|
|
||||||
#get default bank account,default salary acount from company.
|
|
||||||
def get_acct_dtl(self):
|
|
||||||
res = sql("select default_bank_account,default_salary_acount from `tabCompany` where name = '%s'"%get_defaults()['company'], as_dict=1)
|
|
||||||
return res[0]
|
|
@ -5,14 +5,14 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-12-14 16:50:05',
|
'creation': '2010-12-14 16:50:05',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-06-27 14:39:11',
|
'modified': '2011-08-11 16:56:38',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1308808105',
|
'_last_update': '1311621379',
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'module': 'HR',
|
'module': 'HR',
|
||||||
@ -21,7 +21,7 @@
|
|||||||
'server_code_error': ' ',
|
'server_code_error': ' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'subject': 'For %(employee_name)s',
|
'subject': 'For %(employee_name)s',
|
||||||
'version': 586
|
'version': 587
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -39,7 +39,8 @@
|
|||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Salary Structure',
|
'parent': 'Salary Structure',
|
||||||
'parentfield': 'permissions',
|
'parentfield': 'permissions',
|
||||||
'parenttype': 'DocType'
|
'parenttype': 'DocType',
|
||||||
|
'read': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Salary Structure
|
# DocType, Salary Structure
|
||||||
@ -54,9 +55,9 @@
|
|||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'match': 'owner',
|
'idx': 1,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'read': 1,
|
'role': 'Employee',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -66,97 +67,40 @@
|
|||||||
'amend': 0,
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'match': 'owner',
|
|
||||||
'permlevel': 0,
|
|
||||||
'read': 1,
|
|
||||||
'submit': 0,
|
|
||||||
'write': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'amend': 0,
|
|
||||||
'cancel': 0,
|
|
||||||
'create': 0,
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'match': 'owner',
|
|
||||||
'permlevel': 0,
|
|
||||||
'read': 1,
|
|
||||||
'submit': 0,
|
|
||||||
'write': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'amend': 0,
|
|
||||||
'cancel': 0,
|
|
||||||
'create': 0,
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'match': 'owner',
|
|
||||||
'permlevel': 0,
|
|
||||||
'read': 1,
|
|
||||||
'submit': 0,
|
|
||||||
'write': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'permlevel': 0,
|
|
||||||
'role': 'Sales User'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 2,
|
'idx': 2,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'read': 1,
|
|
||||||
'role': 'All',
|
'role': 'All',
|
||||||
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'create': 1,
|
'amend': 0,
|
||||||
|
'cancel': 0,
|
||||||
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 3,
|
'idx': 3,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'read': 1,
|
|
||||||
'role': 'HR User',
|
'role': 'HR User',
|
||||||
'write': 1
|
'submit': 0,
|
||||||
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
|
'amend': 1,
|
||||||
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 4,
|
'idx': 4,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'read': 1,
|
|
||||||
'role': 'HR Manager',
|
'role': 'HR Manager',
|
||||||
|
'submit': 1,
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 5,
|
|
||||||
'permlevel': 1,
|
|
||||||
'read': 1,
|
|
||||||
'role': 'HR Manager'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 6,
|
|
||||||
'permlevel': 1,
|
|
||||||
'read': 1,
|
|
||||||
'role': 'HR User'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
|
8
knowledge_base/doctype/question/question.py
Normal file
8
knowledge_base/doctype/question/question.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
class DocType:
|
||||||
|
def __init__(self, d, dl):
|
||||||
|
self.doc, self.doclist = d, dl
|
||||||
|
|
||||||
|
def on_trash(self):
|
||||||
|
import webnotes
|
||||||
|
webnotes.conn.sql("delete from tabAnswer where question=%s", self.doc.name)
|
||||||
|
|
@ -19,12 +19,25 @@ KBItemToolbar = function(args, kb) {
|
|||||||
this.line1.innerHTML = repl('By %(name)s | %(when)s', {
|
this.line1.innerHTML = repl('By %(name)s | %(when)s', {
|
||||||
name: wn.utils.full_name(this.det.first_name, this.det.last_name),
|
name: wn.utils.full_name(this.det.first_name, this.det.last_name),
|
||||||
when: wn.datetime.comment_when(this.det.modified)
|
when: wn.datetime.comment_when(this.det.modified)
|
||||||
})
|
});
|
||||||
|
|
||||||
|
// allow system manager to delete questions / answers
|
||||||
|
if(has_common(user_roles, ['Administrator', 'System Manager'])) {
|
||||||
|
this.line1.innerHTML += ' | '
|
||||||
|
$ln(this.line1, 'delete', me.del);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.make_vote = function() {
|
this.make_vote = function() {
|
||||||
new KBPoints(this.line2, this.det.points, this.det._users_voted, this.doctype, this.det.name, this.det.owner);
|
new KBPoints(this.line2, this.det.points, this.det._users_voted, this.doctype, this.det.name, this.det.owner);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.del = function() {
|
||||||
|
this.innerHTML = 'deleting...'; this.disabled = 1;
|
||||||
|
$c_page('knowledge_base', 'questions', 'delete', {dt:me.doctype, dn:me.det.name}, function(r,rt) {
|
||||||
|
// reload the list
|
||||||
|
kb.list.run()
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.make_tags = function() {
|
this.make_tags = function() {
|
||||||
|
@ -128,7 +128,7 @@ KBAnswerList = function(args) {
|
|||||||
as_dict: 1,
|
as_dict: 1,
|
||||||
no_results_message: 'No answers yet, be the first one to answer!',
|
no_results_message: 'No answers yet, be the first one to answer!',
|
||||||
render_row: function(body, data) {
|
render_row: function(body, data) {
|
||||||
new KBAnswer(body, data)
|
new KBAnswer(body, data, me)
|
||||||
},
|
},
|
||||||
get_query: function() {
|
get_query: function() {
|
||||||
return repl("SELECT t1.name, t1.owner, t1.answer, t1.points, t1._users_voted, t2.first_name, "
|
return repl("SELECT t1.name, t1.owner, t1.answer, t1.points, t1._users_voted, t2.first_name, "
|
||||||
@ -150,7 +150,7 @@ KBAnswerList = function(args) {
|
|||||||
// answer
|
// answer
|
||||||
// by xxx | on xxx
|
// by xxx | on xxx
|
||||||
// points yyy
|
// points yyy
|
||||||
KBAnswer = function(body, data) {
|
KBAnswer = function(body, data, ans_list) {
|
||||||
body.className = 'qv-answer';
|
body.className = 'qv-answer';
|
||||||
new EditableText({
|
new EditableText({
|
||||||
parent: body,
|
parent: body,
|
||||||
@ -169,7 +169,7 @@ KBAnswer = function(body, data) {
|
|||||||
det: data,
|
det: data,
|
||||||
with_tags: 0,
|
with_tags: 0,
|
||||||
doctype: 'Answer'
|
doctype: 'Answer'
|
||||||
}, null)
|
}, ans_list)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,3 +35,11 @@ def vote(arg):
|
|||||||
(p, cstr(res[1]) + ',' + webnotes.user.name, args['dn']))
|
(p, cstr(res[1]) + ',' + webnotes.user.name, args['dn']))
|
||||||
|
|
||||||
return p
|
return p
|
||||||
|
|
||||||
|
def delete(arg):
|
||||||
|
"""
|
||||||
|
delete a question or answer (called from kb toolbar)
|
||||||
|
"""
|
||||||
|
args = load_json(arg)
|
||||||
|
from webnotes.model import delete_doc
|
||||||
|
delete_doc(args['dt'], args['dn'])
|
BIN
master.sql.gz
BIN
master.sql.gz
Binary file not shown.
1180
patches/old_patches/patch_1.py
Normal file
1180
patches/old_patches/patch_1.py
Normal file
File diff suppressed because it is too large
Load Diff
1253
patches/patch.py
1253
patches/patch.py
File diff suppressed because it is too large
Load Diff
@ -45,35 +45,10 @@
|
|||||||
'name': 'Production Forecast-Production Plan'
|
'name': 'Production Forecast-Production Plan'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'prevdoc_reqd_qty'
|
'to_field': 'prevdoc_reqd_qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -81,7 +56,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'against_document'
|
'to_field': 'against_document'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -89,7 +63,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'document_no'
|
'to_field': 'document_no'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -97,7 +70,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'start_date',
|
'from_field': 'start_date',
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'document_date'
|
'to_field': 'document_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -105,7 +77,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'end_date',
|
'from_field': 'end_date',
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'confirmation_date'
|
'to_field': 'confirmation_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -113,7 +84,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Production Forecast',
|
'from_table': 'Production Forecast',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Production Plan',
|
'to_table': 'Production Plan',
|
||||||
'validation_logic': 'docstatus =1'
|
'validation_logic': 'docstatus =1'
|
||||||
@ -124,7 +94,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'pf_details',
|
'from_field': 'pf_details',
|
||||||
'from_table': 'PF Detail',
|
'from_table': 'PF Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'pp_details',
|
'to_field': 'pp_details',
|
||||||
'to_table': 'PP Detail',
|
'to_table': 'PP Detail',
|
||||||
|
@ -45,35 +45,10 @@
|
|||||||
'name': 'Production Forecast-Production Planning Tool'
|
'name': 'Production Forecast-Production Planning Tool'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'prevdoc_reqd_qty'
|
'to_field': 'prevdoc_reqd_qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -81,7 +56,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'source_doctype'
|
'to_field': 'source_doctype'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -89,7 +63,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'source_docname'
|
'to_field': 'source_docname'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -97,7 +70,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'end_date',
|
'from_field': 'end_date',
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'confirmation_date'
|
'to_field': 'confirmation_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -105,7 +77,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Production Forecast',
|
'from_table': 'Production Forecast',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Production Planning Tool',
|
'to_table': 'Production Planning Tool',
|
||||||
'validation_logic': 'docstatus =1'
|
'validation_logic': 'docstatus =1'
|
||||||
@ -116,7 +87,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'pf_details',
|
'from_field': 'pf_details',
|
||||||
'from_table': 'PF Detail',
|
'from_table': 'PF Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'pp_details',
|
'to_field': 'pp_details',
|
||||||
'to_table': 'PP Detail',
|
'to_table': 'PP Detail',
|
||||||
|
@ -50,7 +50,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'against_document'
|
'to_field': 'against_document'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -58,31 +57,13 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'document_no'
|
'to_field': 'document_no'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'uom',
|
'from_field': 'uom',
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'stock_uom'
|
'to_field': 'stock_uom'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -90,7 +71,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
'from_field': 'eval:flt(obj.qty)-flt(obj.planned_qty)',
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'prevdoc_total_qty'
|
'to_field': 'prevdoc_total_qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -98,23 +78,13 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'transaction_date',
|
'from_field': 'transaction_date',
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'document_date'
|
'to_field': 'document_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'delivery_date',
|
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'delivery_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Sales Order',
|
'from_table': 'Sales Order',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Production Plan',
|
'to_table': 'Production Plan',
|
||||||
'validation_logic': 'docstatus =1'
|
'validation_logic': 'docstatus =1'
|
||||||
@ -125,7 +95,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'packing_details',
|
'from_field': 'packing_details',
|
||||||
'from_table': 'Delivery Note Packing Detail',
|
'from_table': 'Delivery Note Packing Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'pp_details',
|
'to_field': 'pp_details',
|
||||||
'to_table': 'PP Detail',
|
'to_table': 'PP Detail',
|
||||||
|
@ -5,13 +5,14 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:14',
|
'creation': '2010-08-08 17:09:14',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2010-12-23 11:08:12',
|
'modified': '2011-08-31 10:03:21',
|
||||||
'modified_by': 'umair@iwebnotes.com',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
|
'_last_update': '1313485457',
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'in_create': 0,
|
'in_create': 0,
|
||||||
@ -20,7 +21,7 @@
|
|||||||
'section_style': 'Tabbed',
|
'section_style': 'Tabbed',
|
||||||
'server_code_error': ' ',
|
'server_code_error': ' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 179
|
'version': 180
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -54,7 +55,6 @@
|
|||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 1,
|
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'System Manager',
|
'role': 'System Manager',
|
||||||
'submit': 1,
|
'submit': 1,
|
||||||
@ -64,7 +64,6 @@
|
|||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 2,
|
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'All'
|
'role': 'All'
|
||||||
},
|
},
|
||||||
@ -75,7 +74,6 @@
|
|||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 3,
|
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Production Manager',
|
'role': 'Production Manager',
|
||||||
'submit': 1,
|
'submit': 1,
|
||||||
@ -88,7 +86,6 @@
|
|||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 4,
|
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Production User',
|
'role': 'Production User',
|
||||||
'submit': 1,
|
'submit': 1,
|
||||||
@ -99,7 +96,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 1,
|
|
||||||
'label': 'Production Order',
|
'label': 'Production Order',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -112,7 +108,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'transaction_date',
|
'fieldname': 'transaction_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 2,
|
|
||||||
'label': 'Transaction Date',
|
'label': 'Transaction Date',
|
||||||
'oldfieldname': 'transaction_date',
|
'oldfieldname': 'transaction_date',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -127,7 +122,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'posting_date',
|
'fieldname': 'posting_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 3,
|
|
||||||
'label': 'Posting Date',
|
'label': 'Posting Date',
|
||||||
'oldfieldname': 'posting_date',
|
'oldfieldname': 'posting_date',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -142,7 +136,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'production_item',
|
'fieldname': 'production_item',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 4,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Production Item',
|
'label': 'Production Item',
|
||||||
'oldfieldname': 'production_item',
|
'oldfieldname': 'production_item',
|
||||||
@ -158,7 +151,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'description',
|
'fieldname': 'description',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': 'Text',
|
||||||
'idx': 5,
|
|
||||||
'label': 'Description',
|
'label': 'Description',
|
||||||
'oldfieldname': 'description',
|
'oldfieldname': 'description',
|
||||||
'oldfieldtype': 'Text',
|
'oldfieldtype': 'Text',
|
||||||
@ -173,14 +165,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'bom_no',
|
'fieldname': 'bom_no',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 7,
|
|
||||||
'label': 'BOM No',
|
'label': 'BOM No',
|
||||||
'oldfieldname': 'bom_no',
|
'oldfieldname': 'bom_no',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Bill Of Materials',
|
'options': 'Bill Of Materials',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'reqd': 1,
|
'reqd': 1,
|
||||||
'search_index': 0,
|
|
||||||
'trigger': 'Client'
|
'trigger': 'Client'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -189,7 +179,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'origin',
|
'fieldname': 'origin',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 8,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Origin',
|
'label': 'Origin',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
@ -207,7 +196,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'qty',
|
'fieldname': 'qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 9,
|
|
||||||
'label': 'Qty',
|
'label': 'Qty',
|
||||||
'oldfieldname': 'qty',
|
'oldfieldname': 'qty',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -221,7 +209,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'project_name',
|
'fieldname': 'project_name',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 9,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Project Name',
|
'label': 'Project Name',
|
||||||
'oldfieldname': 'project_name',
|
'oldfieldname': 'project_name',
|
||||||
@ -236,7 +223,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'amended_from',
|
'fieldname': 'amended_from',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 10,
|
|
||||||
'label': 'Amended From',
|
'label': 'Amended From',
|
||||||
'oldfieldname': 'amended_from',
|
'oldfieldname': 'amended_from',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -248,7 +234,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'amendment_date',
|
'fieldname': 'amendment_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 11,
|
|
||||||
'label': 'Amendment Date',
|
'label': 'Amendment Date',
|
||||||
'oldfieldname': 'amendment_date',
|
'oldfieldname': 'amendment_date',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
@ -259,7 +244,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 12,
|
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -269,7 +253,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'stock_uom',
|
'fieldname': 'stock_uom',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 12,
|
|
||||||
'label': 'Stock UOM',
|
'label': 'Stock UOM',
|
||||||
'oldfieldname': 'stock_uom',
|
'oldfieldname': 'stock_uom',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -281,7 +264,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'status',
|
'fieldname': 'status',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 13,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Status',
|
'label': 'Status',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
@ -300,15 +282,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'fg_warehouse',
|
'fieldname': 'fg_warehouse',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 14,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'FG Warehouse',
|
'label': 'FG Warehouse',
|
||||||
'oldfieldname': 'fg_warehouse',
|
'oldfieldname': 'fg_warehouse',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Warehouse',
|
'options': 'Warehouse',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -318,15 +298,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'wip_warehouse',
|
'fieldname': 'wip_warehouse',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 15,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'WIP Warehouse',
|
'label': 'WIP Warehouse',
|
||||||
'oldfieldname': 'wip_warehouse',
|
'oldfieldname': 'wip_warehouse',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Warehouse',
|
'options': 'Warehouse',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -336,7 +314,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'consider_sa_items',
|
'fieldname': 'consider_sa_items',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 16,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Consider SA Items',
|
'label': 'Consider SA Items',
|
||||||
'oldfieldname': 'consider_sa_items',
|
'oldfieldname': 'consider_sa_items',
|
||||||
@ -349,11 +326,11 @@
|
|||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Updated after finished goods are transferred to FG Warehouse through Stock Entry',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'produced_qty',
|
'fieldname': 'produced_qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 18,
|
'label': 'Produced Qty',
|
||||||
'label': 'Produced Qty (Updated after finished goods are transferred to FG Warehouse through Stock Entry)',
|
|
||||||
'oldfieldname': 'produced_qty',
|
'oldfieldname': 'produced_qty',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
@ -364,14 +341,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'company',
|
'fieldname': 'company',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 19,
|
|
||||||
'label': 'Company',
|
'label': 'Company',
|
||||||
'oldfieldname': 'company',
|
'oldfieldname': 'company',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Company',
|
'options': 'Company',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -379,7 +354,6 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'fiscal_year',
|
'fieldname': 'fiscal_year',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 20,
|
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Fiscal Year',
|
'label': 'Fiscal Year',
|
||||||
'oldfieldname': 'fiscal_year',
|
'oldfieldname': 'fiscal_year',
|
||||||
@ -393,7 +367,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 21,
|
|
||||||
'label': 'Next Steps',
|
'label': 'Next Steps',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -405,7 +378,6 @@
|
|||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 22,
|
|
||||||
'label': 'Material Transfer',
|
'label': 'Material Transfer',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -416,7 +388,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 23,
|
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -427,7 +398,6 @@
|
|||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 24,
|
|
||||||
'label': 'Backflush',
|
'label': 'Backflush',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -438,7 +408,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 25,
|
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -449,7 +418,6 @@
|
|||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 26,
|
|
||||||
'label': 'Stop Production Order',
|
'label': 'Stop Production Order',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
@ -462,7 +430,6 @@
|
|||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 27,
|
|
||||||
'label': 'Unstop Production Order',
|
'label': 'Unstop Production Order',
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:34',
|
'creation': '2010-08-08 17:09:34',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-17 11:42:57',
|
'modified': '2011-05-17 11:42:57',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -50,116 +50,23 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer',
|
'from_field': 'customer',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer'
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'delivery_note_no'
|
'to_field': 'delivery_note_no'
|
||||||
},
|
},
|
||||||
@ -168,7 +75,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_detail_docname'
|
'to_field': 'prevdoc_detail_docname'
|
||||||
},
|
},
|
||||||
@ -177,7 +83,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -186,52 +91,22 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.installed_qty)',
|
'from_field': 'eval: flt(obj.qty) - flt(obj.installed_qty)',
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'serial_no',
|
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'serial_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'posting_date',
|
'from_field': 'posting_date',
|
||||||
'idx': 21,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'prevdoc_date'
|
'to_field': 'prevdoc_date'
|
||||||
},
|
},
|
||||||
@ -241,7 +116,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'delivery_note_details',
|
'from_field': 'delivery_note_details',
|
||||||
'from_table': 'Delivery Note Detail',
|
'from_table': 'Delivery Note Detail',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'installed_item_details',
|
'to_field': 'installed_item_details',
|
||||||
'to_table': 'Installed Item Details',
|
'to_table': 'Installed Item Details',
|
||||||
@ -252,7 +126,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Delivery Note',
|
'from_table': 'Delivery Note',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Installation Note',
|
'to_table': 'Installation Note',
|
||||||
'validation_logic': 'docstatus = 1'
|
'validation_logic': 'docstatus = 1'
|
||||||
@ -262,7 +135,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Delivery Note',
|
'from_table': 'Delivery Note',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:34',
|
'creation': '2010-08-08 17:09:34',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-10 16:04:40',
|
'modified': '2011-05-10 16:04:40',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -46,182 +46,26 @@
|
|||||||
'name': 'Enquiry-Quotation'
|
'name': 'Enquiry-Quotation'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'qty',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'uom',
|
'from_field': 'uom',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'stock_uom'
|
'to_field': 'stock_uom'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'enq_no'
|
'to_field': 'enq_no'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -230,34 +74,14 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'lead',
|
|
||||||
'idx': 22,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'lead'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'lead_name',
|
|
||||||
'idx': 23,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'lead_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'enquiry_from',
|
'from_field': 'enquiry_from',
|
||||||
'idx': 24,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'quotation_to'
|
'to_field': 'quotation_to'
|
||||||
},
|
},
|
||||||
@ -266,7 +90,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'enquiry_type',
|
'from_field': 'enquiry_type',
|
||||||
'idx': 25,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'order_type'
|
'to_field': 'order_type'
|
||||||
},
|
},
|
||||||
@ -275,7 +98,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Enquiry',
|
'from_table': 'Enquiry',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Quotation'
|
'to_table': 'Quotation'
|
||||||
},
|
},
|
||||||
@ -285,7 +107,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'enq_details',
|
'from_field': 'enq_details',
|
||||||
'from_table': 'Enquiry Detail',
|
'from_table': 'Enquiry Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'quotation_details',
|
'to_field': 'quotation_details',
|
||||||
'to_table': 'Quotation Detail'
|
'to_table': 'Quotation Detail'
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Lead',
|
'from_table': 'Lead',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Lead-Customer',
|
'parent': 'Lead-Customer',
|
||||||
@ -54,7 +53,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'lead_name'
|
'to_field': 'lead_name'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -62,79 +60,13 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company_name',
|
'from_field': 'company_name',
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'customer_name'
|
'to_field': 'customer_name'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_line1',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'address_line1'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_line2',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'address_line2'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'city',
|
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'city'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'country',
|
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'country'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'state',
|
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'state'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'pincode',
|
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'pincode'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 9,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 10,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'contact_no',
|
'from_field': 'contact_no',
|
||||||
'idx': 11,
|
|
||||||
'to_field': 'phone_1'
|
'to_field': 'phone_1'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -142,18 +74,9 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'fax',
|
'from_field': 'fax',
|
||||||
'idx': 12,
|
|
||||||
'to_field': 'fax_1'
|
'to_field': 'fax_1'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'website',
|
|
||||||
'idx': 13,
|
|
||||||
'to_field': 'website'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail'
|
'doctype': 'Table Mapper Detail'
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Lead',
|
'from_table': 'Lead',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Lead-Enquiry',
|
'parent': 'Lead-Enquiry',
|
||||||
@ -50,110 +49,27 @@
|
|||||||
'name': 'Lead-Enquiry'
|
'name': 'Lead-Enquiry'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'campaign_name',
|
'from_field': 'campaign_name',
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'campaign'
|
'to_field': 'campaign'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_by',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'contact_by'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'last_contact_date',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'last_contact_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_date_ref',
|
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'contact_date_ref'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_date',
|
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'contact_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'doctype',
|
'from_field': 'doctype',
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'enquiry_from'
|
'to_field': 'enquiry_from'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'lead_name',
|
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'lead_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 9,
|
|
||||||
'to_field': 'lead'
|
'to_field': 'lead'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address',
|
|
||||||
'idx': 10,
|
|
||||||
'to_field': 'address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_no',
|
|
||||||
'idx': 11,
|
|
||||||
'to_field': 'contact_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'email_id',
|
|
||||||
'idx': 12,
|
|
||||||
'to_field': 'email_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 13,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail'
|
'doctype': 'Table Mapper Detail'
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Project',
|
'from_table': 'Project',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Sales Order',
|
'parent': 'Project-Sales Order',
|
||||||
@ -26,13 +25,16 @@
|
|||||||
|
|
||||||
# These values are common for all Field Mapper Detail
|
# These values are common for all Field Mapper Detail
|
||||||
{
|
{
|
||||||
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
|
'from_field': 'customer',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Sales Order',
|
'parent': 'Project-Sales Order',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
'parenttype': 'DocType Mapper'
|
'parenttype': 'DocType Mapper',
|
||||||
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType Mapper
|
# These values are common for all DocType Mapper
|
||||||
@ -52,67 +54,7 @@
|
|||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'doctype': 'Field Mapper Detail'
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_no',
|
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'contact_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'email_id',
|
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'email_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:35',
|
'creation': '2010-08-08 17:09:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-17 12:55:58',
|
'modified': '2011-08-25 18:25:02',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -49,48 +49,34 @@
|
|||||||
'checking_operator': '>=',
|
'checking_operator': '>=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'transaction_date',
|
'from_field': 'transaction_date',
|
||||||
'idx': 1,
|
|
||||||
'map': 'No',
|
'map': 'No',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'transaction_date'
|
'to_field': 'transaction_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'order_type',
|
|
||||||
'idx': 2,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'order_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'name',
|
|
||||||
'idx': 3,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'quotation_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'transaction_date',
|
'from_field': 'transaction_date',
|
||||||
'idx': 4,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'quotation_date'
|
'to_field': 'quotation_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# Field Mapper Detail
|
||||||
|
{
|
||||||
|
'doctype': 'Field Mapper Detail',
|
||||||
|
'from_field': 'name',
|
||||||
|
'map': 'Yes',
|
||||||
|
'match_id': 0,
|
||||||
|
'to_field': 'quotation_no'
|
||||||
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 5,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
@ -101,147 +87,15 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'fiscal_year',
|
'from_field': 'fiscal_year',
|
||||||
'idx': 6,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'fiscal_year'
|
'to_field': 'fiscal_year'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'price_list_name',
|
|
||||||
'idx': 7,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'price_list_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 8,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 9,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 10,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 11,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 12,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 14,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 15,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 16,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 17,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 18,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 19,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge',
|
|
||||||
'idx': 20,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'charge'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 21,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
@ -250,411 +104,10 @@
|
|||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'adj_rate',
|
'from_field': 'naming_series',
|
||||||
'idx': 22,
|
'map': 'No',
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'adj_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'basic_rate',
|
|
||||||
'idx': 23,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'basic_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'amount',
|
|
||||||
'idx': 24,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 25,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'ref_rate',
|
|
||||||
'idx': 26,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'base_ref_rate',
|
|
||||||
'idx': 27,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'base_ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 28,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'qty',
|
|
||||||
'idx': 29,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'qty'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 30,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 31,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 32,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 33,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 34,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_amount',
|
|
||||||
'idx': 35,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 36,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_total',
|
|
||||||
'idx': 37,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'net_total'
|
'to_field': 'naming_series'
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'other_charges_total',
|
|
||||||
'idx': 38,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'other_charges_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total',
|
|
||||||
'idx': 39,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total',
|
|
||||||
'idx': 40,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words',
|
|
||||||
'idx': 41,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total_export',
|
|
||||||
'idx': 42,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total_export',
|
|
||||||
'idx': 43,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words_export',
|
|
||||||
'idx': 44,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 45,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 46,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 47,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 48,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 49,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 50,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tax_amount',
|
|
||||||
'idx': 51,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total',
|
|
||||||
'idx': 52,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'idx',
|
|
||||||
'idx': 53,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'idx'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_person',
|
|
||||||
'idx': 54,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_percentage',
|
|
||||||
'idx': 55,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_percentage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_amount',
|
|
||||||
'idx': 56,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 57,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tc_name',
|
|
||||||
'idx': 57,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'tc_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 57,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 58,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 59,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 60,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
@ -662,7 +115,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_team',
|
'from_field': 'sales_team',
|
||||||
'from_table': 'Sales Team',
|
'from_table': 'Sales Team',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 3,
|
'match_id': 3,
|
||||||
'to_field': 'sales_team',
|
'to_field': 'sales_team',
|
||||||
'to_table': 'Sales Team',
|
'to_table': 'Sales Team',
|
||||||
@ -674,7 +126,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'other_charges',
|
'from_field': 'other_charges',
|
||||||
'from_table': 'RV Tax Detail',
|
'from_table': 'RV Tax Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'other_charges',
|
'to_field': 'other_charges',
|
||||||
'to_table': 'RV Tax Detail',
|
'to_table': 'RV Tax Detail',
|
||||||
@ -686,7 +137,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'quotation_details',
|
'from_field': 'quotation_details',
|
||||||
'from_table': 'Quotation Detail',
|
'from_table': 'Quotation Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'to_field': 'sales_order_details',
|
'to_field': 'sales_order_details',
|
||||||
@ -698,7 +148,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Quotation',
|
'from_table': 'Quotation',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
'to_table': 'Sales Order',
|
'to_table': 'Sales Order',
|
||||||
|
@ -308,3 +308,35 @@ cur_frm.cscript.quot_to_validate = function(doc,cdt,cdn){
|
|||||||
cur_frm.cscript.validate = function(doc,cdt,cdn){
|
cur_frm.cscript.validate = function(doc,cdt,cdn){
|
||||||
cur_frm.cscript.quot_to_validate(doc,cdt,cdn);
|
cur_frm.cscript.quot_to_validate(doc,cdt,cdn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//================ Last Quoted Price and Last Sold Price suggestion ======================
|
||||||
|
cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= function(doc, cdt, cdn) {
|
||||||
|
var d = locals[cdt][cdn];
|
||||||
|
if(doc.customer)
|
||||||
|
return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate FROM\
|
||||||
|
(\
|
||||||
|
select item_code,name from tabItem where tabItem.%(key)s like '%s'\
|
||||||
|
)i\
|
||||||
|
left join\
|
||||||
|
(\
|
||||||
|
select q.item_code,q.quote_rate from\
|
||||||
|
(\
|
||||||
|
select q.transaction_date,qd.item_code,basic_rate as quote_rate from `tabQuotation Detail` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s'\
|
||||||
|
)q,\
|
||||||
|
(\
|
||||||
|
select qd.item_code,max(transaction_date) as transaction_date from `tabQuotation Detail` qd, `tabQuotation` q where q.name=qd.parent and q.docstatus=1 and customer='%(cust)s' group by qd.item_code\
|
||||||
|
)m where q.item_code=m.item_code and q.transaction_date=m.transaction_date\
|
||||||
|
)q on i.item_code=q.item_code\
|
||||||
|
left join\
|
||||||
|
(\
|
||||||
|
select r.item_code,r.sales_rate from\
|
||||||
|
(\
|
||||||
|
select r.voucher_date,rd.item_code,basic_rate as sales_rate from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s'\
|
||||||
|
)r,\
|
||||||
|
(\
|
||||||
|
select rd.item_code,max(voucher_date) as voucher_date from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\
|
||||||
|
)m where r.item_code=m.item_code and r.voucher_date=m.voucher_date\
|
||||||
|
)s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer});
|
||||||
|
else
|
||||||
|
return "SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' ORDER BY tabItem.item_code DESC LIMIT 50";
|
||||||
|
}
|
@ -606,12 +606,14 @@ class StatusUpdater:
|
|||||||
select item_code, `%(compare_ref_field)s`, `%(compare_field)s`, parenttype, parent from `tab%(target_dt)s`
|
select item_code, `%(compare_ref_field)s`, `%(compare_field)s`, parenttype, parent from `tab%(target_dt)s`
|
||||||
where `%(compare_ref_field)s` < `%(compare_field)s` and name="%(name)s" and docstatus=1
|
where `%(compare_ref_field)s` < `%(compare_field)s` and name="%(name)s" and docstatus=1
|
||||||
""" % args, as_dict=1)
|
""" % args, as_dict=1)
|
||||||
|
|
||||||
if item:
|
if item:
|
||||||
item = item[0]
|
item = item[0]
|
||||||
item['idx'] = d.idx
|
item['idx'] = d.idx
|
||||||
item['compare_ref_field'] = args['compare_ref_field']
|
item['compare_ref_field'] = args['compare_ref_field']
|
||||||
if no_tolerance:
|
|
||||||
|
if not item[args['compare_ref_field']]:
|
||||||
|
msgprint("As %(compare_ref_field)s for item: %(item_code)s in %(parenttype)s: %(parent)s is zero, system will not check over-delivery or over-billed" % item)
|
||||||
|
elif no_tolerance:
|
||||||
item['reduce_by'] = item[args['compare_field']] - item[args['compare_ref_field']]
|
item['reduce_by'] = item[args['compare_field']] - item[args['compare_ref_field']]
|
||||||
msgprint("""
|
msgprint("""
|
||||||
Row #%(idx)s: Max %(compare_ref_field)s allowed for <b>Item %(item_code)s</b> against
|
Row #%(idx)s: Max %(compare_ref_field)s allowed for <b>Item %(item_code)s</b> against
|
||||||
|
@ -70,7 +70,6 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
|
|||||||
} else {
|
} else {
|
||||||
hide_field(['Repair Sales Order', 'Send SMS', 'message', 'customer_mobile_no'])
|
hide_field(['Repair Sales Order', 'Send SMS', 'message', 'customer_mobile_no'])
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//customer
|
//customer
|
||||||
|
13
setup/doctype/features_setup/features_setup.py
Normal file
13
setup/doctype/features_setup/features_setup.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
class DocType:
|
||||||
|
def __init__(self, d, dl):
|
||||||
|
self.doc, self.doclist = d, dl
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
|
"""
|
||||||
|
update settings in defaults
|
||||||
|
"""
|
||||||
|
from webnotes.model import default_fields
|
||||||
|
from webnotes.utils import set_default
|
||||||
|
for key in self.doc.fields:
|
||||||
|
if key not in default_fields:
|
||||||
|
set_default(key, self.doc.fields[key])
|
288
setup/doctype/features_setup/features_setup.txt
Normal file
288
setup/doctype/features_setup/features_setup.txt
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
# DocType, Features Setup
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2011-08-25 16:53:56',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2011-08-31 15:05:53',
|
||||||
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocType
|
||||||
|
{
|
||||||
|
'_last_update': '1314783102',
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'doctype': 'DocType',
|
||||||
|
'issingle': 1,
|
||||||
|
'module': 'Setup',
|
||||||
|
'name': '__common__',
|
||||||
|
'name_case': 'Title Case',
|
||||||
|
'section_style': 'Simple',
|
||||||
|
'show_in_menu': 1,
|
||||||
|
'version': 16
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'Features Setup',
|
||||||
|
'parentfield': 'fields',
|
||||||
|
'parenttype': 'DocType',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocPerm
|
||||||
|
{
|
||||||
|
'create': 1,
|
||||||
|
'doctype': 'DocPerm',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'Features Setup',
|
||||||
|
'parentfield': 'permissions',
|
||||||
|
'parenttype': 'DocType',
|
||||||
|
'permlevel': 0,
|
||||||
|
'read': 1,
|
||||||
|
'write': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocType, Features Setup
|
||||||
|
{
|
||||||
|
'doctype': 'DocType',
|
||||||
|
'name': 'Features Setup'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocPerm
|
||||||
|
{
|
||||||
|
'doctype': 'DocPerm',
|
||||||
|
'role': 'System Manager'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocPerm
|
||||||
|
{
|
||||||
|
'doctype': 'DocPerm',
|
||||||
|
'role': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Section Break',
|
||||||
|
'label': 'Materials'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'item_searial_nos',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Item Serial Nos'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'item_batch_nos',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Item Batch Nos'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To track brand name in the following documents<br>\nDelivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'brands',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Brands'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': '1. To maintain the customer wise item code and to make them searchable based on their code use this option',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'item_advanced',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Item Advanced'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'packing_details',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Packing Detials'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To get Item Group in details table',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'item_group_in_details',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Item Groups in Details'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Section Break',
|
||||||
|
'label': 'Sales and Purchase'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'exports',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Exports'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'imports',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Imports'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Field available in Delivery Note, Quotation, Receivable Voucher, Sales Order',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'discounts',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Discounts'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To track any installation or commissioning related work after sales',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'after_sales_installations',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'After Sale Installations'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'description': 'Available in \nBill Of Materials, Delivery Note, Payable Voucher, Production Order, Purchase Order, Purchase Receipt, Receivable Voucher, Sales Order, Stock Entry, Timesheet',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'projects',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Projects'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'sales_extras',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Sales Extras'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Section Break',
|
||||||
|
'label': 'Production'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'If you involve in manufacturing activity<br>\nEnables item <b>Is Manufactured</b>',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'manufacturing',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Manufacturing'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'If you follow Quality Inspection<br>\nEnables item QA Required and QA No in Purchase Receipt',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'quality',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Quality'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'To enable <b>Point of Sale</b> features',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'pos',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Point of Sale'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Section Break',
|
||||||
|
'label': 'Miscelleneous'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'page_break',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'Page Break'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldtype': 'Column Break'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'Enables <b>More Info.</b> in all documents',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'more_info',
|
||||||
|
'fieldtype': 'Check',
|
||||||
|
'label': 'More Info'
|
||||||
|
}
|
||||||
|
]
|
41
setup/doctype/update_series/update_series.py
Normal file
41
setup/doctype/update_series/update_series.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Please edit this list and import only required elements
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
|
||||||
|
from webnotes.model import db_exists
|
||||||
|
from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
|
||||||
|
from webnotes.model.doclist import getlist, copy_doclist
|
||||||
|
from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
|
||||||
|
from webnotes import session, form, is_testing, msgprint, errprint
|
||||||
|
|
||||||
|
set = webnotes.conn.set
|
||||||
|
sql = webnotes.conn.sql
|
||||||
|
get_value = webnotes.conn.get_value
|
||||||
|
in_transaction = webnotes.conn.in_transaction
|
||||||
|
convert_to_lists = webnotes.conn.convert_to_lists
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DocType:
|
||||||
|
def __init__(self, doc, doclist=[]):
|
||||||
|
self.doc = doc
|
||||||
|
self.doclist = doclist
|
||||||
|
|
||||||
|
def update_series(self):
|
||||||
|
series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix,as_dict = 1)
|
||||||
|
if series:
|
||||||
|
msgprint("This is going to update Series with Prefix : " + series[0]['name'] + " from Current : " + cstr(series[0]['current']) + " to Current : "+ cstr(self.doc.current))
|
||||||
|
sql("update `tabSeries` set current = '%s' where name = '%s'" % (self.doc.current,series[0]['name']))
|
||||||
|
msgprint("Series Updated Successfully")
|
||||||
|
else:
|
||||||
|
msgprint("Please Check Prefix as there is no such Prefix : "+ self.doc.prefix +" Or Try Insert Button")
|
||||||
|
|
||||||
|
def insert_series(self):
|
||||||
|
#sql("start transaction")
|
||||||
|
series = sql("select name,current from `tabSeries` where name = %s", self.doc.prefix, as_dict = 1)
|
||||||
|
if series:
|
||||||
|
msgprint("Series with Prefix : " + series[0]['name'] + "already in the system . Try Update Button")
|
||||||
|
else:
|
||||||
|
msgprint("This is going to Insert Series with Prefix : " + cstr(self.doc.prefix) + " Current: " + cstr(self.doc.current))
|
||||||
|
sql("insert into `tabSeries` (name,current) values ('%s','%s')" % (self.doc.prefix, self.doc.current))
|
||||||
|
msgprint("Series Inserted Successfully")
|
@ -48,9 +48,8 @@ function startup_setup() {
|
|||||||
if(r.message){
|
if(r.message){
|
||||||
login_file = 'http://' + r.message;
|
login_file = 'http://' + r.message;
|
||||||
}
|
}
|
||||||
else {
|
else if(pscript.is_erpnext_saas) {
|
||||||
|
login_file = 'https://www.erpnext.com';
|
||||||
login_file = 'http://www.erpnext.com';
|
|
||||||
}
|
}
|
||||||
// setup toolbar
|
// setup toolbar
|
||||||
pscript.startup_setup_toolbar();
|
pscript.startup_setup_toolbar();
|
||||||
@ -539,3 +538,183 @@ pscript.set_user_fullname = function(ele,username,get_latest){
|
|||||||
|
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
startup_setup();
|
startup_setup();
|
||||||
|
|
||||||
|
/* features setup "Dictionary", "Script"
|
||||||
|
Dictionary Format
|
||||||
|
'projects': {
|
||||||
|
'Sales Order': {
|
||||||
|
'fields':['project_name'],
|
||||||
|
'sales_order_details':['projected_qty']
|
||||||
|
},
|
||||||
|
'Purchase Order': {
|
||||||
|
'fields':['project_name']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ====================================================================*/
|
||||||
|
pscript.feature_dict = {
|
||||||
|
'projects': {
|
||||||
|
'Bill Of Materials': {'fields':['project_name']},
|
||||||
|
'Delivery Note': {'fields':['project_name']},
|
||||||
|
'Payable Voucher': {'fields':['project_name']},
|
||||||
|
'Production Order': {'fields':['project_name']},
|
||||||
|
'Purchase Order': {'fields':['project_name']},
|
||||||
|
'Purchase Receipt': {'fields':['project_name']},
|
||||||
|
'Receivable Voucher': {'fields':['project_name']},
|
||||||
|
'Sales Order': {'fields':['project_name']},
|
||||||
|
'Stock Entry': {'fields':['project_name']},
|
||||||
|
'Timesheet': {'timesheet_details':['project_name']}
|
||||||
|
},
|
||||||
|
'packing_details': {
|
||||||
|
'Delivery Note': {'fields':['packing_details','print_packing_slip'],'delivery_note_details':['no_of_packs','pack_gross_wt','pack_nett_wt','pack_no','pack_unit']},
|
||||||
|
'Sales Order': {'fields':['packing_details']}
|
||||||
|
},
|
||||||
|
'discounts': {
|
||||||
|
'Delivery Note': {'delivery_note_details':['adj_rate']},
|
||||||
|
'Quotation': {'quotation_details':['adj_rate']},
|
||||||
|
'Receivable Voucher': {'entries':['adj_rate']},
|
||||||
|
'Sales Order': {'sales_order_details':['adj_rate','ref_rate']}
|
||||||
|
},
|
||||||
|
'brands': {
|
||||||
|
'Delivery Note': {'delivery_note_details':['brand']},
|
||||||
|
'Indent': {'indent_details':['brand']},
|
||||||
|
'Item': {'fields':['brand']},
|
||||||
|
'Purchase Order': {'po_details':['brand']},
|
||||||
|
'Payable Voucher': {'entries':['brand']},
|
||||||
|
'Quotation': {'quotation_details':['brand']},
|
||||||
|
'Receivable Voucher': {'entries':['brand']},
|
||||||
|
'Sales BOM': {'fields':['new_item_brand']},
|
||||||
|
'Sales Order': {'sales_order_details':['brand']},
|
||||||
|
'Serial No': {'fields':['brand']}
|
||||||
|
},
|
||||||
|
'after_sales_installations': {
|
||||||
|
'Delivery Note': {'fields':['installation_status','per_installed'],'delivery_note_details':['installed_qty']}
|
||||||
|
},
|
||||||
|
'item_batch_nos': {
|
||||||
|
'Delivery Note': {'delivery_note_details':['batch_no']},
|
||||||
|
'Item': {'fields':['has_batch_no']},
|
||||||
|
'Purchase Receipt': {'purchase_receipt_details':['batch_no']},
|
||||||
|
'QA Inspection Report': {'fields':['batch_no']},
|
||||||
|
'Sales and Pruchase Return Wizard': {'return_details':['batch_no']},
|
||||||
|
'Receivable Voucher': {'entries':['batch_no']},
|
||||||
|
'Stock Entry': {'mtn_details':['batch_no']},
|
||||||
|
'Stock Ledger Entry': {'fields':['batch_no']}
|
||||||
|
},
|
||||||
|
'item_serial_nos': {
|
||||||
|
'Customer Issue': {'fields':['serial_no']},
|
||||||
|
'Delivery Note': {'delivery_note_details':['serial_no'],'packing_details':['serial_no']},
|
||||||
|
'Installation Note': {'installed_item_details':['serial_no']},
|
||||||
|
'Item': {'fields':['has_serial_no']},
|
||||||
|
'Maintenance Schedule': {'item_maintenance_details':['serial_no'],'maintenance_schedule_details':['serial_no']},
|
||||||
|
'Maintenance Visit': {'maintenance_visit_details':['serial_no']},
|
||||||
|
'Purchase Receipt': {'purchase_receipt_details':['serial_no']},
|
||||||
|
'QA Inspection Report': {'fields':['item_serial_no']},
|
||||||
|
'Sales and Pruchase Return Wizard': {'return_details':['serial_no']},
|
||||||
|
'Receivable Voucher': {'entries':['serial_no']},
|
||||||
|
'Stock Entry': {'mtn_details':['serial_no']},
|
||||||
|
'Stock Ledger Entry': {'fields':['serial_no']}
|
||||||
|
},
|
||||||
|
'item_group_in_details': {
|
||||||
|
'Delivery Note': {'delivery_note_details':['item_group']},
|
||||||
|
'Enquiry': {'enquiry_details':['item_group']},
|
||||||
|
'Indent': {'indent_details':['item_group']},
|
||||||
|
'Item': {'fields':['item_group']},
|
||||||
|
'Manage Account': {'fields':['default_item_group']},
|
||||||
|
'Purchase Order': {'po_details':['item_group']},
|
||||||
|
'Purchase Receipt': {'purchase_receipt_details':['item_group']},
|
||||||
|
'Purchase Voucher': {'entries':['item_group']},
|
||||||
|
'Quotation': {'quotation_details':['item_group']},
|
||||||
|
'Receivable Voucher': {'entries':['item_group']},
|
||||||
|
'Sales BOM': {'fields':['serial_no']},
|
||||||
|
'Sales Order': {'sales_order_details':['item_group']},
|
||||||
|
'Serial No': {'fields':['item_group']},
|
||||||
|
'Sales Partner': {'partner_target_details':['item_group']},
|
||||||
|
'Sales Person': {'target_details':['item_group']},
|
||||||
|
'Territory': {'target_details':['item_group']}
|
||||||
|
},
|
||||||
|
'page_break': {
|
||||||
|
'Delivery Note': {'delivery_note_details':['page_break'],'packing_details':['page_break']},
|
||||||
|
'Indent': {'indent_details':['page_break']},
|
||||||
|
'Purchase Order': {'po_details':['page_break']},
|
||||||
|
'Purchase Receipt': {'purchase_receipt_details':['page_break']},
|
||||||
|
'Purchase Voucher': {'entries':['page_break']},
|
||||||
|
'Quotation': {'quotation_details':['page_break']},
|
||||||
|
'Receivable Voucher': {'entries':['page_break']},
|
||||||
|
'Sales Order': {'sales_order_details':['page_break']}
|
||||||
|
},
|
||||||
|
'exports': {
|
||||||
|
'Delivery Note': {'fields':['Note','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate']},
|
||||||
|
'POS Setting': {'fields':['conversion_rate','currency']},
|
||||||
|
'Quotation': {'fields':['Note HTML','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'quotation_details':['base_ref_rate','export_amount','export_rate']},
|
||||||
|
'Receivable Voucher': {'fields':['conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'entries':['base_ref_rate','export_amount','export_rate']},
|
||||||
|
'Item': {'ref_rate_details':['ref_currency']},
|
||||||
|
'Sales BOM': {'fields':['currency']},
|
||||||
|
'Sales Order': {'fields':['Note1','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'sales_order_details':['base_ref_rate','export_amount','export_rate']}
|
||||||
|
},
|
||||||
|
'imports': {
|
||||||
|
'Payable Voucher': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['import_amount','import_rate']},
|
||||||
|
'Purchase Order': {'fields':['Note HTML','conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'po_details':['import_amount','import_rate']},
|
||||||
|
'Purchase Receipt': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'purchase_receipt_details':['import_amount','import_rate']},
|
||||||
|
'Supplier Quotation': {'fields':['conversion_rate','currency']}
|
||||||
|
},
|
||||||
|
'item_advanced': {
|
||||||
|
'Item': {'fields':['item_customer_details']}
|
||||||
|
},
|
||||||
|
'sales_extras': {
|
||||||
|
'Address': {'fields':['sales_partner']},
|
||||||
|
'Contact': {'fields':['sales_partner']},
|
||||||
|
'Customer': {'fields':['sales_team']},
|
||||||
|
'Delivery Note': {'fields':['sales_team','Packing List']},
|
||||||
|
'Item': {'fields':['item_customer_details']},
|
||||||
|
'Receivable Voucher': {'fields':['sales_team']},
|
||||||
|
'Sales Order': {'fields':['sales_team','Packing List']}
|
||||||
|
},
|
||||||
|
'more_info': {
|
||||||
|
'Customer': {'fields':['More Info']},
|
||||||
|
'Delivery Note': {'fields':['More Info']},
|
||||||
|
'Enquiry': {'fields':['More Info']},
|
||||||
|
'Indent': {'fields':['More Info']},
|
||||||
|
'Lead': {'fields':['More Info']},
|
||||||
|
'Payable Voucher': {'fields':['More Info']},
|
||||||
|
'Purchase Order': {'fields':['More Info']},
|
||||||
|
'Purchase Receipt': {'fields':['More Info']},
|
||||||
|
'Quotation': {'fields':['More Info']},
|
||||||
|
'Receivable Voucher': {'fields':['More Info']},
|
||||||
|
'Sales Order': {'fields':['More Info']},
|
||||||
|
'Serial No': {'fields':['More Info']},
|
||||||
|
'Supplier': {'fields':['More Info']}
|
||||||
|
},
|
||||||
|
'quality': {
|
||||||
|
'Item': {'fields':['Item Inspection Criteria','inspection_required']},
|
||||||
|
'Purchase Receipt': {'purchase_receipt_details':['qa_no']}
|
||||||
|
},
|
||||||
|
'manufacturing': {
|
||||||
|
'Item': {'fields':['Manufacturing']}
|
||||||
|
},
|
||||||
|
'pos': {
|
||||||
|
'Receivable Voucher': {'fields':['is_pos']}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).bind('form_refresh', function() {
|
||||||
|
for(sys_feat in sys_defaults)
|
||||||
|
{
|
||||||
|
if(sys_defaults[sys_feat]=='0' && (sys_feat in pscript.feature_dict)) //"Features to hide" exists
|
||||||
|
{
|
||||||
|
if(cur_frm.doc.doctype in pscript.feature_dict[sys_feat])
|
||||||
|
{
|
||||||
|
for(fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype])
|
||||||
|
{
|
||||||
|
if(fort=='fields')
|
||||||
|
hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]);
|
||||||
|
else if(cur_frm.fields_dict[fort])
|
||||||
|
{
|
||||||
|
for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort])
|
||||||
|
cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
msgprint('Grid "'+fort+'" does not exists');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Project',
|
'from_table': 'Project',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Delivery Note',
|
'parent': 'Project-Delivery Note',
|
||||||
@ -26,13 +25,16 @@
|
|||||||
|
|
||||||
# These values are common for all Field Mapper Detail
|
# These values are common for all Field Mapper Detail
|
||||||
{
|
{
|
||||||
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
|
'from_field': 'customer',
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Project-Delivery Note',
|
'parent': 'Project-Delivery Note',
|
||||||
'parentfield': 'field_mapper_details',
|
'parentfield': 'field_mapper_details',
|
||||||
'parenttype': 'DocType Mapper'
|
'parenttype': 'DocType Mapper',
|
||||||
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType Mapper
|
# These values are common for all DocType Mapper
|
||||||
@ -52,67 +54,7 @@
|
|||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'doctype': 'Field Mapper Detail'
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 1,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 2,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 3,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 4,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_no',
|
|
||||||
'idx': 5,
|
|
||||||
'to_field': 'contact_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'email_id',
|
|
||||||
'idx': 6,
|
|
||||||
'to_field': 'email_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 7,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 8,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:35',
|
'creation': '2010-08-08 17:09:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-13 12:42:57',
|
'modified': '2011-05-13 12:42:57',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -50,135 +50,32 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'supplier',
|
'from_field': 'supplier',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'supplier'
|
'to_field': 'supplier'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_address',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'supplier_name',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'supplier_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'currency',
|
'from_field': 'currency',
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'currency'
|
'to_field': 'currency'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'warehouse',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'warehouse'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_factor',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'conversion_factor'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_detail_docname'
|
'to_field': 'prevdoc_detail_docname'
|
||||||
},
|
},
|
||||||
@ -187,7 +84,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -196,53 +92,23 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'uom',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'item_code',
|
'from_field': 'item_code',
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'item_code'
|
'to_field': 'item_code'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) ',
|
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) ',
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'received_qty'
|
'to_field': 'received_qty'
|
||||||
},
|
},
|
||||||
@ -251,7 +117,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) ',
|
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) ',
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
@ -260,197 +125,31 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)',
|
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)',
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'stock_qty'
|
'to_field': 'stock_qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'purchase_rate',
|
|
||||||
'idx': 26,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'purchase_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 28,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'import_rate',
|
|
||||||
'idx': 29,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'import_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)',
|
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)',
|
||||||
'idx': 30,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'import_amount'
|
'to_field': 'import_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'schedule_date',
|
|
||||||
'idx': 31,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'schedule_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)',
|
'from_field': 'eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)',
|
||||||
'idx': 32,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 33,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'category',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'category'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'add_deduct_tax',
|
|
||||||
'idx': 36,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'add_deduct_tax'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 37,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 38,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 40,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 41,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'cost_center',
|
|
||||||
'idx': 42,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'cost_center'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 43,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'project_name',
|
|
||||||
'idx': 44,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'project_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'po_details',
|
'from_field': 'po_details',
|
||||||
'from_table': 'PO Detail',
|
'from_table': 'PO Detail',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'reference_key': 'prevdoc_detail_docname',
|
'reference_key': 'prevdoc_detail_docname',
|
||||||
@ -463,7 +162,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Purchase Order',
|
'from_table': 'Purchase Order',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
'to_table': 'Purchase Receipt',
|
'to_table': 'Purchase Receipt',
|
||||||
@ -475,7 +173,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'purchase_tax_details',
|
'from_field': 'purchase_tax_details',
|
||||||
'from_table': 'Purchase Tax Detail',
|
'from_table': 'Purchase Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'purchase_tax_details',
|
'to_field': 'purchase_tax_details',
|
||||||
'to_table': 'Purchase Tax Detail',
|
'to_table': 'Purchase Tax Detail',
|
||||||
|
@ -45,182 +45,18 @@
|
|||||||
'name': 'Receivable Voucher-Delivery Note'
|
'name': 'Receivable Voucher-Delivery Note'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'currency',
|
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'currency'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'price_list_name',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'price_list_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'charge'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 13,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
|
'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'base_ref_rate',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'base_ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'ref_rate',
|
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'basic_rate',
|
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'basic_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 19,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 20,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -229,7 +65,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 21,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
@ -238,25 +73,14 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 22,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_detail_docname'
|
'to_field': 'prevdoc_detail_docname'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 23,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
|
||||||
'idx': 24,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
},
|
},
|
||||||
@ -265,223 +89,22 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
|
||||||
'idx': 25,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'export_amount'
|
'to_field': 'export_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'adj_rate',
|
|
||||||
'idx': 26,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'adj_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 27,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'warehouse',
|
|
||||||
'idx': 28,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'warehouse'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 29,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 30,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 31,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 32,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 33,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 34,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tax_amount',
|
|
||||||
'idx': 35,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total',
|
|
||||||
'idx': 36,
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_person',
|
|
||||||
'idx': 37,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_percentage',
|
|
||||||
'idx': 38,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_percentage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_amount',
|
|
||||||
'idx': 39,
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 40,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 41,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_partner',
|
|
||||||
'idx': 42,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'sales_partner'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer_address',
|
'from_field': 'customer_address',
|
||||||
'idx': 43,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 44,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'delivery_address'
|
'to_field': 'delivery_address'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_total',
|
|
||||||
'idx': 45,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'net_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total',
|
|
||||||
'idx': 46,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 47,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'project_name',
|
|
||||||
'idx': 48,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'project_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Receivable Voucher',
|
'from_table': 'Receivable Voucher',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Delivery Note',
|
'to_table': 'Delivery Note',
|
||||||
'validation_logic': 'docstatus=1'
|
'validation_logic': 'docstatus=1'
|
||||||
@ -492,7 +115,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'entries',
|
'from_field': 'entries',
|
||||||
'from_table': 'RV Detail',
|
'from_table': 'RV Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'delivery_note_details',
|
'to_field': 'delivery_note_details',
|
||||||
'to_table': 'Delivery Note Detail',
|
'to_table': 'Delivery Note Detail',
|
||||||
@ -504,7 +126,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'other_charges',
|
'from_field': 'other_charges',
|
||||||
'from_table': 'RV Tax Detail',
|
'from_table': 'RV Tax Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'other_charges',
|
'to_field': 'other_charges',
|
||||||
'to_table': 'RV Tax Detail',
|
'to_table': 'RV Tax Detail',
|
||||||
@ -516,7 +137,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_team',
|
'from_field': 'sales_team',
|
||||||
'from_table': 'Sales Team',
|
'from_table': 'Sales Team',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 3,
|
'match_id': 3,
|
||||||
'to_field': 'sales_team',
|
'to_field': 'sales_team',
|
||||||
'to_table': 'Sales Team',
|
'to_table': 'Sales Team',
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:35',
|
'creation': '2010-08-08 17:09:35',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-16 11:48:19',
|
'modified': '2011-05-16 11:48:19',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -49,27 +49,15 @@
|
|||||||
'checking_operator': '>=',
|
'checking_operator': '>=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'transaction_date',
|
'from_field': 'transaction_date',
|
||||||
'idx': 1,
|
|
||||||
'map': 'No',
|
'map': 'No',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'transaction_date'
|
'to_field': 'transaction_date'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'price_list_name',
|
|
||||||
'idx': 2,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'price_list_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 3,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'sales_order_no'
|
'to_field': 'sales_order_no'
|
||||||
@ -80,188 +68,43 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'company',
|
'from_field': 'company',
|
||||||
'idx': 4,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'company'
|
'to_field': 'company'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 5,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'po_date',
|
|
||||||
'idx': 6,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'po_date'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'po_no',
|
|
||||||
'idx': 7,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'po_no'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_partner',
|
|
||||||
'idx': 8,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'sales_partner'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'commission_rate',
|
|
||||||
'idx': 9,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'commission_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total_commission',
|
|
||||||
'idx': 10,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'total_commission'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'currency',
|
'from_field': 'currency',
|
||||||
'idx': 11,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'currency'
|
'to_field': 'currency'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'conversion_rate',
|
|
||||||
'idx': 12,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'conversion_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'shipping_address_name',
|
'from_field': 'shipping_address_name',
|
||||||
'idx': 14,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer_address'
|
'to_field': 'customer_address'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 15,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 16,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'shipping_address',
|
'from_field': 'shipping_address',
|
||||||
'idx': 17,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'address_display'
|
'to_field': 'address_display'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 18,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 19,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 20,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 22,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge',
|
|
||||||
'idx': 23,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'charge'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parent',
|
'from_field': 'parent',
|
||||||
'idx': 24,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
@ -271,7 +114,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'parenttype',
|
'from_field': 'parenttype',
|
||||||
'idx': 25,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
@ -281,118 +123,25 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 26,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_detail_docname'
|
'to_field': 'prevdoc_detail_docname'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'export_rate',
|
|
||||||
'idx': 27,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'export_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)',
|
||||||
'idx': 28,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'export_amount'
|
'to_field': 'export_amount'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 29,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 30,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 31,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_group',
|
|
||||||
'idx': 32,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'stock_uom',
|
|
||||||
'idx': 33,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'stock_uom'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'base_ref_rate',
|
|
||||||
'idx': 34,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'base_ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'ref_rate',
|
|
||||||
'idx': 35,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'ref_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'adj_rate',
|
|
||||||
'idx': 36,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'adj_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'basic_rate',
|
'from_field': 'basic_rate',
|
||||||
'idx': 37,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'basic_rate'
|
'to_field': 'basic_rate'
|
||||||
@ -402,7 +151,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
|
'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)',
|
||||||
'idx': 38,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'qty'
|
'to_field': 'qty'
|
||||||
@ -412,7 +160,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
|
'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)',
|
||||||
'idx': 39,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'amount'
|
'to_field': 'amount'
|
||||||
@ -422,298 +169,25 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'reserved_warehouse',
|
'from_field': 'reserved_warehouse',
|
||||||
'idx': 40,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'warehouse'
|
'to_field': 'warehouse'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_tax_rate',
|
|
||||||
'idx': 41,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_tax_rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'charge_type',
|
|
||||||
'idx': 42,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'charge_type'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'row_id',
|
|
||||||
'idx': 43,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'row_id'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_wise_tax_detail',
|
|
||||||
'idx': 44,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'item_wise_tax_detail'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'description',
|
|
||||||
'idx': 45,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'description'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'account_head',
|
|
||||||
'idx': 46,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'account_head'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rate',
|
|
||||||
'idx': 47,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'rate'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tax_amount',
|
|
||||||
'idx': 48,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'tax_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'total',
|
|
||||||
'idx': 49,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'idx',
|
|
||||||
'idx': 50,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 2,
|
|
||||||
'to_field': 'idx'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'net_total',
|
|
||||||
'idx': 51,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'net_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'other_charges_total',
|
|
||||||
'idx': 52,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'other_charges_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total',
|
|
||||||
'idx': 53,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total',
|
|
||||||
'idx': 54,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words',
|
|
||||||
'idx': 55,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'grand_total_export',
|
|
||||||
'idx': 56,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'grand_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'rounded_total_export',
|
|
||||||
'idx': 57,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'rounded_total_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'in_words_export',
|
|
||||||
'idx': 58,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'in_words_export'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'allocated_amount',
|
'from_field': 'allocated_amount',
|
||||||
'idx': 59,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer_mobile_no'
|
'to_field': 'customer_mobile_no'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_amount',
|
|
||||||
'idx': 60,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_amount'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'allocated_percentage',
|
|
||||||
'idx': 60,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'allocated_percentage'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'sales_person',
|
|
||||||
'idx': 61,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 3,
|
|
||||||
'to_field': 'sales_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'source',
|
|
||||||
'idx': 62,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'source'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'campaign',
|
|
||||||
'idx': 63,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'campaign'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'brand',
|
|
||||||
'idx': 64,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'brand'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'terms',
|
|
||||||
'idx': 65,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'terms'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 66,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'tc_name',
|
|
||||||
'idx': 66,
|
|
||||||
'map': 'Yes',
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'tc_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'project_name',
|
'from_field': 'project_name',
|
||||||
'idx': 67,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'project_name'
|
'to_field': 'project_name'
|
||||||
@ -724,7 +198,6 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer',
|
'from_field': 'customer',
|
||||||
'idx': 70,
|
|
||||||
'map': 'Yes',
|
'map': 'Yes',
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer'
|
'to_field': 'customer'
|
||||||
@ -735,7 +208,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_team',
|
'from_field': 'sales_team',
|
||||||
'from_table': 'Sales Team',
|
'from_table': 'Sales Team',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 3,
|
'match_id': 3,
|
||||||
'to_field': 'sales_team',
|
'to_field': 'sales_team',
|
||||||
'to_table': 'Sales Team',
|
'to_table': 'Sales Team',
|
||||||
@ -747,7 +219,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'other_charges',
|
'from_field': 'other_charges',
|
||||||
'from_table': 'RV Tax Detail',
|
'from_table': 'RV Tax Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 2,
|
'match_id': 2,
|
||||||
'to_field': 'other_charges',
|
'to_field': 'other_charges',
|
||||||
'to_table': 'RV Tax Detail',
|
'to_table': 'RV Tax Detail',
|
||||||
@ -759,7 +230,6 @@
|
|||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_field': 'sales_order_details',
|
'from_field': 'sales_order_details',
|
||||||
'from_table': 'Sales Order Detail',
|
'from_table': 'Sales Order Detail',
|
||||||
'idx': 3,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'reference_key': 'prevdoc_detail_docname',
|
'reference_key': 'prevdoc_detail_docname',
|
||||||
@ -772,7 +242,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'from_table': 'Sales Order',
|
'from_table': 'Sales Order',
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'reference_key': 'prevdoc_docname',
|
'reference_key': 'prevdoc_docname',
|
||||||
'to_table': 'Delivery Note',
|
'to_table': 'Delivery Note',
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
# Print Format, Delivery Note Packing List Wise
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2011-08-18 16:29:14',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2011-08-23 13:24:12',
|
||||||
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Print Format
|
||||||
|
{
|
||||||
|
'doctype': 'Print Format',
|
||||||
|
'html': "<html>\n<head>\n\n<script>\nfunction replaceAll(s,s1,s2){ return s.split(s1).join(s2);}\n\nfunction get_letter_head(){\n var cp = locals['Control Panel']['Control Panel'];\n if(cp.letter_head != 'None') {return cp.letter_head; }\n else{ return ''};\n }\n</script>\n<style>\n.cust_tbl { border-collapse:collapse; }\n.cust_tbl td { border:1px solid #848484; }\n</style>\n</head>\n\n<body>\n<script>\nreplaceAll(doc.print_packing_slip,'[HEADER GOES HERE]',get_letter_head());\n</script>\n</body>\n</html>",
|
||||||
|
'module': 'Stock',
|
||||||
|
'name': '__common__',
|
||||||
|
'standard': 'Yes'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Print Format, Delivery Note Packing List Wise
|
||||||
|
{
|
||||||
|
'doctype': 'Print Format',
|
||||||
|
'name': 'Delivery Note Packing List Wise'
|
||||||
|
}
|
||||||
|
]
|
@ -38,8 +38,12 @@ class DocType:
|
|||||||
|
|
||||||
self.doc.save()
|
self.doc.save()
|
||||||
|
|
||||||
|
|
||||||
# update valuation for post dated entry
|
# update valuation for post dated entry
|
||||||
if actual_qty:
|
if actual_qty:
|
||||||
|
# check actual qty with total number of serial no
|
||||||
|
self.check_qty_with_serial_no()
|
||||||
|
|
||||||
prev_sle = self.get_prev_sle(dt, posting_time, sle_id)
|
prev_sle = self.get_prev_sle(dt, posting_time, sle_id)
|
||||||
cqty = flt(prev_sle.get('bin_aqat', 0))
|
cqty = flt(prev_sle.get('bin_aqat', 0))
|
||||||
# Block if actual qty becomes negative
|
# Block if actual qty becomes negative
|
||||||
@ -48,6 +52,19 @@ class DocType:
|
|||||||
|
|
||||||
self.update_item_valuation(sle_id, dt, posting_time, serial_no, prev_sle)
|
self.update_item_valuation(sle_id, dt, posting_time, serial_no, prev_sle)
|
||||||
|
|
||||||
|
def check_qty_with_serial_no(self):
|
||||||
|
"""
|
||||||
|
check actual qty with total number of serial no in store
|
||||||
|
Temporary validation added on: 18-07-2011
|
||||||
|
"""
|
||||||
|
if sql("select name from `tabItem` where ifnull(has_serial_no, 'No') = 'Yes' and name = '%s'" % self.doc.item_code):
|
||||||
|
sr_count = sql("select count(name) from `tabSerial No` where item_code = '%s' and warehouse = '%s' and status ='In Store' and docstatus != 2" % (self.doc.item_code, self.doc.warehouse))[0][0]
|
||||||
|
if sr_count != self.doc.actual_qty:
|
||||||
|
msg = "Actual Qty(%s) in Bin is mismatched with total number(%s) of serial no in store for item: '%s' and warehouse: '%s'" % (self.doc.actual_qty, sr_count, self.doc.item_code, self.doc.warehouse)
|
||||||
|
if getattr(webnotes.defs,'admin_email_notification',1):
|
||||||
|
sendmail(['developers@iwebnotes.com'], sender='automail@webnotestech.com', subject='Serial No Count vs Bin Actual Qty', parts=[['text/plain', msg]])
|
||||||
|
msgprint(msg, raise_exception=1)
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# get first stock ledger entry
|
# get first stock ledger entry
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
@ -174,6 +174,9 @@ class DocType(TransactionBase):
|
|||||||
self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
|
self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
|
||||||
self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
|
self.doc.in_words_export = sales_com_obj.get_total_in_words(self.doc.currency, self.doc.rounded_total_export)
|
||||||
|
|
||||||
|
# ::::::: Set Net Weight of each Packing
|
||||||
|
self.update_pack_nett_weight()
|
||||||
|
self.print_packing_slip()
|
||||||
# ::::::: Set actual qty for each item in selected warehouse :::::::
|
# ::::::: Set actual qty for each item in selected warehouse :::::::
|
||||||
self.update_current_stock()
|
self.update_current_stock()
|
||||||
# :::::: set DN status :::::::
|
# :::::: set DN status :::::::
|
||||||
@ -182,7 +185,6 @@ class DocType(TransactionBase):
|
|||||||
if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
|
if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
|
||||||
if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'
|
if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'
|
||||||
|
|
||||||
|
|
||||||
# ************** Validate Mandatory *************************
|
# ************** Validate Mandatory *************************
|
||||||
def validate_mandatory(self):
|
def validate_mandatory(self):
|
||||||
# :::::::::: Amendment Date ::::::::::::::
|
# :::::::::: Amendment Date ::::::::::::::
|
||||||
@ -436,3 +438,44 @@ class DocType(TransactionBase):
|
|||||||
# ===========================================
|
# ===========================================
|
||||||
def repair_delivery_note(self):
|
def repair_delivery_note(self):
|
||||||
get_obj('Sales Common', 'Sales Common').repair_curr_doctype_details(self)
|
get_obj('Sales Common', 'Sales Common').repair_curr_doctype_details(self)
|
||||||
|
|
||||||
|
# Packing Slip Related
|
||||||
|
# ==========================================
|
||||||
|
def update_pack_nett_weight(self):
|
||||||
|
for d in getlist(self.doclist, 'delivery_note_details'):
|
||||||
|
if d.item_name:
|
||||||
|
item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name))
|
||||||
|
d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
def print_packing_slip(self):
|
||||||
|
prev_pack='0'
|
||||||
|
sno=0
|
||||||
|
html=''
|
||||||
|
tot_nett_wt,tot_gross_wt=0,0
|
||||||
|
for d in getlist(self.doclist, 'delivery_note_details'):
|
||||||
|
sno=sno+1
|
||||||
|
if sno!=1:#Footer goes here
|
||||||
|
html+='</table><table width="100%"><tr><td>CASE NO</td><td>'+cstr(d.pack_no)+'</td><td>NETT WT</td><td>'+cstr(tot_nett_wt)+'</td><td>CHECKED BY</td><td></td></tr><tr><td>SIZE</td><td></td><td>GROSS WT</td><td>'+cstr(tot_gross_wt)+'</td><td>PACKED BY</td><td></td></tr></table>'
|
||||||
|
if prev_pack!=d.pack_no: #Prepare Header Here
|
||||||
|
#Header code goes here
|
||||||
|
html+='<div align="center">[HEADER GOES HERE]</div><div><center><h2>Packing Slip</h2></center></div> <table width="100%"><tr><td>Order No.</td><td>'+cstr(self.doc.sales_order_no)+'</td><td>Shipping Marks</td><td>'+cstr(d.pack_no)+'</td></tr></table>'
|
||||||
|
html+='<table class="cust_tbl" style="page-break-after:always" width="100%"><tr><td>S.NO.</td><td>QUANTITY</td><td>CS.NO.</td><td>DESCRIPTION</td><td>WEIGHT</td><tr>'
|
||||||
|
sno=0
|
||||||
|
tot_nett_wt,to_gross_wt=flt(d.pack_nett_wt),flt(d.pack_gross_wt)
|
||||||
|
#Body code goes here
|
||||||
|
html+='<tr><td>'+cstr(sno+1)+'</td><td>'+cstr(d.qty)+'</td><td></td><td>'+d.item_code+'</td><td>'+cstr(d.pack_nett_wt)+'</td></tr>'
|
||||||
|
prev_pack=d.pack_no
|
||||||
|
tot_nett_wt+=flt(d.pack_nett_wt)
|
||||||
|
tot_gross_wt+=flt(d.pack_gross_wt)
|
||||||
|
html+='</html>'
|
||||||
|
self.doc.print_packing_slip=html
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,14 +5,23 @@
|
|||||||
{
|
{
|
||||||
'creation': '2011-04-18 15:58:20',
|
'creation': '2011-04-18 15:58:20',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-08-09 17:10:45',
|
'modified': '2011-08-23 15:26:57',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'Delivery Note',
|
||||||
|
'parentfield': 'fields',
|
||||||
|
'parenttype': 'DocType'
|
||||||
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1311621379',
|
'_last_update': '1313665263',
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'document_type': 'Transaction',
|
'document_type': 'Transaction',
|
||||||
@ -27,15 +36,16 @@
|
|||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed',
|
'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed',
|
||||||
'tag_fields': 'billing_status',
|
'tag_fields': 'billing_status',
|
||||||
'version': 446
|
'version': 449
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocFormat
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocFormat',
|
||||||
|
'format': 'Delivery Note Packing List Wise',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Delivery Note',
|
'parent': 'Delivery Note',
|
||||||
'parentfield': 'fields',
|
'parentfield': 'formats',
|
||||||
'parenttype': 'DocType'
|
'parenttype': 'DocType'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -109,21 +119,8 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'amend': 1,
|
|
||||||
'cancel': 1,
|
|
||||||
'create': 1,
|
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 5,
|
'idx': 5,
|
||||||
'permlevel': 0,
|
|
||||||
'role': 'Sales Manager',
|
|
||||||
'submit': 1,
|
|
||||||
'write': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 6,
|
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'All'
|
'role': 'All'
|
||||||
},
|
},
|
||||||
@ -131,11 +128,23 @@
|
|||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 7,
|
'idx': 6,
|
||||||
'permlevel': 2,
|
'permlevel': 2,
|
||||||
'role': 'All'
|
'role': 'All'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocFormat
|
||||||
|
{
|
||||||
|
'doctype': 'DocFormat',
|
||||||
|
'idx': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocFormat
|
||||||
|
{
|
||||||
|
'doctype': 'DocFormat',
|
||||||
|
'idx': 2
|
||||||
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
@ -1471,5 +1480,18 @@
|
|||||||
'options': 'repair_delivery_note',
|
'options': 'repair_delivery_note',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1
|
'print_hide': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'print_packing_slip',
|
||||||
|
'fieldtype': 'Text',
|
||||||
|
'hidden': 1,
|
||||||
|
'idx': 95,
|
||||||
|
'in_filter': 0,
|
||||||
|
'label': 'Print Packing Slip',
|
||||||
|
'permlevel': 0,
|
||||||
|
'print_hide': 0
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -5,7 +5,7 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:08:58',
|
'creation': '2010-08-08 17:08:58',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-03-01 10:35:06',
|
'modified': '2011-08-22 12:11:51',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -21,7 +21,7 @@
|
|||||||
'section_style': 'Tray',
|
'section_style': 'Tray',
|
||||||
'server_code_error': ' ',
|
'server_code_error': ' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 35
|
'version': 38
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -102,27 +102,13 @@
|
|||||||
'width': '50px'
|
'width': '50px'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'no_of_packs',
|
|
||||||
'fieldtype': 'Int',
|
|
||||||
'idx': 5,
|
|
||||||
'label': 'No of Packs',
|
|
||||||
'oldfieldname': 'no_of_packs',
|
|
||||||
'oldfieldtype': 'Int',
|
|
||||||
'permlevel': 0,
|
|
||||||
'print_hide': 1,
|
|
||||||
'width': '100px'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'default': '0.00',
|
'default': '0.00',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'qty',
|
'fieldname': 'qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 6,
|
'idx': 5,
|
||||||
'label': 'Quantity',
|
'label': 'Quantity',
|
||||||
'oldfieldname': 'qty',
|
'oldfieldname': 'qty',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -138,7 +124,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'ref_rate',
|
'fieldname': 'ref_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 7,
|
'idx': 6,
|
||||||
'label': 'Ref Rate',
|
'label': 'Ref Rate',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
'oldfieldname': 'ref_rate',
|
'oldfieldname': 'ref_rate',
|
||||||
@ -156,7 +142,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'adj_rate',
|
'fieldname': 'adj_rate',
|
||||||
'fieldtype': 'Float',
|
'fieldtype': 'Float',
|
||||||
'idx': 8,
|
'idx': 7,
|
||||||
'label': 'Discount (%)',
|
'label': 'Discount (%)',
|
||||||
'oldfieldname': 'adj_rate',
|
'oldfieldname': 'adj_rate',
|
||||||
'oldfieldtype': 'Float',
|
'oldfieldtype': 'Float',
|
||||||
@ -171,7 +157,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'export_rate',
|
'fieldname': 'export_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 9,
|
'idx': 8,
|
||||||
'label': 'Rate',
|
'label': 'Rate',
|
||||||
'oldfieldname': 'export_rate',
|
'oldfieldname': 'export_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -187,7 +173,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'export_amount',
|
'fieldname': 'export_amount',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 10,
|
'idx': 9,
|
||||||
'label': 'Amount',
|
'label': 'Amount',
|
||||||
'oldfieldname': 'export_amount',
|
'oldfieldname': 'export_amount',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -202,7 +188,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'base_ref_rate',
|
'fieldname': 'base_ref_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 11,
|
'idx': 10,
|
||||||
'label': 'Ref Rate*',
|
'label': 'Ref Rate*',
|
||||||
'oldfieldname': 'base_ref_rate',
|
'oldfieldname': 'base_ref_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -217,7 +203,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'basic_rate',
|
'fieldname': 'basic_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 12,
|
'idx': 11,
|
||||||
'label': 'Rate*',
|
'label': 'Rate*',
|
||||||
'oldfieldname': 'basic_rate',
|
'oldfieldname': 'basic_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -233,7 +219,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'amount',
|
'fieldname': 'amount',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 13,
|
'idx': 12,
|
||||||
'label': 'Amount*',
|
'label': 'Amount*',
|
||||||
'oldfieldname': 'amount',
|
'oldfieldname': 'amount',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -248,7 +234,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'warehouse',
|
'fieldname': 'warehouse',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 14,
|
'idx': 13,
|
||||||
'label': 'Warehouse',
|
'label': 'Warehouse',
|
||||||
'oldfieldname': 'warehouse',
|
'oldfieldname': 'warehouse',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
@ -264,7 +250,8 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'serial_no',
|
'fieldname': 'serial_no',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': 'Text',
|
||||||
'idx': 15,
|
'idx': 14,
|
||||||
|
'in_filter': 1,
|
||||||
'label': 'Serial No',
|
'label': 'Serial No',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'serial_no',
|
'oldfieldname': 'serial_no',
|
||||||
@ -279,14 +266,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'batch_no',
|
'fieldname': 'batch_no',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 16,
|
'idx': 15,
|
||||||
'label': 'Batch No',
|
'label': 'Batch No',
|
||||||
'oldfieldname': 'batch_no',
|
'oldfieldname': 'batch_no',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Batch',
|
'options': 'Batch',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -294,14 +280,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'item_group',
|
'fieldname': 'item_group',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 17,
|
'idx': 16,
|
||||||
'label': 'Item Group',
|
'label': 'Item Group',
|
||||||
'oldfieldname': 'item_group',
|
'oldfieldname': 'item_group',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Item Group',
|
'options': 'Item Group',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'print_hide': 1,
|
'print_hide': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -309,23 +294,77 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'brand',
|
'fieldname': 'brand',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 18,
|
'idx': 17,
|
||||||
'label': 'Brand Name',
|
'label': 'Brand Name',
|
||||||
'oldfieldname': 'brand',
|
'oldfieldname': 'brand',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Brand',
|
'options': 'Brand',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'search_index': 0,
|
|
||||||
'width': '150px'
|
'width': '150px'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'pack_no',
|
||||||
|
'fieldtype': 'Data',
|
||||||
|
'idx': 18,
|
||||||
|
'label': 'Pack No',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'pack_gross_wt',
|
||||||
|
'fieldtype': 'Float',
|
||||||
|
'idx': 19,
|
||||||
|
'label': 'Pack Gross Wt',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'weight_uom',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 20,
|
||||||
|
'label': 'Weight UOM',
|
||||||
|
'options': 'UOM',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'pack_nett_wt',
|
||||||
|
'fieldtype': 'Float',
|
||||||
|
'idx': 21,
|
||||||
|
'label': 'Pack Nett Wt',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'no_of_packs',
|
||||||
|
'fieldtype': 'Int',
|
||||||
|
'idx': 22,
|
||||||
|
'label': 'No of Packs',
|
||||||
|
'oldfieldname': 'no_of_packs',
|
||||||
|
'oldfieldtype': 'Int',
|
||||||
|
'permlevel': 0,
|
||||||
|
'print_hide': 1,
|
||||||
|
'width': '100px'
|
||||||
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'pack_unit',
|
'fieldname': 'pack_unit',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 19,
|
'idx': 23,
|
||||||
'label': 'Pack Unit',
|
'label': 'Pack Unit',
|
||||||
'oldfieldname': 'pack_unit',
|
'oldfieldname': 'pack_unit',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -339,7 +378,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'installed_qty',
|
'fieldname': 'installed_qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 20,
|
'idx': 24,
|
||||||
'label': 'Installed Qty',
|
'label': 'Installed Qty',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'installed_qty',
|
'oldfieldname': 'installed_qty',
|
||||||
@ -354,7 +393,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'actual_qty',
|
'fieldname': 'actual_qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 21,
|
'idx': 25,
|
||||||
'label': 'Available Qty at Warehouse',
|
'label': 'Available Qty at Warehouse',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'actual_qty',
|
'oldfieldname': 'actual_qty',
|
||||||
@ -364,29 +403,12 @@
|
|||||||
'width': '150px'
|
'width': '150px'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'colour': 'White:FFF',
|
|
||||||
'default': '0.00',
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'billed_qty',
|
|
||||||
'fieldtype': 'Currency',
|
|
||||||
'idx': 22,
|
|
||||||
'label': 'Billed Qty',
|
|
||||||
'no_copy': 1,
|
|
||||||
'oldfieldname': 'billed_qty',
|
|
||||||
'oldfieldtype': 'Currency',
|
|
||||||
'permlevel': 1,
|
|
||||||
'print_hide': 1,
|
|
||||||
'width': '100px'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'billed_amt',
|
'fieldname': 'billed_amt',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 23,
|
'idx': 26,
|
||||||
'label': 'Billed Amt',
|
'label': 'Billed Amt',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
@ -401,7 +423,7 @@
|
|||||||
'fieldname': 'prevdoc_docname',
|
'fieldname': 'prevdoc_docname',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'idx': 24,
|
'idx': 27,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Against Document No',
|
'label': 'Against Document No',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
@ -419,14 +441,14 @@
|
|||||||
'fieldname': 'prevdoc_doctype',
|
'fieldname': 'prevdoc_doctype',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 25,
|
'idx': 28,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Document Type',
|
'label': 'Document Type',
|
||||||
'oldfieldname': 'prevdoc_doctype',
|
'oldfieldname': 'prevdoc_doctype',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'search_index': 0,
|
'search_index': 1,
|
||||||
'width': '150px'
|
'width': '150px'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -436,7 +458,7 @@
|
|||||||
'fieldname': 'prevdoc_date',
|
'fieldname': 'prevdoc_date',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 26,
|
'idx': 29,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Against Document Date',
|
'label': 'Against Document Date',
|
||||||
'oldfieldname': 'prevdoc_date',
|
'oldfieldname': 'prevdoc_date',
|
||||||
@ -451,14 +473,14 @@
|
|||||||
'fieldname': 'prevdoc_detail_docname',
|
'fieldname': 'prevdoc_detail_docname',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 27,
|
'idx': 30,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Against Document Detail No',
|
'label': 'Against Document Detail No',
|
||||||
'oldfieldname': 'prevdoc_detail_docname',
|
'oldfieldname': 'prevdoc_detail_docname',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'search_index': 1,
|
'search_index': 0,
|
||||||
'width': '150px'
|
'width': '150px'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -468,7 +490,7 @@
|
|||||||
'fieldname': 'item_tax_rate',
|
'fieldname': 'item_tax_rate',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 28,
|
'idx': 31,
|
||||||
'label': 'Item Tax Rate',
|
'label': 'Item Tax Rate',
|
||||||
'oldfieldname': 'item_tax_rate',
|
'oldfieldname': 'item_tax_rate',
|
||||||
'oldfieldtype': 'Small Text',
|
'oldfieldtype': 'Small Text',
|
||||||
@ -482,7 +504,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'page_break',
|
'fieldname': 'page_break',
|
||||||
'fieldtype': 'Check',
|
'fieldtype': 'Check',
|
||||||
'idx': 29,
|
'idx': 32,
|
||||||
'label': 'Page Break',
|
'label': 'Page Break',
|
||||||
'oldfieldname': 'page_break',
|
'oldfieldname': 'page_break',
|
||||||
'oldfieldtype': 'Check',
|
'oldfieldtype': 'Check',
|
||||||
|
@ -96,4 +96,23 @@ cur_frm.cscript['Add Image'] = function(doc, dt, dn) {
|
|||||||
|
|
||||||
refresh_field('description_html');
|
refresh_field('description_html');
|
||||||
}
|
}
|
||||||
|
//===================== Quotation to validation - either customer or lead mandatory ====================
|
||||||
|
cur_frm.cscript.weight_to_validate = function(doc,cdt,cdn){
|
||||||
|
|
||||||
|
if((doc.nett_weight || doc.gross_weight) && !doc.weight_uom)
|
||||||
|
{
|
||||||
|
alert('Weight is mentioned,\nPlease mention "Weight UOM" too');
|
||||||
|
validated=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//===================validation function =================================
|
||||||
|
|
||||||
|
cur_frm.cscript.validate = function(doc,cdt,cdn){
|
||||||
|
cur_frm.cscript.weight_to_validate(doc,cdt,cdn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//===========Fill Default Currency in "Ref Rate Details====================
|
||||||
|
cur_frm.fields_dict['ref_rate_details'].grid.onrowadd = function(doc, cdt, cdn){
|
||||||
|
locals[cdt][cdn].ref_currency = sys_defaults.currency;
|
||||||
|
refresh_field('ref_currency',cdn,'ref_rate_details');
|
||||||
|
}
|
@ -74,6 +74,12 @@ class DocType:
|
|||||||
else:
|
else:
|
||||||
check_list.append([cstr(d.price_list_name),cstr(d.ref_currency)])
|
check_list.append([cstr(d.price_list_name),cstr(d.ref_currency)])
|
||||||
|
|
||||||
|
# Append all the customer codes and insert into "customer_code" field of item table
|
||||||
|
def fill_customer_code(self):
|
||||||
|
cust_code=[]
|
||||||
|
for d in getlist(self.doclist,'item_customer_details'):
|
||||||
|
cust_code.append(d.ref_code)
|
||||||
|
self.doc.customer_code=','.join(cust_code)
|
||||||
|
|
||||||
# Check whether Tax Rate is not entered twice for same Tax Type
|
# Check whether Tax Rate is not entered twice for same Tax Type
|
||||||
def check_item_tax(self):
|
def check_item_tax(self):
|
||||||
@ -112,6 +118,7 @@ class DocType:
|
|||||||
if cstr(self.doc.fields[d]) != 'Yes':
|
if cstr(self.doc.fields[d]) != 'Yes':
|
||||||
self.check_for_active_boms(check = fl[d])
|
self.check_for_active_boms(check = fl[d])
|
||||||
self.check_ref_rate_detail()
|
self.check_ref_rate_detail()
|
||||||
|
self.fill_customer_code()
|
||||||
self.check_item_tax()
|
self.check_item_tax()
|
||||||
if not self.doc.min_order_qty:
|
if not self.doc.min_order_qty:
|
||||||
self.doc.min_order_qty = 0
|
self.doc.min_order_qty = 0
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:05',
|
'creation': '2010-08-08 17:09:05',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-30 15:22:32',
|
'modified': '2011-08-18 13:03:31',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1309508838',
|
'_last_update': '1313651083',
|
||||||
'allow_attach': 1,
|
'allow_attach': 1,
|
||||||
'allow_trash': 1,
|
'allow_trash': 1,
|
||||||
'autoname': 'field:item_code',
|
'autoname': 'field:item_code',
|
||||||
@ -22,13 +22,13 @@
|
|||||||
'max_attachments': 1,
|
'max_attachments': 1,
|
||||||
'module': 'Stock',
|
'module': 'Stock',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'search_fields': 'item_name,description,item_group',
|
'search_fields': 'item_name,description,item_group,customer_code',
|
||||||
'section_style': 'Tray',
|
'section_style': 'Tray',
|
||||||
'server_code_error': ' ',
|
'server_code_error': ' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'subject': '%(item_name)s',
|
'subject': '%(item_name)s',
|
||||||
'tag_fields': 'item_group',
|
'tag_fields': 'item_group',
|
||||||
'version': 153
|
'version': 161
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -42,14 +42,12 @@
|
|||||||
|
|
||||||
# These values are common for all DocPerm
|
# These values are common for all DocPerm
|
||||||
{
|
{
|
||||||
'amend': 0,
|
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Item',
|
'parent': 'Item',
|
||||||
'parentfield': 'permissions',
|
'parentfield': 'permissions',
|
||||||
'parenttype': 'DocType',
|
'parenttype': 'DocType',
|
||||||
'read': 1,
|
'read': 1
|
||||||
'submit': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Item
|
# DocType, Item
|
||||||
@ -60,44 +58,53 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'cancel': 0,
|
'amend': 0,
|
||||||
'create': 0,
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'permlevel': 0,
|
|
||||||
'role': 'Material User',
|
|
||||||
'write': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 1,
|
'idx': 1,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material Manager',
|
'role': 'Material Manager',
|
||||||
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 2,
|
'idx': 2,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Material Manager',
|
'role': 'Material Manager',
|
||||||
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 3,
|
'idx': 3,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material User',
|
'role': 'Material User',
|
||||||
|
'submit': 0,
|
||||||
|
'write': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocPerm
|
||||||
|
{
|
||||||
|
'amend': 0,
|
||||||
|
'cancel': 0,
|
||||||
|
'create': 0,
|
||||||
|
'doctype': 'DocPerm',
|
||||||
|
'idx': 4,
|
||||||
|
'permlevel': 0,
|
||||||
|
'role': 'Material User',
|
||||||
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -114,7 +121,6 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'cancel': 0,
|
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 6,
|
'idx': 6,
|
||||||
@ -136,13 +142,10 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'cancel': 0,
|
|
||||||
'create': 0,
|
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 8,
|
'idx': 8,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'System Manager',
|
'role': 'System Manager'
|
||||||
'write': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -197,7 +200,7 @@
|
|||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1,
|
||||||
'search_index': 0
|
'search_index': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -241,8 +244,7 @@
|
|||||||
'options': 'Brand',
|
'options': 'Brand',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'reqd': 0,
|
'reqd': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -285,7 +287,7 @@
|
|||||||
'description': 'Generates HTML to include image (1st attachment) in the description',
|
'description': 'Generates HTML to include image (1st attachment) in the description',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'idx': 12,
|
'idx': 11,
|
||||||
'label': 'Add Image',
|
'label': 'Add Image',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -294,7 +296,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 13,
|
'idx': 12,
|
||||||
'label': 'Inventory',
|
'label': 'Inventory',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -307,14 +309,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'stock_uom',
|
'fieldname': 'stock_uom',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 14,
|
'idx': 13,
|
||||||
'label': 'Default UoM',
|
'label': 'Default UoM',
|
||||||
'oldfieldname': 'stock_uom',
|
'oldfieldname': 'stock_uom',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'UOM',
|
'options': 'UOM',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -325,7 +326,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_stock_item',
|
'fieldname': 'is_stock_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 15,
|
'idx': 14,
|
||||||
'label': 'Is Stock Item',
|
'label': 'Is Stock Item',
|
||||||
'oldfieldname': 'is_stock_item',
|
'oldfieldname': 'is_stock_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -339,7 +340,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'valuation_method',
|
'fieldname': 'valuation_method',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 16,
|
'idx': 15,
|
||||||
'label': 'Valuation Method',
|
'label': 'Valuation Method',
|
||||||
'oldfieldname': 'valuation_method',
|
'oldfieldname': 'valuation_method',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -352,13 +353,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'default_warehouse',
|
'fieldname': 'default_warehouse',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 17,
|
'idx': 16,
|
||||||
'label': 'Default Warehouse',
|
'label': 'Default Warehouse',
|
||||||
'oldfieldname': 'default_warehouse',
|
'oldfieldname': 'default_warehouse',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Warehouse',
|
'options': 'Warehouse',
|
||||||
'permlevel': 0,
|
'permlevel': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -368,7 +368,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'tolerance',
|
'fieldname': 'tolerance',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 18,
|
'idx': 17,
|
||||||
'label': 'Allowance Percent',
|
'label': 'Allowance Percent',
|
||||||
'oldfieldname': 'tolerance',
|
'oldfieldname': 'tolerance',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -380,7 +380,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 're_order_level',
|
'fieldname': 're_order_level',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 19,
|
'idx': 18,
|
||||||
'label': 'Re-Order Level',
|
'label': 'Re-Order Level',
|
||||||
'oldfieldname': 're_order_level',
|
'oldfieldname': 're_order_level',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -395,7 +395,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'minimum_inventory_level',
|
'fieldname': 'minimum_inventory_level',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 20,
|
'idx': 19,
|
||||||
'label': 'Minimum Inventory Level',
|
'label': 'Minimum Inventory Level',
|
||||||
'oldfieldname': 'minimum_inventory_level',
|
'oldfieldname': 'minimum_inventory_level',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -412,7 +412,7 @@
|
|||||||
'fieldname': 'min_order_qty',
|
'fieldname': 'min_order_qty',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'idx': 21,
|
'idx': 20,
|
||||||
'label': 'Minimum Order Qty',
|
'label': 'Minimum Order Qty',
|
||||||
'oldfieldname': 'min_order_qty',
|
'oldfieldname': 'min_order_qty',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -423,7 +423,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 22,
|
'idx': 21,
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
@ -437,7 +437,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_asset_item',
|
'fieldname': 'is_asset_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 23,
|
'idx': 22,
|
||||||
'label': 'Is Asset Item',
|
'label': 'Is Asset Item',
|
||||||
'oldfieldname': 'is_asset_item',
|
'oldfieldname': 'is_asset_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -453,7 +453,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'has_batch_no',
|
'fieldname': 'has_batch_no',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 24,
|
'idx': 23,
|
||||||
'label': 'Has Batch No',
|
'label': 'Has Batch No',
|
||||||
'oldfieldname': 'has_batch_no',
|
'oldfieldname': 'has_batch_no',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -470,7 +470,8 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'has_serial_no',
|
'fieldname': 'has_serial_no',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 25,
|
'idx': 24,
|
||||||
|
'in_filter': 1,
|
||||||
'label': 'Has Serial No',
|
'label': 'Has Serial No',
|
||||||
'oldfieldname': 'has_serial_no',
|
'oldfieldname': 'has_serial_no',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -484,7 +485,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'warranty_period',
|
'fieldname': 'warranty_period',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 26,
|
'idx': 25,
|
||||||
'label': 'Warranty Period (in days)',
|
'label': 'Warranty Period (in days)',
|
||||||
'oldfieldname': 'warranty_period',
|
'oldfieldname': 'warranty_period',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@ -496,19 +497,50 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'end_of_life',
|
'fieldname': 'end_of_life',
|
||||||
'fieldtype': 'Date',
|
'fieldtype': 'Date',
|
||||||
'idx': 27,
|
'idx': 26,
|
||||||
'label': 'End of Life',
|
'label': 'End of Life',
|
||||||
'oldfieldname': 'end_of_life',
|
'oldfieldname': 'end_of_life',
|
||||||
'oldfieldtype': 'Date',
|
'oldfieldtype': 'Date',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'nett_weight',
|
||||||
|
'fieldtype': 'Float',
|
||||||
|
'idx': 27,
|
||||||
|
'label': 'Nett Weight',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'gross_weight',
|
||||||
|
'fieldtype': 'Float',
|
||||||
|
'idx': 28,
|
||||||
|
'label': 'Gross Weight',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'weight_uom',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 29,
|
||||||
|
'label': 'Weight UOM',
|
||||||
|
'options': 'UOM',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 28,
|
'idx': 30,
|
||||||
'label': 'Purchase Details',
|
'label': 'Purchase Details',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -522,7 +554,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_purchase_item',
|
'fieldname': 'is_purchase_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 29,
|
'idx': 31,
|
||||||
'label': 'Is Purchase Item',
|
'label': 'Is Purchase Item',
|
||||||
'oldfieldname': 'is_purchase_item',
|
'oldfieldname': 'is_purchase_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -538,7 +570,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'lead_time_days',
|
'fieldname': 'lead_time_days',
|
||||||
'fieldtype': 'Int',
|
'fieldtype': 'Int',
|
||||||
'idx': 30,
|
'idx': 32,
|
||||||
'label': 'Lead Time Days',
|
'label': 'Lead Time Days',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'lead_time_days',
|
'oldfieldname': 'lead_time_days',
|
||||||
@ -553,13 +585,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'purchase_account',
|
'fieldname': 'purchase_account',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 31,
|
'idx': 33,
|
||||||
'label': 'Default Expense Account',
|
'label': 'Default Expense Account',
|
||||||
'oldfieldname': 'purchase_account',
|
'oldfieldname': 'purchase_account',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Account',
|
'options': 'Account',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'search_index': 0,
|
|
||||||
'trigger': 'Client'
|
'trigger': 'Client'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -570,13 +601,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'cost_center',
|
'fieldname': 'cost_center',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 32,
|
'idx': 34,
|
||||||
'label': 'Default Cost Center',
|
'label': 'Default Cost Center',
|
||||||
'oldfieldname': 'cost_center',
|
'oldfieldname': 'cost_center',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Cost Center',
|
'options': 'Cost Center',
|
||||||
'permlevel': 0,
|
'permlevel': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -586,7 +616,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'buying_cost',
|
'fieldname': 'buying_cost',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 33,
|
'idx': 35,
|
||||||
'label': 'Buying Cost',
|
'label': 'Buying Cost',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'buying_cost',
|
'oldfieldname': 'buying_cost',
|
||||||
@ -600,7 +630,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'last_purchase_rate',
|
'fieldname': 'last_purchase_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 34,
|
'idx': 36,
|
||||||
'label': 'Last Purchase Rate',
|
'label': 'Last Purchase Rate',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'last_purchase_rate',
|
'oldfieldname': 'last_purchase_rate',
|
||||||
@ -613,7 +643,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'standard_rate',
|
'fieldname': 'standard_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 35,
|
'idx': 37,
|
||||||
'label': 'Standard Rate',
|
'label': 'Standard Rate',
|
||||||
'oldfieldname': 'standard_rate',
|
'oldfieldname': 'standard_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -624,7 +654,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 36,
|
'idx': 38,
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
@ -635,7 +665,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'uom_conversion_details',
|
'fieldname': 'uom_conversion_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 37,
|
'idx': 39,
|
||||||
'label': 'UOM Conversion Details',
|
'label': 'UOM Conversion Details',
|
||||||
'oldfieldname': 'uom_conversion_details',
|
'oldfieldname': 'uom_conversion_details',
|
||||||
'oldfieldtype': 'Table',
|
'oldfieldtype': 'Table',
|
||||||
@ -647,7 +677,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 38,
|
'idx': 40,
|
||||||
'label': 'Sales Details',
|
'label': 'Sales Details',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -661,7 +691,8 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_sales_item',
|
'fieldname': 'is_sales_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 39,
|
'idx': 41,
|
||||||
|
'in_filter': 1,
|
||||||
'label': 'Is Sales Item',
|
'label': 'Is Sales Item',
|
||||||
'oldfieldname': 'is_sales_item',
|
'oldfieldname': 'is_sales_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -678,7 +709,8 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_service_item',
|
'fieldname': 'is_service_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 40,
|
'idx': 42,
|
||||||
|
'in_filter': 1,
|
||||||
'label': 'Is Service Item',
|
'label': 'Is Service Item',
|
||||||
'oldfieldname': 'is_service_item',
|
'oldfieldname': 'is_service_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -695,7 +727,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_sample_item',
|
'fieldname': 'is_sample_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 41,
|
'idx': 43,
|
||||||
'label': 'Allow Samples',
|
'label': 'Allow Samples',
|
||||||
'oldfieldname': 'is_sample_item',
|
'oldfieldname': 'is_sample_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -709,7 +741,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'max_discount',
|
'fieldname': 'max_discount',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 42,
|
'idx': 44,
|
||||||
'label': 'Max Discount (%)',
|
'label': 'Max Discount (%)',
|
||||||
'oldfieldname': 'max_discount',
|
'oldfieldname': 'max_discount',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -721,11 +753,10 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'default_income_account',
|
'fieldname': 'default_income_account',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 43,
|
'idx': 45,
|
||||||
'label': 'Default Income Account',
|
'label': 'Default Income Account',
|
||||||
'options': 'Account',
|
'options': 'Account',
|
||||||
'permlevel': 0,
|
'permlevel': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -733,11 +764,10 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'default_sales_cost_center',
|
'fieldname': 'default_sales_cost_center',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 44,
|
'idx': 46,
|
||||||
'label': 'Cost Center',
|
'label': 'Cost Center',
|
||||||
'options': 'Cost Center',
|
'options': 'Cost Center',
|
||||||
'permlevel': 0,
|
'permlevel': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -746,7 +776,7 @@
|
|||||||
'fieldname': 'sales_rate',
|
'fieldname': 'sales_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 45,
|
'idx': 47,
|
||||||
'label': 'Sales Rate',
|
'label': 'Sales Rate',
|
||||||
'oldfieldname': 'sales_rate',
|
'oldfieldname': 'sales_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
@ -757,7 +787,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 46,
|
'idx': 48,
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
@ -770,7 +800,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'ref_rate_details',
|
'fieldname': 'ref_rate_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 47,
|
'idx': 49,
|
||||||
'label': 'Ref Rate Details',
|
'label': 'Ref Rate Details',
|
||||||
'oldfieldname': 'ref_rate_details',
|
'oldfieldname': 'ref_rate_details',
|
||||||
'oldfieldtype': 'Table',
|
'oldfieldtype': 'Table',
|
||||||
@ -778,11 +808,23 @@
|
|||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'description': 'For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes',
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'item_customer_details',
|
||||||
|
'fieldtype': 'Table',
|
||||||
|
'idx': 50,
|
||||||
|
'label': 'Customer Codes',
|
||||||
|
'options': 'Item Customer Detail',
|
||||||
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 48,
|
'idx': 51,
|
||||||
'label': 'Item Tax',
|
'label': 'Item Tax',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -793,7 +835,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'item_tax',
|
'fieldname': 'item_tax',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 49,
|
'idx': 52,
|
||||||
'label': 'Item Tax1',
|
'label': 'Item Tax1',
|
||||||
'oldfieldname': 'item_tax',
|
'oldfieldname': 'item_tax',
|
||||||
'oldfieldtype': 'Table',
|
'oldfieldtype': 'Table',
|
||||||
@ -805,7 +847,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 50,
|
'idx': 53,
|
||||||
'label': 'Inspection Criteria',
|
'label': 'Inspection Criteria',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -817,7 +859,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'inspection_required',
|
'fieldname': 'inspection_required',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 51,
|
'idx': 54,
|
||||||
'label': 'Inspection Required',
|
'label': 'Inspection Required',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
'oldfieldname': 'inspection_required',
|
'oldfieldname': 'inspection_required',
|
||||||
@ -832,7 +874,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'item_specification_details',
|
'fieldname': 'item_specification_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 52,
|
'idx': 55,
|
||||||
'label': 'Item Specification Detail',
|
'label': 'Item Specification Detail',
|
||||||
'oldfieldname': 'item_specification_details',
|
'oldfieldname': 'item_specification_details',
|
||||||
'oldfieldtype': 'Table',
|
'oldfieldtype': 'Table',
|
||||||
@ -844,7 +886,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 53,
|
'idx': 56,
|
||||||
'label': 'Manufacturing',
|
'label': 'Manufacturing',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -858,7 +900,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_manufactured_item',
|
'fieldname': 'is_manufactured_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 54,
|
'idx': 57,
|
||||||
'label': 'Allow Bill of Materials',
|
'label': 'Allow Bill of Materials',
|
||||||
'oldfieldname': 'is_manufactured_item',
|
'oldfieldname': 'is_manufactured_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -873,14 +915,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'default_bom',
|
'fieldname': 'default_bom',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 55,
|
'idx': 58,
|
||||||
'label': 'Default BOM',
|
'label': 'Default BOM',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'default_bom',
|
'oldfieldname': 'default_bom',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Bill Of Materials',
|
'options': 'Bill Of Materials',
|
||||||
'permlevel': 1,
|
'permlevel': 1
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -891,7 +932,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_pro_applicable',
|
'fieldname': 'is_pro_applicable',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 56,
|
'idx': 59,
|
||||||
'label': 'Allow Production Order',
|
'label': 'Allow Production Order',
|
||||||
'oldfieldname': 'is_pro_applicable',
|
'oldfieldname': 'is_pro_applicable',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -908,7 +949,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'is_sub_contracted_item',
|
'fieldname': 'is_sub_contracted_item',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 57,
|
'idx': 60,
|
||||||
'label': 'Is Sub Contracted Item',
|
'label': 'Is Sub Contracted Item',
|
||||||
'oldfieldname': 'is_sub_contracted_item',
|
'oldfieldname': 'is_sub_contracted_item',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
@ -923,9 +964,23 @@
|
|||||||
'fieldname': 'file_list',
|
'fieldname': 'file_list',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': 'Text',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'idx': 59,
|
'idx': 61,
|
||||||
'label': 'File List',
|
'label': 'File List',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1
|
'print_hide': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'customer_code',
|
||||||
|
'fieldtype': 'Data',
|
||||||
|
'hidden': 1,
|
||||||
|
'idx': 62,
|
||||||
|
'in_filter': 1,
|
||||||
|
'label': 'Customer Code',
|
||||||
|
'no_copy': 1,
|
||||||
|
'permlevel': 0,
|
||||||
|
'print_hide': 1
|
||||||
}
|
}
|
||||||
]
|
]
|
73
stock/doctype/item_customer_detail/item_customer_detail.txt
Normal file
73
stock/doctype/item_customer_detail/item_customer_detail.txt
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# DocType, Item Customer Detail
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2011-08-18 11:38:43',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2011-08-18 11:54:36',
|
||||||
|
'modified_by': 'Administrator',
|
||||||
|
'owner': 'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocType
|
||||||
|
{
|
||||||
|
'autoname': 'ITEMCUST/.#####',
|
||||||
|
'colour': 'White:FFF',
|
||||||
|
'description': 'For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes',
|
||||||
|
'doctype': 'DocType',
|
||||||
|
'in_create': 1,
|
||||||
|
'istable': 1,
|
||||||
|
'module': 'Stock',
|
||||||
|
'name': '__common__',
|
||||||
|
'read_only': 0,
|
||||||
|
'section_style': 'Tray',
|
||||||
|
'server_code_error': ' ',
|
||||||
|
'show_in_menu': 0,
|
||||||
|
'version': 7
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'in_filter': 1,
|
||||||
|
'name': '__common__',
|
||||||
|
'parent': 'Item Customer Detail',
|
||||||
|
'parentfield': 'fields',
|
||||||
|
'parenttype': 'DocType',
|
||||||
|
'permlevel': 0,
|
||||||
|
'reqd': 1,
|
||||||
|
'search_index': 1
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocType, Item Customer Detail
|
||||||
|
{
|
||||||
|
'doctype': 'DocType',
|
||||||
|
'name': 'Item Customer Detail'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'customer_name',
|
||||||
|
'fieldtype': 'Link',
|
||||||
|
'idx': 1,
|
||||||
|
'label': 'Customer Name',
|
||||||
|
'oldfieldname': 'price_list_name',
|
||||||
|
'oldfieldtype': 'Select',
|
||||||
|
'options': 'Customer',
|
||||||
|
'width': '180px'
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'ref_code',
|
||||||
|
'fieldtype': 'Data',
|
||||||
|
'idx': 2,
|
||||||
|
'label': 'Ref Code',
|
||||||
|
'oldfieldname': 'ref_rate',
|
||||||
|
'oldfieldtype': 'Currency',
|
||||||
|
'width': '120px'
|
||||||
|
}
|
||||||
|
]
|
@ -5,8 +5,8 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:19',
|
'creation': '2010-08-08 17:09:19',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2010-09-20 14:06:57',
|
'modified': '2011-08-31 11:36:41',
|
||||||
'modified_by': 'umair@iwebnotes.com',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -23,7 +23,7 @@
|
|||||||
'section_style': 'Tray',
|
'section_style': 'Tray',
|
||||||
'server_code_error': ' ',
|
'server_code_error': ' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 2
|
'version': 3
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -34,7 +34,8 @@
|
|||||||
'parent': 'Ref Rate Detail',
|
'parent': 'Ref Rate Detail',
|
||||||
'parentfield': 'fields',
|
'parentfield': 'fields',
|
||||||
'parenttype': 'DocType',
|
'parenttype': 'DocType',
|
||||||
'permlevel': 0
|
'permlevel': 0,
|
||||||
|
'search_index': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Ref Rate Detail
|
# DocType, Ref Rate Detail
|
||||||
@ -48,13 +49,12 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'price_list_name',
|
'fieldname': 'price_list_name',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 1,
|
|
||||||
'label': 'Price List Name',
|
'label': 'Price List Name',
|
||||||
'oldfieldname': 'price_list_name',
|
'oldfieldname': 'price_list_name',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
'options': 'link:Price List',
|
'options': 'link:Price List',
|
||||||
'reqd': 1,
|
'reqd': 1,
|
||||||
'search_index': 1
|
'trigger': 'Client'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -62,12 +62,10 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'ref_rate',
|
'fieldname': 'ref_rate',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 2,
|
|
||||||
'label': 'Ref Rate',
|
'label': 'Ref Rate',
|
||||||
'oldfieldname': 'ref_rate',
|
'oldfieldname': 'ref_rate',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
'reqd': 0,
|
'reqd': 0
|
||||||
'search_index': 0
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
@ -75,12 +73,10 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'ref_currency',
|
'fieldname': 'ref_currency',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 3,
|
|
||||||
'label': 'Currency',
|
'label': 'Currency',
|
||||||
'oldfieldname': 'ref_currency',
|
'oldfieldname': 'ref_currency',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
'options': 'link:Currency',
|
'options': 'link:Currency',
|
||||||
'reqd': 1,
|
'reqd': 1
|
||||||
'search_index': 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -7,15 +7,16 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
|
|||||||
|
|
||||||
// ************************************** refresh ***************************************************
|
// ************************************** refresh ***************************************************
|
||||||
cur_frm.cscript.refresh = function(doc, cdt, cdn) {
|
cur_frm.cscript.refresh = function(doc, cdt, cdn) {
|
||||||
if(!doc.__islocal && doc.warehouse) set_field_permlevel('warehouse', 1);
|
if(!doc.__islocal) {
|
||||||
if(!doc.__islocal && doc.item_code) set_field_permlevel('item_code', 1);
|
flds = ['item_code', 'warehouse', 'purchase_document_type', 'purchase_document_no', 'purchase_date', 'purchase_time', 'purchase_rate', 'supplier']
|
||||||
if(doc.__islocal) set_field_permlevel('status', 0);
|
for(i=0;i<flds.length;i++)
|
||||||
|
set_field_permlevel(flds[i], 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************** triggers **************************************************
|
// ************************************** triggers **************************************************
|
||||||
|
|
||||||
// -------------
|
|
||||||
// item details
|
// item details
|
||||||
// -------------
|
// -------------
|
||||||
cur_frm.add_fetch('item_code', 'item_name', 'item_name')
|
cur_frm.add_fetch('item_code', 'item_name', 'item_name')
|
||||||
@ -24,23 +25,12 @@ cur_frm.add_fetch('item_code', 'brand', 'brand')
|
|||||||
cur_frm.add_fetch('item_code', 'description', 'description')
|
cur_frm.add_fetch('item_code', 'description', 'description')
|
||||||
cur_frm.add_fetch('item_code', 'warranty_period', 'warranty_period')
|
cur_frm.add_fetch('item_code', 'warranty_period', 'warranty_period')
|
||||||
|
|
||||||
|
|
||||||
// ---------
|
|
||||||
// customer
|
// customer
|
||||||
// ---------
|
// ---------
|
||||||
cur_frm.add_fetch('customer', 'customer_name', 'customer_name')
|
cur_frm.add_fetch('customer', 'customer_name', 'customer_name')
|
||||||
cur_frm.add_fetch('customer', 'address', 'delivery_address')
|
cur_frm.add_fetch('customer', 'address', 'delivery_address')
|
||||||
cur_frm.add_fetch('customer', 'territory', 'territory')
|
cur_frm.add_fetch('customer', 'territory', 'territory')
|
||||||
|
|
||||||
|
|
||||||
// ---------
|
|
||||||
// supplier
|
|
||||||
// ---------
|
|
||||||
//cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name')
|
|
||||||
//cur_frm.add_fetch('customer', 'address', 'supplier_address')
|
|
||||||
|
|
||||||
|
|
||||||
// ----------
|
|
||||||
// territory
|
// territory
|
||||||
// ----------
|
// ----------
|
||||||
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
||||||
@ -48,10 +38,8 @@ cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Supplier
|
// Supplier
|
||||||
|
//-------------
|
||||||
cur_frm.cscript.supplier = function(doc,dt,dn) {
|
cur_frm.cscript.supplier = function(doc,dt,dn) {
|
||||||
if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
|
if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1);
|
||||||
if(doc.supplier) unhide_field(['supplier_name','address_display']);
|
if(doc.supplier) unhide_field(['supplier_name','address_display']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,39 +16,19 @@ class DocType(TransactionBase):
|
|||||||
self.doc = doc
|
self.doc = doc
|
||||||
self.doclist = doclist
|
self.doclist = doclist
|
||||||
|
|
||||||
|
|
||||||
# ********************************* validate warranty / amc status ***************************************
|
|
||||||
|
|
||||||
# --------------------
|
|
||||||
# validate amc status
|
|
||||||
# --------------------
|
|
||||||
def validate_amc_status(self):
|
def validate_amc_status(self):
|
||||||
if self.doc.amc_expiry_date and getdate(self.doc.amc_expiry_date) >= datetime.date.today() and self.doc.maintenance_status == 'Out of AMC':
|
"""
|
||||||
msgprint("AMC expiry date and maintenance status mismatch. Please verify")
|
validate amc status
|
||||||
raise Exception
|
"""
|
||||||
elif (not self.doc.amc_expiry_date or getdate(self.doc.amc_expiry_date) < datetime.date.today()) and self.doc.maintenance_status == 'Under AMC':
|
if (self.doc.maintenance_status == 'Out of AMC' and self.doc.amc_expiry_date and getdate(self.doc.amc_expiry_date) >= datetime.date.today()) or (self.doc.maintenance_status == 'Under AMC' and (not self.doc.amc_expiry_date or getdate(self.doc.amc_expiry_date) < datetime.date.today())):
|
||||||
msgprint("AMC expiry date and maintenance status mismatch. Please verify")
|
msgprint("AMC expiry date and maintenance status mismatch. Please verify", raise_exception=1)
|
||||||
raise Exception
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------
|
|
||||||
# validate warranty status
|
|
||||||
# -------------------------
|
|
||||||
def validate_warranty_status(self):
|
def validate_warranty_status(self):
|
||||||
if self.doc.warranty_expiry_date and getdate(self.doc.warranty_expiry_date) >= datetime.date.today() and self.doc.maintenance_status == 'Out of Warranty':
|
"""
|
||||||
msgprint("Warranty expiry date and maintenance status mismatch. Please verify")
|
validate warranty status
|
||||||
raise Exception
|
"""
|
||||||
elif (not self.doc.warranty_expiry_date or getdate(self.doc.warranty_expiry_date) < datetime.date.today()) and self.doc.maintenance_status == 'Under Warranty':
|
if (self.doc.maintenance_status == 'Out of Warranty' and self.doc.warranty_expiry_date and getdate(self.doc.warranty_expiry_date) >= datetime.date.today()) or (self.doc.maintenance_status == 'Under Warranty' and (not self.doc.warranty_expiry_date or getdate(self.doc.warranty_expiry_date) < datetime.date.today())):
|
||||||
msgprint("Warranty expiry date and maintenance status mismatch. Please verify")
|
msgprint("Warranty expiry date and maintenance status mismatch. Please verify", raise_exception=1)
|
||||||
raise Exception
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------
|
|
||||||
# validate warranty / amc status
|
|
||||||
# -------------------------------
|
|
||||||
def validate_warranty_amc_status(self):
|
|
||||||
self.validate_warranty_status()
|
|
||||||
self.validate_amc_status()
|
|
||||||
|
|
||||||
|
|
||||||
def validate_warehouse(self):
|
def validate_warehouse(self):
|
||||||
@ -56,6 +36,9 @@ class DocType(TransactionBase):
|
|||||||
msgprint("Warehouse is mandatory if this Serial No is <b>In Store</b>", raise_exception=1)
|
msgprint("Warehouse is mandatory if this Serial No is <b>In Store</b>", raise_exception=1)
|
||||||
|
|
||||||
def validate_item(self):
|
def validate_item(self):
|
||||||
|
"""
|
||||||
|
Validate whether serial no is required for this item
|
||||||
|
"""
|
||||||
item = sql("select name, has_serial_no from tabItem where name = '%s'" % self.doc.item_code)
|
item = sql("select name, has_serial_no from tabItem where name = '%s'" % self.doc.item_code)
|
||||||
if not item:
|
if not item:
|
||||||
msgprint("Item is not exists in the system", raise_exception=1)
|
msgprint("Item is not exists in the system", raise_exception=1)
|
||||||
@ -67,7 +50,8 @@ class DocType(TransactionBase):
|
|||||||
# validate
|
# validate
|
||||||
# ---------
|
# ---------
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_warranty_amc_status()
|
self.validate_warranty_status()
|
||||||
|
self.validate_amc_status()
|
||||||
self.validate_warehouse()
|
self.validate_warehouse()
|
||||||
self.validate_item()
|
self.validate_item()
|
||||||
|
|
||||||
@ -75,7 +59,7 @@ class DocType(TransactionBase):
|
|||||||
# ------------------------
|
# ------------------------
|
||||||
# make stock ledger entry
|
# make stock ledger entry
|
||||||
# ------------------------
|
# ------------------------
|
||||||
def make_stock_ledger_entry(self, update_stock):
|
def make_stock_ledger_entry(self, qty):
|
||||||
from webnotes.model.code import get_obj
|
from webnotes.model.code import get_obj
|
||||||
values = [{
|
values = [{
|
||||||
'item_code' : self.doc.item_code,
|
'item_code' : self.doc.item_code,
|
||||||
@ -86,12 +70,12 @@ class DocType(TransactionBase):
|
|||||||
'voucher_type' : 'Serial No',
|
'voucher_type' : 'Serial No',
|
||||||
'voucher_no' : self.doc.name,
|
'voucher_no' : self.doc.name,
|
||||||
'voucher_detail_no' : '',
|
'voucher_detail_no' : '',
|
||||||
'actual_qty' : 1,
|
'actual_qty' : qty,
|
||||||
'stock_uom' : webnotes.conn.get_value('Item', self.doc.item_code, 'stock_uom'),
|
'stock_uom' : webnotes.conn.get_value('Item', self.doc.item_code, 'stock_uom'),
|
||||||
'incoming_rate' : self.doc.purchase_rate,
|
'incoming_rate' : self.doc.purchase_rate,
|
||||||
'company' : self.doc.company,
|
'company' : self.doc.company,
|
||||||
'fiscal_year' : self.doc.fiscal_year,
|
'fiscal_year' : self.doc.fiscal_year,
|
||||||
'is_cancelled' : update_stock and 'No' or 'Yes',
|
'is_cancelled' : 'No', # is_cancelled is always 'No' because while deleted it can not find creation entry if it not created directly, voucher no != serial no.
|
||||||
'batch_no' : '',
|
'batch_no' : '',
|
||||||
'serial_no' : self.doc.name
|
'serial_no' : self.doc.name
|
||||||
}]
|
}]
|
||||||
@ -102,8 +86,8 @@ class DocType(TransactionBase):
|
|||||||
# on update
|
# on update
|
||||||
# ----------
|
# ----------
|
||||||
def on_update(self):
|
def on_update(self):
|
||||||
if self.doc.warehouse and not sql("select name from `tabStock Ledger Entry` where serial_no = '%s'" % (self.doc.name)) and self.doc.status == 'In Store':
|
if self.doc.localname and self.doc.warehouse and self.doc.status == 'In Store' and not sql("select name from `tabStock Ledger Entry` where serial_no = '%s' and ifnull(is_cancelled, 'No') = 'No'" % (self.doc.name)):
|
||||||
self.make_stock_ledger_entry(update_stock = 1)
|
self.make_stock_ledger_entry(1)
|
||||||
|
|
||||||
|
|
||||||
# ---------
|
# ---------
|
||||||
@ -114,7 +98,7 @@ class DocType(TransactionBase):
|
|||||||
msgprint("Cannot trash Serial No : %s as it is already Delivered" % (self.doc.name), raise_exception = 1)
|
msgprint("Cannot trash Serial No : %s as it is already Delivered" % (self.doc.name), raise_exception = 1)
|
||||||
else:
|
else:
|
||||||
webnotes.conn.set(self.doc, 'status', 'Not in Use')
|
webnotes.conn.set(self.doc, 'status', 'Not in Use')
|
||||||
self.make_stock_ledger_entry(update_stock = 0)
|
self.make_stock_ledger_entry(-1)
|
||||||
|
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
@ -124,4 +108,4 @@ class DocType(TransactionBase):
|
|||||||
# on restore
|
# on restore
|
||||||
# -----------
|
# -----------
|
||||||
def on_restore(self):
|
def on_restore(self):
|
||||||
self.make_stock_ledger_entry(update_stock = 1)
|
self.make_stock_ledger_entry(1)
|
||||||
|
@ -355,6 +355,9 @@ class DocType:
|
|||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
def update_serial_no(self, is_submit):
|
def update_serial_no(self, is_submit):
|
||||||
sl_obj = get_obj('Stock Ledger')
|
sl_obj = get_obj('Stock Ledger')
|
||||||
|
if is_submit:
|
||||||
|
sl_obj.validate_serial_no_warehouse(self, 'mtn_details')
|
||||||
|
|
||||||
for d in getlist(self.doclist, 'mtn_details'):
|
for d in getlist(self.doclist, 'mtn_details'):
|
||||||
if d.serial_no:
|
if d.serial_no:
|
||||||
serial_nos = sl_obj.get_sr_no_list(d.serial_no)
|
serial_nos = sl_obj.get_sr_no_list(d.serial_no)
|
||||||
@ -363,7 +366,7 @@ class DocType:
|
|||||||
if d.s_warehouse:
|
if d.s_warehouse:
|
||||||
sl_obj.update_serial_delivery_details(self, d, serial_no, is_submit)
|
sl_obj.update_serial_delivery_details(self, d, serial_no, is_submit)
|
||||||
if d.t_warehouse:
|
if d.t_warehouse:
|
||||||
sl_obj.update_serial_purchase_details(self, d, serial_no, is_submit, (self.doc.purpose in ['Material Transfer', 'Sales Return']) and 1 or 0)
|
sl_obj.update_serial_purchase_details(self, d, serial_no, is_submit, self.doc.purpose)
|
||||||
|
|
||||||
if self.doc.purpose == 'Purchase Return':
|
if self.doc.purpose == 'Purchase Return':
|
||||||
delete_doc("Serial No", serial_no)
|
delete_doc("Serial No", serial_no)
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:25',
|
'creation': '2010-08-08 17:09:25',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-07-11 12:48:52',
|
'modified': '2011-08-22 14:36:19',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1308741898',
|
'_last_update': '1311621379',
|
||||||
'allow_attach': 0,
|
'allow_attach': 0,
|
||||||
'allow_copy': 0,
|
'allow_copy': 0,
|
||||||
'allow_email': 0,
|
'allow_email': 0,
|
||||||
@ -40,7 +40,7 @@
|
|||||||
'subject': '%(remarks)s',
|
'subject': '%(remarks)s',
|
||||||
'tag_fields': 'purpose',
|
'tag_fields': 'purpose',
|
||||||
'use_template': 0,
|
'use_template': 0,
|
||||||
'version': 243
|
'version': 245
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@ -70,15 +70,15 @@
|
|||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'amend': 1,
|
'amend': 0,
|
||||||
'cancel': 1,
|
'cancel': 0,
|
||||||
'create': 1,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 1,
|
'idx': 1,
|
||||||
'permlevel': 0,
|
'permlevel': 1,
|
||||||
'role': 'Material Manager',
|
'role': 'Material Manager',
|
||||||
'submit': 1,
|
'submit': 0,
|
||||||
'write': 1
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
@ -89,7 +89,7 @@
|
|||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 2,
|
'idx': 2,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material Manager',
|
'role': 'Material User',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -102,7 +102,7 @@
|
|||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 3,
|
'idx': 3,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Material User',
|
'role': 'Production User',
|
||||||
'submit': 1,
|
'submit': 1,
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
@ -115,69 +115,60 @@
|
|||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 4,
|
'idx': 4,
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material User',
|
'role': 'Production User',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocPerm
|
||||||
|
{
|
||||||
|
'amend': 0,
|
||||||
|
'cancel': 0,
|
||||||
|
'create': 0,
|
||||||
|
'doctype': 'DocPerm',
|
||||||
|
'idx': 5,
|
||||||
|
'permlevel': 2,
|
||||||
|
'role': 'Production User',
|
||||||
|
'submit': 0,
|
||||||
|
'write': 1
|
||||||
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'amend': 1,
|
'amend': 1,
|
||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 5,
|
'idx': 6,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Production User',
|
'role': 'Production Manager',
|
||||||
'submit': 1,
|
'submit': 1,
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'amend': 0,
|
||||||
'idx': 6,
|
'cancel': 0,
|
||||||
'permlevel': 1,
|
|
||||||
'role': 'Production User'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 7,
|
'idx': 7,
|
||||||
'permlevel': 2,
|
'permlevel': 1,
|
||||||
'role': 'Production User',
|
'role': 'Production Manager',
|
||||||
'write': 1
|
'submit': 0,
|
||||||
|
'write': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'amend': 1,
|
'amend': 0,
|
||||||
'cancel': 1,
|
'cancel': 0,
|
||||||
'create': 1,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': 'DocPerm',
|
||||||
'idx': 8,
|
'idx': 8,
|
||||||
'permlevel': 0,
|
|
||||||
'role': 'Production Manager',
|
|
||||||
'submit': 1,
|
|
||||||
'write': 1
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 9,
|
|
||||||
'permlevel': 1,
|
|
||||||
'role': 'Production Manager'
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocPerm
|
|
||||||
{
|
|
||||||
'doctype': 'DocPerm',
|
|
||||||
'idx': 10,
|
|
||||||
'permlevel': 2,
|
'permlevel': 2,
|
||||||
'role': 'Production Manager',
|
'role': 'Production Manager',
|
||||||
|
'submit': 0,
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -452,7 +443,7 @@
|
|||||||
'oldfieldname': 'process',
|
'oldfieldname': 'process',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': 'Select',
|
||||||
'options': '\nMaterial Transfer\nBackflush',
|
'options': '\nMaterial Transfer\nBackflush',
|
||||||
'permlevel': 2,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
'search_index': 0,
|
'search_index': 0,
|
||||||
@ -474,7 +465,7 @@
|
|||||||
'oldfieldname': 'production_order',
|
'oldfieldname': 'production_order',
|
||||||
'oldfieldtype': 'Link',
|
'oldfieldtype': 'Link',
|
||||||
'options': 'Production Order',
|
'options': 'Production Order',
|
||||||
'permlevel': 2,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
'search_index': 1,
|
'search_index': 1,
|
||||||
@ -493,7 +484,7 @@
|
|||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
'oldfieldname': 'fg_completed_qty',
|
'oldfieldname': 'fg_completed_qty',
|
||||||
'oldfieldtype': 'Currency',
|
'oldfieldtype': 'Currency',
|
||||||
'permlevel': 2,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
'search_index': 0,
|
'search_index': 0,
|
||||||
@ -802,7 +793,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 36,
|
'idx': 35,
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@ -814,13 +805,13 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Button',
|
'fieldtype': 'Button',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'idx': 37,
|
'idx': 36,
|
||||||
'in_filter': 0,
|
'in_filter': 0,
|
||||||
'label': 'Get Items',
|
'label': 'Get Items',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
'oldfieldtype': 'Button',
|
'oldfieldtype': 'Button',
|
||||||
'options': 'get_items',
|
'options': 'get_items',
|
||||||
'permlevel': 2,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
'search_index': 0
|
'search_index': 0
|
||||||
@ -830,7 +821,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 38,
|
'idx': 37,
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'options': 'Simple',
|
'options': 'Simple',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -843,7 +834,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'mtn_details',
|
'fieldname': 'mtn_details',
|
||||||
'fieldtype': 'Table',
|
'fieldtype': 'Table',
|
||||||
'idx': 39,
|
'idx': 38,
|
||||||
'in_filter': 0,
|
'in_filter': 0,
|
||||||
'label': 'MTN Details',
|
'label': 'MTN Details',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
@ -862,7 +853,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'total_amount',
|
'fieldname': 'total_amount',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': 'Currency',
|
||||||
'idx': 40,
|
'idx': 39,
|
||||||
'in_filter': 0,
|
'in_filter': 0,
|
||||||
'label': 'Total Amount',
|
'label': 'Total Amount',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
@ -878,7 +869,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 41,
|
'idx': 40,
|
||||||
'label': 'Other Details',
|
'label': 'Other Details',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@ -890,7 +881,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'company',
|
'fieldname': 'company',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 42,
|
'idx': 41,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Company',
|
'label': 'Company',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
@ -910,7 +901,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'fiscal_year',
|
'fieldname': 'fiscal_year',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': 'Select',
|
||||||
'idx': 43,
|
'idx': 42,
|
||||||
'in_filter': 0,
|
'in_filter': 0,
|
||||||
'label': 'Fiscal Year',
|
'label': 'Fiscal Year',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
@ -930,7 +921,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'select_print_heading',
|
'fieldname': 'select_print_heading',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 44,
|
'idx': 43,
|
||||||
'in_filter': 0,
|
'in_filter': 0,
|
||||||
'label': 'Select Print Heading',
|
'label': 'Select Print Heading',
|
||||||
'no_copy': 0,
|
'no_copy': 0,
|
||||||
|
@ -57,11 +57,11 @@ class DocType:
|
|||||||
s = s.strip()
|
s = s.strip()
|
||||||
sr_war = sql("select warehouse,name from `tabSerial No` where name = '%s'" % (s))
|
sr_war = sql("select warehouse,name from `tabSerial No` where name = '%s'" % (s))
|
||||||
if not sr_war:
|
if not sr_war:
|
||||||
msgprint("Serial No %s does not exists",s, raise_exception = 1)
|
msgprint("Serial No %s does not exists"%s, raise_exception = 1)
|
||||||
elif not sr_war[0][0]:
|
elif not sr_war[0][0]:
|
||||||
msgprint("Please set a warehouse in the Serial No <b>%s</b>" % s, raise_exception = 1)
|
msgprint("Warehouse not mentioned in the Serial No <b>%s</b>" % s, raise_exception = 1)
|
||||||
elif sr_war[0][0] != d.warehouse:
|
elif (d.warehouse and sr_war[0][0] != d.warehouse) or (d.s_warehouse and sr_war[0][0] != d.s_warehouse):
|
||||||
msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, d.warehouse), raise_exception = 1)
|
msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, d.warehouse or d.s_warehouse), raise_exception = 1)
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------
|
# ------------------------------------
|
||||||
@ -119,10 +119,10 @@ class DocType:
|
|||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
# update serial no purchase details
|
# update serial no purchase details
|
||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
def update_serial_purchase_details(self, obj, d, serial_no, is_submit, is_transfer = 0):
|
def update_serial_purchase_details(self, obj, d, serial_no, is_submit, purpose = ''):
|
||||||
exists = sql("select name, status, docstatus from `tabSerial No` where name = '%s'" % (serial_no))
|
exists = sql("select name, status, docstatus from `tabSerial No` where name = '%s'" % (serial_no))
|
||||||
if is_submit:
|
if is_submit:
|
||||||
if exists and exists[0][2] != 2 and not is_transfer:
|
if exists and exists[0][2] != 2 and purpose not in ['Material Transfer', 'Sales Return']:
|
||||||
msgprint("Serial No: %s already %s" % (serial_no, exists and exists[0][1]), raise_exception = 1)
|
msgprint("Serial No: %s already %s" % (serial_no, exists and exists[0][1]), raise_exception = 1)
|
||||||
elif exists:
|
elif exists:
|
||||||
s = Document('Serial No', exists and exists[0][0])
|
s = Document('Serial No', exists and exists[0][0])
|
||||||
@ -133,8 +133,10 @@ class DocType:
|
|||||||
else:
|
else:
|
||||||
if exists and exists[0][1] == 'Delivered' and exists[0][2] != 2:
|
if exists and exists[0][1] == 'Delivered' and exists[0][2] != 2:
|
||||||
msgprint("Serial No: %s is already delivered, you can not cancel the document." % serial_no, raise_exception=1)
|
msgprint("Serial No: %s is already delivered, you can not cancel the document." % serial_no, raise_exception=1)
|
||||||
|
elif purpose in ['Material Transfer', 'Sales Return']:
|
||||||
|
sql("update `tabSerial No` set status = '%s', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (purpose == 'Material Transfer' and 'In Store' or 'Delivered', d.s_warehouse, serial_no))
|
||||||
else:
|
else:
|
||||||
sql("update `tabSerial No` set docstatus = '%s', status = '%s', purchase_document_type = '', purchase_document_no = '', purchase_date = '', purchase_rate = '', supplier = null, supplier_name = '', supplier_address = '', warehouse = null where name = '%s'" % (not is_transfer and 2 or 0, is_transfer and 'In Store' or 'Not in Use', serial_no))
|
sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = '', purchase_rate = '', supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no)
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
@ -233,6 +235,7 @@ class DocType:
|
|||||||
sle.fields['warehouse_type'] = get_value('Warehouse' , args[k], 'warehouse_type')
|
sle.fields['warehouse_type'] = get_value('Warehouse' , args[k], 'warehouse_type')
|
||||||
sle.fields[k] = args[k]
|
sle.fields[k] = args[k]
|
||||||
sle_obj = get_obj(doc=sle)
|
sle_obj = get_obj(doc=sle)
|
||||||
|
|
||||||
# validate
|
# validate
|
||||||
sle_obj.validate()
|
sle_obj.validate()
|
||||||
sle.save(new = 1)
|
sle.save(new = 1)
|
||||||
|
@ -68,7 +68,7 @@ class DocType:
|
|||||||
bl = sql("select name from tabBin where warehouse=%s", self.doc.name)
|
bl = sql("select name from tabBin where warehouse=%s", self.doc.name)
|
||||||
for b in bl:
|
for b in bl:
|
||||||
bobj = get_obj('Bin',b[0])
|
bobj = get_obj('Bin',b[0])
|
||||||
bobj.update_item_valuation()
|
bobj.update_item_valuation(posting_date = '2000-01-01', posting_time = '12:00')
|
||||||
|
|
||||||
sql("COMMIT")
|
sql("COMMIT")
|
||||||
sql("START TRANSACTION")
|
sql("START TRANSACTION")
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
'creation': '2010-08-08 17:09:34',
|
'creation': '2010-08-08 17:09:34',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-18 13:37:43',
|
'modified': '2011-05-18 13:37:43',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'umair@iwebnotes.com',
|
||||||
'owner': 'ashwini@webnotestech.com'
|
'owner': 'ashwini@webnotestech.com'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -53,115 +53,14 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'customer',
|
'from_field': 'customer',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer'
|
'to_field': 'customer'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_address',
|
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_address'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_person',
|
|
||||||
'idx': 3,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_person'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_name',
|
|
||||||
'idx': 4,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'address_display',
|
|
||||||
'idx': 5,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'address_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_display',
|
|
||||||
'idx': 6,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_display'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_mobile',
|
|
||||||
'idx': 7,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_mobile'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'contact_email',
|
|
||||||
'idx': 8,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'contact_email'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'territory',
|
|
||||||
'idx': 9,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'territory'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'customer_group',
|
|
||||||
'idx': 10,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'customer_group'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'company',
|
|
||||||
'idx': 11,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'company'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'fiscal_year',
|
|
||||||
'idx': 12,
|
|
||||||
'match_id': 0,
|
|
||||||
'to_field': 'fiscal_year'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 13,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_field': 'customer_issue_no'
|
'to_field': 'customer_issue_no'
|
||||||
},
|
},
|
||||||
@ -171,34 +70,14 @@
|
|||||||
'checking_operator': '=',
|
'checking_operator': '=',
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'complaint',
|
'from_field': 'complaint',
|
||||||
'idx': 14,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'description'
|
'to_field': 'description'
|
||||||
},
|
},
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_code',
|
|
||||||
'idx': 15,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_code'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
|
||||||
{
|
|
||||||
'doctype': 'Field Mapper Detail',
|
|
||||||
'from_field': 'item_name',
|
|
||||||
'idx': 16,
|
|
||||||
'match_id': 1,
|
|
||||||
'to_field': 'item_name'
|
|
||||||
},
|
|
||||||
|
|
||||||
# Field Mapper Detail
|
# Field Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'doctype',
|
'from_field': 'doctype',
|
||||||
'idx': 17,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_doctype'
|
'to_field': 'prevdoc_doctype'
|
||||||
},
|
},
|
||||||
@ -207,7 +86,6 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'Field Mapper Detail',
|
'doctype': 'Field Mapper Detail',
|
||||||
'from_field': 'name',
|
'from_field': 'name',
|
||||||
'idx': 18,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'to_field': 'prevdoc_docname'
|
'to_field': 'prevdoc_docname'
|
||||||
},
|
},
|
||||||
@ -215,7 +93,6 @@
|
|||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'idx': 1,
|
|
||||||
'match_id': 1,
|
'match_id': 1,
|
||||||
'reference_doctype_key': 'prevdoc_doctype',
|
'reference_doctype_key': 'prevdoc_doctype',
|
||||||
'to_field': 'maintenance_visit_details',
|
'to_field': 'maintenance_visit_details',
|
||||||
@ -225,7 +102,6 @@
|
|||||||
# Table Mapper Detail
|
# Table Mapper Detail
|
||||||
{
|
{
|
||||||
'doctype': 'Table Mapper Detail',
|
'doctype': 'Table Mapper Detail',
|
||||||
'idx': 2,
|
|
||||||
'match_id': 0,
|
'match_id': 0,
|
||||||
'to_table': 'Maintenance Visit'
|
'to_table': 'Maintenance Visit'
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user