Creating an Excel workbook with two sheets: "Literal1_OtroIngreso" and "Literal3_VNR"
Each sheet will contain the journal entries in the requested format: Fecha, Código, Detalle, Parcial, Debe, Haber
import pandas as pd
from datetime import datetime
Use a sample date for entries
date_str = "28/02/20XX"
Literal 1 entries (Subproducto como otro ingreso)
rows_l1 = [
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (registro costos conjuntos)", "", 150000.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos aplicados)", "", "", 150000.00],
[date_str, "1.1.2.01", "Inventario de producto terminado (transferencia Depto.1)", "", 150000.00, ""],
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (por transferencia)", "", "", 150000.00],
[date_str, "1.1.3.01", "Inventario subproducto (costos adicionales Depto.2)", "", 800.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos adicionales Depto.2)", "", "", 800.00],
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta producto principal)", "", 200000.00, ""],
[date_str, "4.2.1.01", "Ventas — producto principal", "", "", 200000.00],
[date_str, "5.1.1.01", "Costo de ventas — producto principal", "", 120000.00, ""],
[date_str, "1.1.2.01", "Inventario de producto terminado (por salida a COGS)", "", "", 120000.00],
[date_str, "6.1.1.01", "Gastos de ventas y admin — producto principal", "", 60000.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (pago o provisión gastos principal)", "", "", 60000.00],
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta subproducto)", "", 2700.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (otro ingreso)", "", "", 2700.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (costos adicionales)", "", 800.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (por salida a COGS)", "", "", 800.00],
[date_str, "6.1.2.01", "Gastos de ventas/admin — subproducto", "", 300.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (pago gastos subproducto)", "", "", 300.00],
# Cierres: cerrar ventas a Resultado (Ingresos)
[date_str, "4.2.1.01", "Ventas — producto principal (cierre a PyG)", "", 200000.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (cierre a PyG)", "", 2700.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (Ingresos cerrados)", "", "", 202700.00],
# Cierres: cerrar gastos y COGS a Resultado
[date_str, "8.1.1.01", "Resultado del ejercicio (por cierre de gastos y COGS)", "", 181100.00, ""],
[date_str, "5.1.1.01", "Costo de ventas — producto principal (cierre)", "", "", 120000.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (cierre)", "", "", 800.00],
[date_str, "6.1.1.01", "Gastos ventas/admin — producto principal (cierre)", "", "", 60000.00],
[date_str, "6.1.2.01", "Gastos ventas/admin — subproducto (cierre)", "", "", 300.00],
# Resultado final a utilidades
[date_str, "8.1.2.01", "Utilidad del ejercicio (saldo)", "", 21600.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (por traslado a utilidades)", "", "", 21600.00],
]
df_l1 = pd.DataFrame(rows_l1, columns=["Fecha","Código","Detalle","Parcial","Debe ($)","Haber ($)"])
Literal 3 entries (VNR method)
rows_l3 = [
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (registro costos conjuntos)", "", 150000.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos aplicados)", "", "", 150000.00],
# Transfer split-off: allocate to product principal and subproduct (VNR)
[date_str, "1.1.2.01", "Inventario producto principal (porción neta del costo conjunto)", "", 147500.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (Valor Neto Realizable al split-off)", "", 2500.00, ""],
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (por transferencia al split-off)", "", "", 150000.00],
# Sales product principal
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta producto principal)", "", 200000.00, ""],
[date_str, "4.2.1.01", "Ventas — producto principal", "", "", 200000.00],
[date_str, "5.1.1.01", "Costo de ventas — producto principal", "", 118000.00, ""],
[date_str, "1.1.2.01", "Inventario producto principal (por salida a COGS)", "", "", 118000.00],
[date_str, "6.1.1.01", "Gastos de ventas y admin — producto principal", "", 60000.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (por gastos principal)", "", "", 60000.00],
# Sale subproduct (VNR approach: cost in inventory was 2,500; COGS proportionally)
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta subproducto)", "", 2700.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto", "", "", 2700.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (proporcional del VNR)", "", 1875.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (por salida a COGS)", "", "", 1875.00],
# Cierres: cerrar ventas a Resultado (Ingresos)
[date_str, "4.2.1.01", "Ventas — producto principal (cierre a PyG)", "", 200000.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (cierre a PyG)", "", 2700.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (Ingresos cerrados)", "", "", 202700.00],
# Cierres: cerrar gastos y COGS a Resultado (sum of COGS and expenses)
[date_str, "8.1.1.01", "Resultado del ejercicio (por cierre de gastos y COGS)", "", 179875.00, ""],
[date_str, "5.1.1.01", "Costo de ventas — producto principal (cierre)", "", "", 118000.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (cierre)", "", "", 1875.00],
[date_str, "6.1.1.01", "Gastos ventas/admin — producto principal (cierre)", "", "", 60000.00],
# Final result to utilidades (difference)
[date_str, "8.1.2.01", "Utilidad del ejercicio (saldo)", "", 22000.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (por traslado a utilidades)", "", "", 22000.00],
]
df_l3 = pd.DataFrame(rows_l3, columns=["Fecha","Código","Detalle","Parcial","Debe ($)","Haber ($)"])
Save to Excel with two sheets
file_path = "/mnt/data/LibroDiario_Subproductos_Lit1_Lit3.xlsx"
with pd.ExcelWriter(file_path, engine="xlsxwriter") as writer:
df_l1.to_excel(writer, sheet_name="Literal1_OtroIngreso", index=False)
df_l3.to_excel(writer, sheet_name="Literal3_VNR", index=False)
Display the first few rows of each DF for preview
import caas_jupyter_tools as cjt
cjt.display_dataframe_to_user("Libro Diario - Literal 1 (vista)", df_l1)
cjt.display_dataframe_to_user("Libro Diario - Literal 3 (vista)", df_l3)
Provide file path for user to download
file_path
Creating an Excel workbook with two sheets: "Literal1_OtroIngreso" and "Literal3_VNR"
Each sheet will contain the journal entries in the requested format: Fecha, Código, Detalle, Parcial, Debe, Haber
import pandas as pd
from datetime import datetime
Use a sample date for entries
date_str = "28/02/20XX"
Literal 1 entries (Subproducto como otro ingreso)
rows_l1 = [
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (registro costos conjuntos)", "", 150000.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos aplicados)", "", "", 150000.00],
[date_str, "1.1.2.01", "Inventario de producto terminado (transferencia Depto.1)", "", 150000.00, ""],
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (por transferencia)", "", "", 150000.00],
[date_str, "1.1.3.01", "Inventario subproducto (costos adicionales Depto.2)", "", 800.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos adicionales Depto.2)", "", "", 800.00],
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta producto principal)", "", 200000.00, ""],
[date_str, "4.2.1.01", "Ventas — producto principal", "", "", 200000.00],
[date_str, "5.1.1.01", "Costo de ventas — producto principal", "", 120000.00, ""],
[date_str, "1.1.2.01", "Inventario de producto terminado (por salida a COGS)", "", "", 120000.00],
[date_str, "6.1.1.01", "Gastos de ventas y admin — producto principal", "", 60000.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (pago o provisión gastos principal)", "", "", 60000.00],
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta subproducto)", "", 2700.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (otro ingreso)", "", "", 2700.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (costos adicionales)", "", 800.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (por salida a COGS)", "", "", 800.00],
[date_str, "6.1.2.01", "Gastos de ventas/admin — subproducto", "", 300.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (pago gastos subproducto)", "", "", 300.00],
# Cierres: cerrar ventas a Resultado (Ingresos)
[date_str, "4.2.1.01", "Ventas — producto principal (cierre a PyG)", "", 200000.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (cierre a PyG)", "", 2700.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (Ingresos cerrados)", "", "", 202700.00],
# Cierres: cerrar gastos y COGS a Resultado
[date_str, "8.1.1.01", "Resultado del ejercicio (por cierre de gastos y COGS)", "", 181100.00, ""],
[date_str, "5.1.1.01", "Costo de ventas — producto principal (cierre)", "", "", 120000.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (cierre)", "", "", 800.00],
[date_str, "6.1.1.01", "Gastos ventas/admin — producto principal (cierre)", "", "", 60000.00],
[date_str, "6.1.2.01", "Gastos ventas/admin — subproducto (cierre)", "", "", 300.00],
# Resultado final a utilidades
[date_str, "8.1.2.01", "Utilidad del ejercicio (saldo)", "", 21600.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (por traslado a utilidades)", "", "", 21600.00],
]
df_l1 = pd.DataFrame(rows_l1, columns=["Fecha","Código","Detalle","Parcial","Debe ($)","Haber ($ )"])
Literal 3 entries (VNR method)
rows_l3 = [
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (registro costos conjuntos)", "", 150000.00, ""],
[date_str, "2.0.0.01", "Proveedores / Bancos (por costos aplicados)", "", "", 150000.00],
# Transfer split-off: allocate to product principal and subproduct (VNR)
[date_str, "1.1.2.01", "Inventario producto principal (porción neta del costo conjunto)", "", 147500.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (Valor Neto Realizable al split-off)", "", 2500.00, ""],
[date_str, "1.1.1.01", "Inventario en proceso — Depto.1 (por transferencia al split-off)", "", "", 150000.00],
# Sales product principal
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta producto principal)", "", 200000.00, ""],
[date_str, "4.2.1.01", "Ventas — producto principal", "", "", 200000.00],
[date_str, "5.1.1.01", "Costo de ventas — producto principal", "", 118000.00, ""],
[date_str, "1.1.2.01", "Inventario producto principal (por salida a COGS)", "", "", 118000.00],
[date_str, "6.1.1.01", "Gastos de ventas y admin — producto principal", "", 60000.00, ""],
[date_str, "1.0.0.01", "Bancos / Proveedores (por gastos principal)", "", "", 60000.00],
# Sale subproduct (VNR approach: cost in inventory was 2,500; COGS proportionally)
[date_str, "1.1.4.01", "Cuentas por cobrar / Caja (Venta subproducto)", "", 2700.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto", "", "", 2700.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (proporcional del VNR)", "", 1875.00, ""],
[date_str, "1.1.3.01", "Inventario subproducto (por salida a COGS)", "", "", 1875.00],
# Cierres: cerrar ventas a Resultado (Ingresos)
[date_str, "4.2.1.01", "Ventas — producto principal (cierre a PyG)", "", 200000.00, ""],
[date_str, "4.2.1.02", "Ventas — subproducto (cierre a PyG)", "", 2700.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (Ingresos cerrados)", "", "", 202700.00],
# Cierres: cerrar gastos y COGS a Resultado (sum of COGS and expenses)
[date_str, "8.1.1.01", "Resultado del ejercicio (por cierre de gastos y COGS)", "", 179875.00, ""],
[date_str, "5.1.1.01", "Costo de ventas — producto principal (cierre)", "", "", 118000.00],
[date_str, "5.1.2.01", "Costo de ventas — subproducto (cierre)", "", "", 1875.00],
[date_str, "6.1.1.01", "Gastos ventas/admin — producto principal (cierre)", "", "", 60000.00],
# Final result to utilidades (difference)
[date_str, "8.1.2.01", "Utilidad del ejercicio (saldo)", "", 22000.00, ""],
[date_str, "8.1.1.01", "Resultado del ejercicio (por traslado a utilidades)", "", "", 22000.00],
]
df_l3 = pd.DataFrame(rows_l3, columns=["Fecha","Código","Detalle","Parcial","Debe ($)","Haber ($ )"])
Save to Excel with two sheets
file_path = "/mnt/data/LibroDiario_Subproductos_Lit1_Lit3.xlsx"
with pd.ExcelWriter(file_path, engine="xlsxwriter") as writer:
df_l1.to_excel(writer, sheet_name="Literal1_OtroIngreso", index=False)
df_l3.to_excel(writer, sheet_name="Literal3_VNR", index=False)
Display the first few rows of each DF for preview
import caas_jupyter_tools as cjt
cjt.display_dataframe_to_user("Libro Diario - Literal 1 (vista)", df_l1)
cjt.display_dataframe_to_user("Libro Diario - Literal 3 (vista)", df_l3)
Provide file path for user to download
file_path