diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/ni_ni_chart_template.json b/erpnext/accounts/doctype/account/chart_of_accounts/ni_ni_chart_template.json new file mode 100644 index 0000000000..6db540a503 --- /dev/null +++ b/erpnext/accounts/doctype/account/chart_of_accounts/ni_ni_chart_template.json @@ -0,0 +1,432 @@ +{ + "country_code": "ni", + "name": "Catalogo de Cuentas", + "is_active": "Yes", + "tree": { + "Activo": { + "Activo Corriente": { + "Efectivo en Caja y Bancos": { + "Caja": { + "Caja General Moneda Nacional": { + "account_type": "Cash" + }, + "Caja General Moneda Extrangera": { + "account_type": "Cash" + }, + "Caja Chica Moneda Nacional": { + "account_type": "Cash" + }, + "Caja Chica Moneda Extrangera": { + "account_type": "Cash" + }, + "Fondos por Depositar": { + "account_type": "Cash" + } + }, + "Cuentas Bancarias": { + "Cuenta Corriente Moneda Nacional": { + "account_type": "Bank" + }, + "Cuenta Corriente Moneda Extrangera": { + "account_type": "Bank" + } + }, + "Otros Equivalentes a Efectivo": { + "group_or_ledger": "Group", + "account_type": "Cash" + } + }, + "Activos Financieros Realizables a Corto Plazo": { + "Inversiones a Corto Plazo": {}, + "Bonos y Acciones Disponibles para la Venta": {}, + "Certificados Bancarios": {}, + "Otros Valores Negociables a Corto Plazo": {} + }, + "Cuentas y Documentos por Cobrar a Clientes": { + "Cuentas por Cobrar Moneda Nacional": { + "account_type": "Receivable" + }, + "Cuentas por Cobrar Moneda Extrangera": { + "account_type": "Receivable" + }, + "Documentos por Cobrar Moneda Nacional": { + "account_type": "Receivable" + }, + "Documentos por Cobrar Moneda Extrangera": { + "account_type": "Receivable" + }, + "Cuentas por Cobrar por Exportaciones": { + "account_type": "Receivable" + }, + "Estimacion para Cuentas Incobrables": {} + }, + "Inventarios": { + "group_or_ledger": "Group", + "account_type": "Stock" + }, + "Impuestos Acreditables": { + "Impuesto a Valor Agregado Acreditable": { + "IVA Acreditable por Compra de Bienes": { + "account_type": "Tax" + }, + "IVA Acreditable por Importaciones": { + "account_type": "Tax" + }, + "IVA Acreditable por Prestacion de Servicios": { + "account_type": "Tax" + }, + "Acreditacion Proporcional": {} + }, + "Anticipos de IR o Pago Minimo Definitivo": {}, + "Retenciones a Cuenta de IR Acreditables": { + "Retencion por V/Bienes o P/Servicios 2%": { + "account_type": "Tax" + }, + "Retencion Operaciones Targeta Debito/Credito 1.5%": { + "account_type": "Tax" + } + }, + "Retenciones a Cuenta de IMI Acreditables": {}, + "Retenciones Definitivas Sobre Rentas o Ganancias de Capital": {} + }, + "Otras Cuentas por Cobrar": { + "group_or_ledger": "Group", + "account_type": "Receivable" + } + }, + "Activo no Corriente": { + "Propiedad Planta y Equipo": { + "Terrenos": {}, + "Edificios": {}, + "Almacenes": {}, + "Otros Activos Inmobiliarios": {}, + "Parque Vehicular": {}, + "Equipo de Computo": {}, + "Mobiliario y Equipo de Oficinas": {}, + "Maquinaria Industrial": {}, + "Otra Bienes Mobiliarios": {}, + "Depresiacion Acumulada": {}, + "account_type": "Fixed Asset" + }, + "Inversiones Permanentes": { + "Inversiones Permanentes": { + "group_or_ledger": "Group", + "account_type": "Fixed Asset" + }, + "Negocios Conjuntos": { + "group_or_ledger": "Group", + "account_type": "Fixed Asset" + } + }, + "Bienes en Arrendamiento Financiero": { + "Locales y Edificios en Arrendamiento": {}, + "Equipos y Maquinaria en Arrendamiento": {} + }, + "Activos Intangibles": { + "Patentes": { + "group_or_ledger": "Group" + }, + "Marcas Registradas": { + "group_or_ledger": "Group" + }, + "Derechos de Autor": { + "group_or_ledger": "Group" + }, + "Concesiones": { + "group_or_ledger": "Group" + }, + "Licencias": { + "group_or_ledger": "Group" + }, + "Gastos de investigacion": { + "group_or_ledger": "Group" + }, + "Amortizacion de Activos Intangibles": { + "group_or_ledger": "Group" + }, + "Deterioro de Valor de Activos Intangibles": {} + }, + "Amortizables": { + "Gastos de Consitucion": {}, + "Gastos Pre Operativos": {}, + "Mejoras en Bienes Arrendados": { + "group_or_ledger": "Group" + }, + "Amortizacion de Activos Amortizables": {}, + "Deterioro de Valaor de Activos Amortizables": {} + }, + "Cuentas por Cobrar a Largo Plazo": { + "Creditos a Largo Plazo": { + "group_or_ledger": "Group" + } + }, + "Inversiones a Largo Plazo": { + "Depositos Bancarios a Plazo": { + "group_or_ledger": "Group" + }, + "Intereses percibidos por adelantado": { + "group_or_ledger": "Group" + }, + "Titulos y Acciones": { + "group_or_ledger": "Group" + } + }, + "Activo por Impuestos Diferidos": { + "group_or_ledger": "Group" + } + }, + "root_type": "Asset" + }, + "Pasivo": { + "Pasivo Corriente": { + "Cuentas por Pagar Proveedores": { + "Cuentas por Pagar Moneda Nacional": { + "account_type": "Payable" + }, + "Cuentas por Pagar Moneda Extrangera": { + "account_type": "Payable" + }, + "Documentos por Pagar Moneda Nacional": { + "account_type": "Payable" + }, + "Documentos por Pagar Moneda Extrangera": { + "account_type": "Payable" + }, + "Cuentas por Pagar por Importaciones": { + "account_type": "Payable" + } + }, + "Anticipos de Clientes": {}, + "Pasivos Financieros a Corto Plazo": { + "Prestamos por Pagar a Corto Plazo": { + "group_or_ledger": "Group" + }, + "Sobregiros Bancarios": { + "group_or_ledger": "Group" + }, + "Otras Deudas Bancarias": { + "group_or_ledger": "Group" + } + }, + "Gastos por Pagar": { + "Servicios Basicos": { + "group_or_ledger": "Group" + }, + "Prestaciones Sociales": { + "group_or_ledger": "Group" + }, + "Salarios por Pagar": {} + }, + "Provisiones por Pagar": { + "Pasivos Laborales": { + "Indemnizacion Laboral": {}, + "Aguinaldo por Pagar": {} + }, + "Reclamos por Pagar": {}, + "Responsabilidad frente a terceros": {} + }, + "Impuestos por Pagar": { + "Impuesto al Valor Agregado por Pagar": { + "account_type": "Tax" + }, + "Impuesto sobre la Renta": { + "account_type": "Tax" + }, + "Impuestos Municipales": { + "account_type": "Tax" + } + }, + "Retenciones por Pagar": { + "Rentas del Trabajo": { + "Retencion Rentas del Trabajo Tarifa Progresiva": { + "account_type": "Tax" + }, + "Retencion Definitiva por Rentas del Trabajo": { + "account_type": "Tax" + } + }, + "Rentas de Actividades Economicas": { + "Retencion 2% por C/Bienes o P/Servicios": { + "account_type": "Tax" + }, + "Retencion 10% Servicios Profesionales": { + "account_type": "Tax" + }, + "Retencion 3% compra Bienes Agropecuarios": { + "account_type": "Tax" + }, + "Retencion 5% compra Madera en Rollo": { + "account_type": "Tax" + }, + "Otras Retenciones 10%": { + "account_type": "Tax" + } + }, + "Rentas y Ganancias de Capital": { + "Retencion Defintiva 10% por Rentas de Capital": { + "account_type": "Tax" + }, + "Retencion Definitiva 5% por Rentas de Capital": { + "account_type": "Tax" + }, + "Retencion Definitiva 10% por Ganancia de Capital": { + "account_type": "Tax" + }, + "Retencion Definitiva Actividades Economicas No Residentes": { + "account_type": "Tax" + }, + "Retencion Definitiva Transacciones Bursatiles": { + "account_type": "Tax" + }, + "Retenciones Defintiva 5% Fondos de Inversion": { + "account_type": "Tax" + } + }, + "Retencion 17% Operaciones con Paraisos Fiscales": { + "account_type": "Tax" + } + }, + "Otras Cuentas por Pagar": { + "group_or_ledger": "Group" + } + }, + "Pasivo No Corriente": { + "Prestamos a Largo Plazo": { + "group_or_ledger": "Group" + }, + "Cuentas por Pagar a Largo Plaso": { + "group_or_ledger": "Group" + }, + "Otras Cuentas por Pagar a Largo Plazo": { + "group_or_ledger": "Group" + }, + "Otros Pasivos Financieros a Largo Plaso": { + "group_or_ledger": "Group" + } + }, + "Obligaciones por Arrendamiento Financiero a Largo Plazo": { + "group_or_ledger": "Group" + }, + "Pasivo por Impuestos Diferidos": { + "group_or_ledger": "Group" + }, + "root_type": "Liability" + }, + "Patrimonio": { + "Aporte de Socios": { + "Capital": { + "Capital Social Pagado": { + "account_type": "Equity" + }, + "Capital Social no Pagado": { + "account_type": "Equity" + } + } + }, + "Donaciones": { + "group_or_ledger": "Group" + }, + "Ganancias Acumuladas": { + "Reservas": { + "Reservas Legales": { + "account_type": "Equity" + }, + "Reservas Voluntarias": { + "account_type": "Equity" + } + }, + "Resultados": { + "Resultados Acumulados": { + "account_type": "Equity" + }, + "Ajustes a Periodos Anteriores": { + "account_type": "Equity" + }, + "Resultado del ejercicio": { + "account_type": "Equity" + } + } + }, + "root_type": "Equity" + }, + "Ingresos": { + "Ventas": { + "Venta de Bienes o Prestacion de Servicios Grabados": {}, + "Venta de Bienes o Prestacion de Servicios Exentos": {}, + "Venta de Bienes o Prestacion de Servicios Exonerados": {}, + "Venta por Exportaciones": {} + }, + "Otros Ingresos Grabables": { + "Ganacia Cambiaria": {}, + "Sobrante en Arqueo de Caja": {}, + "Otros Ingresos Grabables": {} + }, + "Ingresos no Grabables": { + "Ingreso por Rentas y Ganacias de Capital sujetas a Retencion Definitiva": {}, + "Interes Bancarios": {}, + "Otros Ingresos no Grabables": {} + }, + "root_type": "Income" + }, + "Costos y Gastos": { + "Costo de Venta": { + "Costo de Bienes": {}, + "Costo de Servicios": {}, + "Costo de Produccion": {}, + "account_type": "Cost of Goods Sold" + }, + "Gastos de Ventas": { + "Publicidad": {}, + "Mercadeo": {}, + "Muestras Gratis": {}, + "Regalosa Clientes": {}, + "Fletes": {}, + "Promociones": {} + }, + "Gastos de Administracion": { + "Alquileres": {}, + "Combustible": {}, + "Servicios Basicos": { + "Energia Electrica": {}, + "Agua Potable": {}, + "Internet": {}, + "Telefono Fijo": {}, + "Celular": {}, + "Costos por Servicios WEB": {} + }, + "Vigilancia": {}, + "Gastos Varios": {}, + "Mantenimiento y Reparaciones": {}, + "Papeleria": {}, + "Representacion": {}, + "Amortizaciones": {}, + "Inatec": {}, + "Indemnizacion": {}, + "Fletes y Correos": {}, + "Cuentas Incobrables": {}, + "Capacitacion al Personal": {}, + "Uniformes": {}, + "Seguros": {}, + "Donaciones": {}, + "Impuesto Municipal": {}, + "Matricula": {}, + "Recoleccion de Basura": {}, + "IVA Proporcional no Acreditado": {}, + "Ayuda a Empleados": {} + }, + "Gastos por Servicios Profesionales y Tecnicos": {}, + "Gastos por Salarios y Otras Compensaciones": {}, + "Gastopor Depreciacion": {}, + "Otros Gastos": { + "Perdida Cambiario": {}, + "Perdida e nVenta de Activo Fijo": {}, + "Siniestros": {}, + "Certificacion de Cheques y Chequeras": {} + }, + "Costos y Gastos No Deducibles": {}, + "Impuesto por Rentas y Ganancias de Capital": {}, + "Impuesto sobre la Rentade Activividades Economicas": {}, + "root_type": "Expense" + } + } +} diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py index a96224882c..67b53f633b 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.py +++ b/erpnext/manufacturing/doctype/production_order/production_order.py @@ -35,6 +35,7 @@ class ProductionOrder(Document): self.validate_sales_order() self.validate_warehouse() self.calculate_operating_cost() + self.validate_delivery_date() from erpnext.utilities.transaction_base import validate_uom_is_integer validate_uom_is_integer(self, "stock_uom", ["qty", "produced_qty"]) @@ -219,6 +220,13 @@ class ProductionOrder(Document): else: self.actual_start_date = None self.actual_end_date = None + + def validate_delivery_date(self): + if self.planned_start_date and self.expected_delivery_date and getdate(self.expected_delivery_date) < getdate(self.planned_start_date): + frappe.throw(_("Expected Delivery Date cannot be greater than Planned Start Date")) + + if self.planned_end_date and self.expected_delivery_date and getdate(self.expected_delivery_date) < getdate(self.planned_end_date): + frappe.msgprint(_("Production might not be able to finish by the Expected Delivery Date.")) @frappe.whitelist() def get_item_details(item): diff --git a/erpnext/manufacturing/doctype/workstation/workstation.py b/erpnext/manufacturing/doctype/workstation/workstation.py index d679b94deb..00f7ee644b 100644 --- a/erpnext/manufacturing/doctype/workstation/workstation.py +++ b/erpnext/manufacturing/doctype/workstation/workstation.py @@ -32,7 +32,7 @@ class Workstation(Document): def validate_overlap_for_operation_timings(self): for d in self.get("working_hours"): - existing = frappe.db.sql_list("""select idx from `tabWorkstation Operation Hours` + existing = frappe.db.sql_list("""select idx from `tabWorkstation Working Hour` where parent = %s and name != %s and ( (start_time between %s and %s) or diff --git a/erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json b/erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json index 2afc2e7f37..a513cdee8f 100644 --- a/erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json +++ b/erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json @@ -115,7 +115,7 @@ "is_submittable": 0, "issingle": 0, "istable": 1, - "modified": "2014-12-24 14:46:40.678236", + "modified": "2015-02-11 14:55:55.650726", "modified_by": "Administrator", "module": "Manufacturing", "name": "Workstation Working Hour", diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json index 184c351b02..9575ce9446 100644 --- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json +++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json @@ -1,129 +1,129 @@ { - "allow_import": 0, - "autoname": "LCV.####", - "creation": "2014-07-11 11:33:42.547339", - "docstatus": 0, - "doctype": "DocType", - "document_type": "Transaction", + "allow_import": 0, + "autoname": "LCV.####", + "creation": "2014-07-11 11:33:42.547339", + "docstatus": 0, + "doctype": "DocType", + "document_type": "Transaction", "fields": [ { - "fieldname": "company", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Company", - "options": "Company", - "permlevel": 0, + "fieldname": "company", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Company", + "options": "Company", + "permlevel": 0, "reqd": 1 - }, + }, { - "fieldname": "purchase_receipts", - "fieldtype": "Table", - "label": "Purchase Receipts", - "options": "Landed Cost Purchase Receipt", + "fieldname": "purchase_receipts", + "fieldtype": "Table", + "label": "Purchase Receipts", + "options": "Landed Cost Purchase Receipt", "permlevel": 0 - }, + }, { - "fieldname": "get_items_from_purchase_receipts", - "fieldtype": "Button", - "label": "Get Items From Purchase Receipts", + "fieldname": "get_items_from_purchase_receipts", + "fieldtype": "Button", + "label": "Get Items From Purchase Receipts", "permlevel": 0 - }, + }, { - "fieldname": "items", - "fieldtype": "Table", - "label": "Purchase Receipt Items", - "no_copy": 1, - "options": "Landed Cost Item", - "permlevel": 0, + "fieldname": "items", + "fieldtype": "Table", + "label": "Purchase Receipt Items", + "no_copy": 1, + "options": "Landed Cost Item", + "permlevel": 0, "read_only": 0 - }, + }, { - "fieldname": "taxes", - "fieldtype": "Table", - "label": "Taxes and Charges", - "options": "Landed Cost Taxes and Charges", + "fieldname": "taxes", + "fieldtype": "Table", + "label": "Taxes and Charges", + "options": "Landed Cost Taxes and Charges", "permlevel": 0 - }, + }, { - "fieldname": "sec_break1", - "fieldtype": "Section Break", - "options": "Simple", - "permlevel": 0, + "fieldname": "sec_break1", + "fieldtype": "Section Break", + "options": "Simple", + "permlevel": 0, "precision": "" - }, + }, { - "fieldname": "total_taxes_and_charges", - "fieldtype": "Currency", - "label": "Total Taxes and Charges", - "options": "Company:company:default_currency", - "permlevel": 0, - "read_only": 1, + "fieldname": "total_taxes_and_charges", + "fieldtype": "Currency", + "label": "Total Taxes and Charges", + "options": "Company:company:default_currency", + "permlevel": 0, + "read_only": 1, "reqd": 1 - }, + }, { - "fieldname": "amended_from", - "fieldtype": "Link", - "label": "Amended From", - "no_copy": 1, - "options": "Landed Cost Voucher", - "permlevel": 0, - "print_hide": 1, + "fieldname": "amended_from", + "fieldtype": "Link", + "label": "Amended From", + "no_copy": 1, + "options": "Landed Cost Voucher", + "permlevel": 0, + "print_hide": 1, "read_only": 1 - }, + }, { - "fieldname": "col_break1", - "fieldtype": "Column Break", - "permlevel": 0, + "fieldname": "col_break1", + "fieldtype": "Column Break", + "permlevel": 0, "precision": "" - }, + }, { - "default": "Amount", - "fieldname": "distribute_charges_based_on", - "fieldtype": "Select", - "label": "Distribute Charges Based On", - "options": "\nQty\nAmount", - "permlevel": 0, - "precision": "", + "default": "Amount", + "fieldname": "distribute_charges_based_on", + "fieldtype": "Select", + "label": "Distribute Charges Based On", + "options": "\nQty\nAmount", + "permlevel": 0, + "precision": "", "reqd": 1 - }, + }, { - "fieldname": "sec_break2", - "fieldtype": "Section Break", - "permlevel": 0, + "fieldname": "sec_break2", + "fieldtype": "Section Break", + "permlevel": 0, "precision": "" - }, + }, { - "fieldname": "landed_cost_help", - "fieldtype": "HTML", - "label": "Landed Cost Help", - "options": "", + "fieldname": "landed_cost_help", + "fieldtype": "HTML", + "label": "Landed Cost Help", + "options": "", "permlevel": 0 } - ], - "icon": "icon-usd", - "is_submittable": 1, - "modified": "2015-02-05 05:11:40.305974", - "modified_by": "Administrator", - "module": "Stock", - "name": "Landed Cost Voucher", - "name_case": "", - "owner": "Administrator", + ], + "icon": "icon-usd", + "is_submittable": 1, + "modified": "2015-02-11 16:21:49.528566", + "modified_by": "Administrator", + "module": "Stock", + "name": "Landed Cost Voucher", + "name_case": "", + "owner": "Administrator", "permissions": [ { - "amend": 1, - "cancel": 1, - "create": 1, - "delete": 1, - "export": 1, - "permlevel": 0, - "read": 1, - "report": 1, - "role": "Material Manager", - "share": 1, - "submit": 1, + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "export": 1, + "permlevel": 0, + "read": 1, + "report": 1, + "role": "Material Manager", + "share": 1, + "submit": 1, "write": 1 } - ], - "sort_field": "modified", + ], + "sort_field": "modified", "sort_order": "DESC" -} +} \ No newline at end of file