{ -------------------------------------------------------------------------------- PROGRAMA : CTPRRP007 DESCRIPCION : Reporte costo unitario real OBSERVACION : Este reporte toma las informaciones de dos codigos de movimiento de ventas que son el 30 y el 31 PROGRAMADOR : Juan F. Soto FECHA : Julio 12, 1993 -------------------------------------------------------------------------------- } GLOBALS "ctprgb000.4gl" DEFINE pilas LIKE iptb00002.nomenclatura DEFINE codigos RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec END RECORD DEFINE salir CHAR(1) DEFINE cod_pila CHAR(4), codigo CHAR(2) DEFINE selec1,selec2 CHAR(1000) DEFINE p_ano CHAR(4) DEFINE idx_1,idx_2,j,p_mes,engano SMALLINT DEFINE p_fecha1,p_fecha DATE # Variables para hacer calculo de variacion en el material DEFINE total_m,total_l,total_g,total_1,total_2,total_3 DECIMAL(12,3) # Definicion del arreglo para la impresion de las informaciones DEFINE arr_calc ARRAY[70] OF RECORD cod_mov SMALLINT, l_pilas LIKE iptb00002.nomenclatura, l_ventas DECIMAL(12,3), l_material_std DECIMAL(12,3), l_porc_mat DECIMAL(8,2), l_variacion_mat DECIMAL(12,3), l_costo_mat_real DECIMAL(12,3), l_costo_unitario DECIMAL(8,3), l_labor DECIMAL(12,3), l_porc_lab DECIMAL(8,2), l_variacion_lab DECIMAL(12,3), l_costo_lab_real DECIMAL(12,3), l_costo_primo_real DECIMAL(12,3), l_costo_primo_unit DECIMAL(8,3), l_gastos DECIMAL(12,3), l_porc_gas DECIMAL(8,2), l_variacion_gas DECIMAL(12,3), l_gastos_real DECIMAL(12,3), l_costo_total DECIMAL(12,3), l_costo_unit_var DECIMAL(8,3), l_costo_unit_fijo DECIMAL(8,3), l_costo_unit_total DECIMAL(8,3) END RECORD FUNCTION ctprrp007() # Definicion del record para el select de las ventas del mes DEFINE ventas RECORD pilas LIKE iptb00002.nomenclatura, cantidad DECIMAL(12,3), valor_m DECIMAL(12,3), valor_l DECIMAL(12,3), valor_g DECIMAL(12,3), cod_mov LIKE iptb00006.cod_mov END RECORD OPTIONS FORM LINE 9, COMMENT LINE 23, ERROR LINE 24 CALL pantalla() DISPLAY "ctprrp007" AT 4,3 DISPLAY "Costo Unitario Real" AT 6,31 OPEN FORM ctfmrp007 FROM "ctfmrp007" DISPLAY FORM ctfmrp007 LET tipo_papel = 2 CALL msgrp000(tipo_papel) CONSTRUCT BY NAME criterio ON a.cod_n # Entrada del mes del reporte y el ano, valores dados en el reporte INPUT BY NAME p_mes,p_ano,total_1,total_2,total_3 AFTER FIELD p_ano SELECT fecha_inicio,fecha_corte INTO p_fecha1,p_fecha FROM prdtable WHERE mes = p_mes and ano = p_ano LET p_fechas = p_fecha USING "dd/mm/yy" CALL prd() IF bandera = 1 THEN LET bandera = 0 #NEXT FIELD p_mes END IF DISPLAY "<< Buscando Balances Cuentas... Espere Por Favor >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) # Determinando los valores correspondiente a la variacion en labor, # material y gasto indirecto desde la tabla de contabilidad general # Material SELECT sum(a.debito-a.credito) INTO total_1 FROM cgtb00004 a,cttb00033 b WHERE a.cuenta_no = b.cuenta_m and a.status_t is null and a.fecha between p_fecha1 and p_fecha # Labor SELECT sum(a.debito-a.credito) INTO total_2 FROM cgtb00004 a,cttb00033 b WHERE a.cuenta_no = b.cuenta_l and a.status_t is null and a.fecha between p_fecha1 and p_fecha # Gasto Indirecto SELECT sum(a.debito-a.credito) INTO total_3 FROM cgtb00004 a,cttb00033 b WHERE a.cuenta_no = b.cuenta_g and status_t is null and fecha between p_fecha1 and p_fecha DISPLAY BY NAME total_1,total_2,total_3 ATTRIBUTE (blue) IF total_1 is null THEN LET total_1 = 0 END IF IF total_2 is null THEN LET total_2 = 0 END IF IF total_3 is null THEN LET total_3 = 0 END IF { LET total_1 = total_1 / 1000 LET total_2 = total_2 / 1000 LET total_3 = total_3 / 1000 } DISPLAY BY NAME total_1 DISPLAY " " AT 19,14 AFTER FIELD total_1 IF total_1 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD total_1 END IF AFTER FIELD total_2 IF total_2 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD total_2 END IF AFTER FIELD total_3 IF total_3 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD total_3 END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET p_fechas = p_fecha USING "dd/mm/yy" CALL prd() IF bandera = 1 THEN LET bandera = 0 #NEXT FIELD p_mes END IF EXIT INPUT END INPUT # Borra los datos de esta tabla que contiene informaciones generada por este # repoorte para el reporte ctprrp012 DELETE FROM cttb00036 WHERE fecha_lq = p_fecha DELETE FROM cttb00021 WHERE mes = p_mes DELETE FROM cttb00027 WHERE mes = p_mes # Seleccion de busqueda de la venta del mes especificado LET selec1 = "SELECT a.nomenclatura,sum(c.cantidad),sum(c.cantidad*f.material),", " sum(c.cantidad*f.labor),sum(c.cantidad*f.gastos),f.ventas ", "FROM iptb00002 a, vetb00003 c, prdtable d, iptb00004 f, vetb00002 e ", "WHERE (a.cod_n = c.cod_n and a.cod_grupo = c.cod_grupo and ", " a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec and ", " c.cod_n = f.cod_n and c.cod_grupo = f.cod_grupo and ", " c.cod_tipo = f.cod_tipo and c.cod_sec = f.cod_sec) and ", " f.ano = ? and f.ventas = '1' and (e.factura=c.factura) and ", " (e.fecha_factura between d.fecha_inicio and d.fecha_corte) and ", " d.mes = ? and d.ano = ? and (",criterio clipped,") and ", " a.nomenclatura is not null and c.status_t is null ", "GROUP BY 1,6 ORDER BY 6,1" DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec1 DECLARE busca1 SCROLL CURSOR FOR comando OPEN busca1 USING p_ano,p_mes,p_ano DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE(REVERSE) START REPORT varia TO "C:\\archivo" LET idx = 1 LET salir = "N" LET idx_1 = 1 LET total_m = 0 LET total_l = 0 LET total_g = 0 WHILE status != notfound FETCH ABSOLUTE idx_1 busca1 INTO ventas.* IF status = notfound THEN LET idx_1 = 1 EXIT WHILE END IF # Validacion de variables para la unidades vendidas y costo materiales, # costo labor, costo gasto indirecto LET arr_calc[idx].cod_mov = ventas.cod_mov LET arr_calc[idx].l_pilas = ventas.pilas LET arr_calc[idx].l_ventas = ventas.cantidad #/ 1000 LET idx_1 = idx_1 + 1 LET arr_calc[idx].l_material_std = ventas.valor_m #/1000 LET arr_calc[idx].l_labor = ventas.valor_l #/1000 LET arr_calc[idx].l_gastos = ventas.valor_g #/1000 LET total_m = arr_calc[idx].l_material_std + total_m LET total_l = arr_calc[idx].l_labor + total_l LET total_g = arr_calc[idx].l_gastos + total_g LET idx = idx + 1 END WHILE FOR j = 1 TO idx # Calculos para las ventas locales # Calculo material #IF arr_calc[j].cod_mov = 30 THEN LET arr_calc[j].l_porc_mat = (arr_calc[j].l_material_std / total_m) * 100 LET arr_calc[j].l_variacion_mat = (arr_calc[j].l_porc_mat * total_1)/100 LET arr_calc[j].l_costo_mat_real = arr_calc[j].l_material_std + arr_calc[j].l_variacion_mat LET arr_calc[j].l_costo_unitario = arr_calc[j].l_costo_mat_real / arr_calc[j].l_ventas # Calculo de Labor IF total_l > 0 THEN LET arr_calc[j].l_porc_lab = (arr_calc[j].l_labor / total_l) * 100 END IF LET arr_calc[j].l_variacion_lab = (arr_calc[j].l_porc_lab * total_2)/100 LET arr_calc[j].l_costo_lab_real = arr_calc[j].l_labor + arr_calc[j].l_variacion_lab LET arr_calc[j].l_costo_primo_real = arr_calc[j].l_costo_mat_real + arr_calc[j].l_costo_lab_real LET arr_calc[j].l_costo_primo_unit = arr_calc[j].l_costo_primo_real / arr_calc[j].l_ventas # Gastos indirectos IF total_g > 0 THEN LET arr_calc[j].l_porc_gas = (arr_calc[j].l_gastos / total_g)* 100 END IF LET arr_calc[j].l_variacion_gas = (arr_calc[j].l_porc_gas * total_3)/100 LET arr_calc[j].l_gastos_real = arr_calc[j].l_gastos + arr_calc[j].l_variacion_gas # Costos totales LET arr_calc[j].l_costo_total = arr_calc[j].l_costo_mat_real + arr_calc[j].l_costo_lab_real + arr_calc[j].l_gastos_real LET arr_calc[j].l_costo_unit_var = arr_calc[j].l_costo_primo_unit LET arr_calc[j].l_costo_unit_fijo = arr_calc[j].l_gastos_real / arr_calc[j].l_ventas LET arr_calc[j].l_costo_unit_total = arr_calc[j].l_costo_total / arr_calc[j].l_ventas END FOR LET engano = 1 OUTPUT TO REPORT varia(engano) FINISH REPORT varia RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT varia(engana) DEFINE e,i,p,k,o,engana,l SMALLINT DEFINE comp_off,normal,comp_on CHAR(3) DEFINE imprime CHAR(1) DEFINE t_ventas,t_porc_m,t_porc_l,t_porc_g,t_costo_mat_real,t_costo_lab_real, t_costo_primo_real,t_costo_primo_unit,t_costo_unit_mat, t_gastos_real,t_costos_totales,t_costo_unit_var, t_costo_unit_fijo,t_costo_unit_total DECIMAL (12,3) OUTPUT TOP MARGIN 3 ORDER BY engana FORMAT PAGE HEADER LET idx = idx - 1 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET l = ((idx * 14) - 26)/2 LET k = ((idx * 14) - 30)/2 LET p = ((idx * 14) - 18)/2 LET l = l + 17 LET k = k + 17 LET p = p + 17 PRINT comp_on PRINT COLUMN 1, "ctprrp007" PRINT COLUMN l, p_compania.nombre CLIPPED; # Cuadre de la fecha del dia y la hora LET e = 0 FOR j = 1 to idx IF arr_calc[j].cod_mov = 1 THEN LET o = o + 1 END IF IF arr_calc[j].cod_mov = 2 THEN LET e = e + 1 END IF END FOR LET i = (idx * 12) + 26 + 17 PRINT COLUMN i, today using "dd/mm/yy" PRINT COLUMN k, "DETERMINACION COSTOS UNITARIOS" , COLUMN i, time PRINT COLUMN p, "VALOR EN MILES RD$" SKIP 1 LINE SELECT descrip INTO descrip1 FROM mestable WHERE mes = p_mes PRINT COLUMN 1, "Mes de ",descrip1 clipped," de ",p_ano LET l = 1 FOR j = 1 to idx PRINT COLUMN l, "--------------"; LET l = l + 14 END FOR PRINT COLUMN l, "-----------------------------" LET t_ventas = 0 LET t_porc_m = 0 LET t_porc_l = 0 LET t_porc_g = 0 LET t_costo_mat_real = 0 LET t_costo_unit_mat = 0 LET t_costo_lab_real = 0 LET t_costo_primo_real = 0 LET t_costo_primo_unit = 0 LET t_gastos_real = 0 LET t_costos_totales = 0 LET t_costo_unit_var = 0 LET t_costo_unit_fijo = 0 LET t_costo_unit_total = 0 BEFORE GROUP OF engana LET imprime = "N" # Determinar el cuadre del encabezado MERCADO EXPORTACION LET l = 0 LET k = 0 FOR j = 1 to idx IF arr_calc[j].cod_mov = 1 THEN LET l = l + 1 END IF IF arr_calc[j].cod_mov = 2 THEN LET k = k + 1 END IF END FOR LET l = l * 12 LET k = (((k * 12)+l) - 19)/2 PRINT COLUMN 40, "MERCADO LOCAL" # COLUMN l+k+3, "MERCADO EXPORTACION" #---------------------------------------------------------------------------- LET l = 1 FOR j = 1 to idx PRINT COLUMN l, "----------------"; LET l = l + 16 END FOR PRINT COLUMN l, "-----------------------------" LET l = 30 FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; LET imprime = "S" END IF END IF PRINT COLUMN l+6, "Producto"; LET l = l + 14 END FOR PRINT COLUMN l + 9, "COSTO" LET imprime = "N" LET l = 30 FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+2, "|"; END IF END IF PRINT COLUMN l+6, arr_calc[j].l_pilas; LET l = l + 14 END FOR PRINT COLUMN l+9, "TOTAL" LET l = 1 FOR j = 1 to idx PRINT COLUMN l, "--------------"; LET l = l + 14 END FOR PRINT COLUMN l, "-----------------------------" LET imprime = "N" # Impresion del detalle # de cada renglon del reporte LET l = 30 PRINT COLUMN 1, "Unidades Vendidas"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_ventas using "##,###,###.###"; LET t_ventas = t_ventas + arr_calc[j].l_ventas LET l = l + 14 END FOR PRINT COLUMN l+4, t_ventas using "---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Material al std"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_material_std using "##,###,###.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_m using "####,###.###" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Porciento del Total"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+4, arr_calc[j].l_porc_mat using "#,###.#","%"; LET t_porc_m = arr_calc[j].l_porc_mat + t_porc_m LET l = l + 14 END FOR PRINT COLUMN l+4, t_porc_m using "---,---.#" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Variacion en Material"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_variacion_mat using "--,---,---.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_1 using "-----,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Material al Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_mat_real using "--,---,---.###"; LET t_costo_mat_real = arr_calc[j].l_costo_mat_real + t_costo_mat_real LET l = l + 14 INSERT INTO cttb00021 VALUES (arr_calc[j].cod_mov,p_mes,arr_calc[j].l_pilas, arr_calc[j].l_costo_mat_real,arr_calc[j].l_costo_lab_real, arr_calc[j].l_costo_unit_fijo,user,current) END FOR PRINT COLUMN l+4, t_costo_mat_real using "--,----,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Unitario Real en Cuanto" PRINT COLUMN 1, "a Materia Prima..."; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+2, arr_calc[j].l_costo_unitario using "--,---.###"; LET t_costo_unit_mat = arr_calc[j].l_costo_unitario + t_costo_unit_mat LET l = l + 14 END FOR PRINT COLUMN l+4, t_costo_unit_mat using "---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Labor Directa al std"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_labor using "###,###.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_l using "###,###.###" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Porciento del Total"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+4, arr_calc[j].l_porc_lab using "#,###.#","%"; LET t_porc_l = arr_calc[j].l_porc_lab + t_porc_l LET l = l + 14 END FOR PRINT COLUMN l+4, t_porc_l using "---,---.#" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Variacion en Labor "; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_variacion_lab using "---,---.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_2 using "---,---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Labor al Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+2, arr_calc[j].l_costo_lab_real using "----,---.###"; LET t_costo_lab_real = arr_calc[j].l_costo_lab_real + t_costo_lab_real LET l = l + 14 END FOR PRINT COLUMN l+4, t_costo_lab_real using "----,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Primo al Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_primo_real using "--,---,---.###"; LET t_costo_primo_real = arr_calc[j].l_costo_primo_real + t_costo_primo_real LET l = l + 14 LET cod_pila = arr_calc[j].l_pilas[1,4] { SELECT UNIQUE cod_n INTO articulos.cod_n FROM iptb00002 WHERE nomenclatura = cod_pila LET codigo = articulos.cod_n using "#", articulos.cod_grupo using "#" INSERT INTO cttb00027 VALUES (arr_calc[j].cod_mov,p_mes,codigo,arr_calc[j].l_costo_primo_real, user,current) } END FOR PRINT COLUMN l+4, t_costo_primo_real using "--,---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Primo Unitario al Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_primo_unit using "---,---.###"; LET t_costo_primo_unit = arr_calc[j].l_costo_primo_unit + t_costo_primo_unit LET l = l + 14 END FOR PRINT COLUMN l+4, t_costo_primo_unit using "---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Gasto Indirectos"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_gastos using "--,---,---.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_g using "((##,###,###.###)" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Porciento del Total"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+2, arr_calc[j].l_porc_gas using "#,###.#","%"; LET t_porc_g = arr_calc[j].l_porc_gas + t_porc_g LET l = l + 14 END FOR PRINT COLUMN l+4, t_porc_g using "---,---.#" LET imprime = "N" LET l = 30 PRINT COLUMN 1, "Variacion Gasto"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_variacion_gas using "----,---.###"; LET l = l + 14 END FOR PRINT COLUMN l+4, total_3 using "----,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Gasto Indirecto Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l+1, arr_calc[j].l_gastos_real using "--,---,---.###"; LET t_gastos_real = arr_calc[j].l_gastos_real + t_gastos_real LET l = l + 14 END FOR PRINT COLUMN l+4, t_gastos_real using "-----,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Totales "; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_total using "--,---,---.###"; LET t_costos_totales = arr_calc[j].l_costo_total + t_costos_totales LET l = l + 14 END FOR PRINT COLUMN l+4, t_costos_totales using "--,---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Unitario Variable Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_unit_var using "---,---.###"; LET t_costo_unit_var = arr_calc[j].l_costo_unit_var + t_costo_unit_var LET l = l + 14 END FOR PRINT COLUMN l+4, t_costo_unit_var using "---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Unitario Fijo Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_unit_fijo using "---,---.###"; LET t_costo_unit_fijo = arr_calc[j].l_costo_unit_fijo + t_costo_unit_fijo LET l = l + 14 END FOR PRINT COLUMN l+4, t_costo_unit_fijo using "---,---.###" LET imprime = "N" LET l = 30 SKIP 1 LINE PRINT COLUMN 1, "Costo Unitario Total Real"; FOR j = 1 TO idx IF imprime = "N" THEN IF arr_calc[j].cod_mov = 2 THEN LET imprime = "S" PRINT COLUMN l+3, "|"; END IF END IF PRINT COLUMN l, arr_calc[j].l_costo_unit_total using "---,---.###"; LET t_costo_unit_total = arr_calc[j].l_costo_unit_total + t_costo_unit_total LET l = l + 14 # Busca Las Pilas Relacionadas con la nomenclatura para insertarla en # la tabla cttb00036 LET pilas = arr_calc[j].l_pilas DECLARE busca CURSOR FOR SELECT cod_n,cod_grupo,cod_tipo,cod_sec FROM iptb00002 WHERE nomenclatura = pilas and status_t is null FOREACH busca INTO codigos.* INSERT INTO cttb00036 VALUES (arr_calc[j].cod_mov,p_fecha,null,codigos.cod_n, codigos.cod_grupo,codigos.cod_tipo,codigos.cod_sec,0, arr_calc[j].l_costo_unit_total,NULL,USER,CURRENT,null, null) END FOREACH END FOR PRINT COLUMN l+4, t_costo_unit_total using "---,---.##" LET l = 1 FOR j = 1 to idx PRINT COLUMN l, "================"; LET l = l + 16 END FOR PRINT COLUMN l, "=============================" PRINT comp_off LET imprime = "N" END REPORT