From a4f98110bb38f577358f6ccdf629f2d7515be460 Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 10 Sep 2009 16:51:20 +0000 Subject: [PATCH] Se sube la tercera version de contratos de cliente git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@433 f4e31baf-9722-1c47-927c-6f952f962d4b --- Build/Build.fbp5 | 128 +++ Database/scripts/factuges.sql | 632 +++++++-------- Source/Base/Base.dproj | 97 ++- Source/Base/Base.res | Bin 384 -> 4748 bytes Source/Informes/1/InfContratoCliente.fr3 | 77 ++ Source/Informes/1/InfPresupuestoCliente.fr3 | 10 +- .../ContratosCliente_Group.groupproj | 26 +- .../ContratosCliente_controller.drc | 2 +- .../uContratosClienteReportController.pas | 4 +- .../Data/ContratosCliente_data.dproj | 24 +- .../Data/ContratosCliente_data.drc | 2 +- .../Data/uDataModuleContratosCliente.dfm | 34 +- .../Data/uDataModuleContratosCliente.pas | 13 +- .../Model/ContratosCliente_model.drc | 2 +- .../uIDataModuleContratosClienteReport.pas | 6 +- .../Model/schContratosClienteClient_Intf.pas | 78 +- .../Model/schContratosClienteServer_Intf.pas | 64 +- .../Plugin/ContratosCliente_plugin.drc | 2 +- .../Reports/uRptContratosCliente_Server.dfm | 740 ++++++++++++------ .../Reports/uRptContratosCliente_Server.pas | 49 +- .../Servidor/srvContratosCliente_Impl.dfm | 21 +- .../Servidor/srvContratosCliente_Impl.pas | 19 +- .../Views/ContratosCliente_view.dpk | 3 +- .../Views/ContratosCliente_view.dproj | 1 + .../Views/ContratosCliente_view.drc | 2 +- .../Views/uEditorContratosCliente.dfm | 42 +- .../Views/uEditorContratosCliente.pas | 15 +- .../Views/uViewContratoCliente.dfm | 8 +- .../uViewDatosYSeleccionClienteContrato.pas | 41 +- .../Controller/uFacturasClienteController.pas | 3 + .../uPresupuestosClienteController.pas | 2 +- .../Data/PresupuestosCliente_data.dproj | 6 +- .../Data/uDataModulePresupuestosCliente.dfm | 37 +- .../schPresupuestosClienteClient_Intf.pas | 64 +- .../schPresupuestosClienteServer_Intf.pas | 64 +- .../uRptPresupuestosCliente_Server.dfm | 291 +++---- .../uRptPresupuestosCliente_Server.pas | 14 +- .../Servidor/srvPresupuestosCliente_Impl.dfm | 22 +- .../Views/uEditorPresupuestosCliente.pas | 3 +- .../ConCli_FacCli_relation.dcu | Bin 0 -> 27740 bytes .../ConCli_FacCli_relation.dpk | 39 + .../ConCli_FacCli_relation.dproj | 652 +++++++++++++++ .../ConCli_FacCli_relation.rc | 22 + .../ConCli_FacCli_relation.res | Bin 0 -> 384 bytes .../uGenerarFacturasCliUtils.dfm | 313 ++++++++ .../uGenerarFacturasCliUtils.pas | 253 ++++++ Source/Servidor/FactuGES_Server.RES | Bin 23356 -> 23356 bytes Source/Servidor/FactuGES_Server.dpr | 2 +- Source/Servidor/FactuGES_Server.dproj | 582 +++++++------- Source/Servidor/FactuGES_Server.rc | 2 +- 50 files changed, 3007 insertions(+), 1506 deletions(-) create mode 100644 Source/Informes/1/InfContratoCliente.fr3 create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.dcu create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.dpk create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.dproj create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.rc create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.res create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/uGenerarFacturasCliUtils.dfm create mode 100644 Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/uGenerarFacturasCliUtils.pas diff --git a/Build/Build.fbp5 b/Build/Build.fbp5 index 14cbe849..952854ab 100644 --- a/Build/Build.fbp5 +++ b/Build/Build.fbp5 @@ -16180,6 +16180,134 @@ Comments= True + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index e9b04e5f..071ec540 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -395,36 +395,20 @@ BEGIN EXIT; END^ - -CREATE PROCEDURE PRO_PRES_CAPITULOS ( - aid integer) +CREATE PROCEDURE PROC_PRE_CON_CAPITULOS ( + aid integer, tipo varchar(15)) as begin exit; end^ -CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( - aid integer) +CREATE PROCEDURE PROC_PRE_CON_CAPITULOS_CONCEP( + aid integer, tipo varchar(15)) as begin exit; end^ -CREATE PROCEDURE PRO_PRES_CAPITULOS_TOTALES ( - aid integer) -as -begin -exit; -end^ - -CREATE PROCEDURE PRO_PRES_RESUMEN ( - aid integer) -as -begin -exit; -end^ - - SET TERM ; ^ @@ -5165,11 +5149,11 @@ begin end ^ -ALTER PROCEDURE PRO_PRES_CAPITULOS ( - aid integer) +ALTER PROCEDURE PROC_PRE_CON_CAPITULOS ( + aid integer, tipo varchar(15)) returns ( id integer, - id_presupuesto integer, + id_pre_con integer, posicion integer, tipo_detalle varchar(25), concepto varchar(2000), @@ -5209,77 +5193,129 @@ begin tipo_detalle_aux = 'Titulo'; tipo_articulo_aux = 'NA'; - /* ¿Existe el presupuesto? */ - for select count(*) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - into :num_filas - do + if (TIPO = 'Presupuesto') then begin + /* ¿Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :num_filas + do + begin if (num_filas = 0) then - suspend; + suspend; + end + end + else if (TIPO = 'Contrato') then + begin + /* ¿Existe el contrato? */ + for select count(*) + from contratos_cliente_detalles + where id_contrato = :AID + into :num_filas + do + begin + if (num_filas = 0) then + suspend; + end end - for select id, id_presupuesto, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto, - coalesce(descuento,0), coalesce(importe_total,0), coalesce(visible, 1) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - order by id_presupuesto, posicion - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO, - :DESCUENTO, :IMPORTE_TOTAL, :VISIBLE - do + if (TIPO = 'Presupuesto') then begin - contador = contador + 1; - - /*CONCEPTO*/ - if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + for select id, id_presupuesto, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto, + coalesce(descuento,0), coalesce(importe_total,0), coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO, + :DESCUENTO, :IMPORTE_TOTAL, :VISIBLE + do begin - /*Escribimos capitulo anterior*/ - if ((Importe_total > 0) and - ((ultimo_tipo_detalle = 'Descuento') - or (ultimo_tipo_detalle = 'Subtotal'))) then - begin - Importe_aux = Importe_total; - id = id_aux; - posicion = posicion_aux; - tipo_detalle = tipo_detalle_aux; - tipo_articulo = tipo_articulo_aux; - concepto = concepto_aux; - importe_total = total_acumulado; - importe_descuento = importe_descuento_aux; - descuento = descuento_aux; - visible = 1; - suspend; - total_acumulado = 0.0; - importe_descuento_aux = 0.0; - descuento_aux = 0.0; - /*Inicializamos*/ - ID_AUX = -1; - posicion_aux = -1; - concepto_aux = 'General'; - tipo_detalle_aux = 'Titulo'; - tipo_articulo_aux = 'NA'; - importe_total = Importe_aux; - end + contador = contador + 1; - total_acumulado = total_acumulado + importe_total; - ultimo_tipo_detalle = tipo_detalle; - end + /*CONCEPTO*/ + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + begin + /*Escribimos capitulo anterior*/ + if ((Importe_total > 0) + and ((ultimo_tipo_detalle = 'Descuento') or (ultimo_tipo_detalle = 'Subtotal'))) then + begin + Importe_aux = Importe_total; + id = id_aux; + posicion = posicion_aux; + tipo_detalle = tipo_detalle_aux; + tipo_articulo = tipo_articulo_aux; + concepto = concepto_aux; + importe_total = total_acumulado; + importe_descuento = importe_descuento_aux; + descuento = descuento_aux; + visible = 1; + suspend; + total_acumulado = 0.0; + importe_descuento_aux = 0.0; + descuento_aux = 0.0; + /*Inicializamos*/ + ID_AUX = -1; + posicion_aux = -1; + concepto_aux = 'General'; + tipo_detalle_aux = 'Titulo'; + tipo_articulo_aux = 'NA'; + importe_total = Importe_aux; + end - /*TITULO*/ - else if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then - begin - ultimo_tipo_detalle = tipo_detalle; + total_acumulado = total_acumulado + importe_total; + ultimo_tipo_detalle = tipo_detalle; + end - id_aux_temp = id; - posicion_aux_temp = posicion; - tipo_detalle_aux_temp = tipo_detalle; - tipo_articulo_aux_temp = tipo_articulo; - concepto_aux_temp = concepto; + /*TITULO*/ + else if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then + begin + ultimo_tipo_detalle = tipo_detalle; + id_aux_temp = id; + posicion_aux_temp = posicion; + tipo_detalle_aux_temp = tipo_detalle; + tipo_articulo_aux_temp = tipo_articulo; + concepto_aux_temp = concepto; - /*Escribimos capitulo anterior*/ - if (id_aux > 0) then + /*Escribimos capitulo anterior*/ + if (id_aux > 0) then + begin + id = id_aux; + posicion = posicion_aux; + tipo_detalle = tipo_detalle_aux; + tipo_articulo = tipo_articulo_aux; + concepto = concepto_aux; + importe_total = total_acumulado; + importe_descuento = importe_descuento_aux; + descuento = descuento_aux; + visible = 1; + suspend; + total_acumulado = 0.0; + importe_descuento_aux = 0.0; + descuento_aux = 0.0; + end + + id_aux = id_aux_temp; + posicion_aux = posicion_aux_temp; + tipo_detalle_aux = tipo_detalle_aux_temp; + tipo_articulo_aux = tipo_articulo_aux_temp; + concepto_aux = concepto_aux_temp; + end + + /*SUBTOTAL*/ + else if (tipo_detalle = 'Subtotal') then + begin + ultimo_tipo_detalle = tipo_detalle; + end + else if (tipo_detalle = 'Descuento') then + begin + ultimo_tipo_detalle = tipo_detalle; + importe_descuento_aux = importe_total; + descuento_aux = descuento; + end + + if (contador = num_filas) then begin id = id_aux; posicion = posicion_aux; @@ -5291,33 +5327,106 @@ begin descuento = descuento_aux; visible = 1; suspend; - total_acumulado = 0.0; - importe_descuento_aux = 0.0; - descuento_aux = 0.0; + break; + end + end + end + else if (TIPO = 'Contrato') then + begin + for select id, id_contrato, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto, + coalesce(descuento,0), coalesce(importe_total,0), coalesce(visible, 1) + from contratos_cliente_detalles + where id_contrato = :AID + order by id_contrato, posicion + into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO, + :DESCUENTO, :IMPORTE_TOTAL, :VISIBLE + do + begin + contador = contador + 1; + + /*CONCEPTO*/ + if ((visible <> 0) and (tipo_detalle = 'Concepto')) then + begin + /*Escribimos capitulo anterior*/ + if ((Importe_total > 0) + and ((ultimo_tipo_detalle = 'Descuento') or (ultimo_tipo_detalle = 'Subtotal'))) then + begin + Importe_aux = Importe_total; + id = id_aux; + posicion = posicion_aux; + tipo_detalle = tipo_detalle_aux; + tipo_articulo = tipo_articulo_aux; + concepto = concepto_aux; + importe_total = total_acumulado; + importe_descuento = importe_descuento_aux; + descuento = descuento_aux; + visible = 1; + suspend; + total_acumulado = 0.0; + importe_descuento_aux = 0.0; + descuento_aux = 0.0; + /*Inicializamos*/ + ID_AUX = -1; + posicion_aux = -1; + concepto_aux = 'General'; + tipo_detalle_aux = 'Titulo'; + tipo_articulo_aux = 'NA'; + importe_total = Importe_aux; + end + + total_acumulado = total_acumulado + importe_total; + ultimo_tipo_detalle = tipo_detalle; end - id_aux = id_aux_temp; - posicion_aux = posicion_aux_temp; - tipo_detalle_aux = tipo_detalle_aux_temp; - tipo_articulo_aux = tipo_articulo_aux_temp; - concepto_aux = concepto_aux_temp; - end + /*TITULO*/ + else if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then + begin + ultimo_tipo_detalle = tipo_detalle; + id_aux_temp = id; + posicion_aux_temp = posicion; + tipo_detalle_aux_temp = tipo_detalle; + tipo_articulo_aux_temp = tipo_articulo; + concepto_aux_temp = concepto; - /*SUBTOTAL*/ - else if (tipo_detalle = 'Subtotal') then - begin - ultimo_tipo_detalle = tipo_detalle; - end + /*Escribimos capitulo anterior*/ + if (id_aux > 0) then + begin + id = id_aux; + posicion = posicion_aux; + tipo_detalle = tipo_detalle_aux; + tipo_articulo = tipo_articulo_aux; + concepto = concepto_aux; + importe_total = total_acumulado; + importe_descuento = importe_descuento_aux; + descuento = descuento_aux; + visible = 1; + suspend; + total_acumulado = 0.0; + importe_descuento_aux = 0.0; + descuento_aux = 0.0; + end - else if (tipo_detalle = 'Descuento') then - begin - ultimo_tipo_detalle = tipo_detalle; - importe_descuento_aux = importe_total; - descuento_aux = descuento; - end + id_aux = id_aux_temp; + posicion_aux = posicion_aux_temp; + tipo_detalle_aux = tipo_detalle_aux_temp; + tipo_articulo_aux = tipo_articulo_aux_temp; + concepto_aux = concepto_aux_temp; + end - if (contador = num_filas) then - begin + /*SUBTOTAL*/ + else if (tipo_detalle = 'Subtotal') then + begin + ultimo_tipo_detalle = tipo_detalle; + end + else if (tipo_detalle = 'Descuento') then + begin + ultimo_tipo_detalle = tipo_detalle; + importe_descuento_aux = importe_total; + descuento_aux = descuento; + end + + if (contador = num_filas) then + begin id = id_aux; posicion = posicion_aux; tipo_detalle = tipo_detalle_aux; @@ -5329,16 +5438,17 @@ begin visible = 1; suspend; break; + end end end -end; -^ +end^ -ALTER PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( - aid integer) +ALTER PROCEDURE PROC_PRE_CON_CAPITULOS_CONCEP ( + aid integer, + tipo varchar(15)) returns ( id integer, - id_presupuesto integer, + id_pre_con integer, posicion integer, tipo_detalle varchar(25), id_capitulo integer, @@ -5357,248 +5467,86 @@ declare variable capitulo_actual integer; begin capitulo_actual = -1; ID_CAPITULO = -1; -for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, - coalesce(pre.tipo_articulo,'NA'), pre.id_articulo, presupuestos_propiedades.descripcion, + +if (TIPO = 'Presupuesto') then +begin + for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, + coalesce(pre.tipo_articulo,'NA'), pre.id_articulo, presupuestos_propiedades.descripcion, /* F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,*/ - pre.CONCEPTO, - pre.cantidad, - case - when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) - else pre.importe_unidad - end as importe_unidad, - pre.descuento, pre.importe_porte, - pre.importe_total, coalesce(pre.visible, 1) - from presupuestos_cliente_detalles pre - left join presupuestos_propiedades on (pre.id_articulo = presupuestos_propiedades.id) - where pre.id_presupuesto = :AID - order by pre.id_presupuesto, pre.posicion - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, - :TIPO_ARTICULO, :ID_ARTICULO, :PROPIEDAD, :CONCEPTO, :CANTIDAD, - :IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE -do + pre.CONCEPTO, + pre.cantidad, + case + when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) + else pre.importe_unidad + end as importe_unidad, + pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from presupuestos_cliente_detalles pre + left join presupuestos_propiedades on (pre.id_articulo = presupuestos_propiedades.id) + where pre.id_presupuesto = :AID + order by pre.id_presupuesto, pre.posicion + into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, + :TIPO_ARTICULO, :ID_ARTICULO, :PROPIEDAD, :CONCEPTO, :CANTIDAD, + :IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE + do + begin + if (:tipo_detalle = 'Titulo') then begin - if (:tipo_detalle = 'Titulo') then - begin - capitulo_actual = :ID; - ID_CAPITULO = capitulo_actual; - end - else if ((:tipo_detalle = 'Subtotal') - or (:tipo_detalle = 'Descuento')) then - begin - capitulo_actual = -1; - ID_CAPITULO = capitulo_actual; - end - else - if (:tipo_detalle = 'Concepto') then - begin - suspend; - end + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; end -end; -^ - -ALTER PROCEDURE PRO_PRES_CAPITULOS_TOTALES ( - aid integer) -returns ( - id integer, - id_presupuesto integer, - posicion integer, - tipo_detalle varchar(25), - concepto varchar(2000), - importe_total numeric(11,2), - visible smallint, - tipo_articulo varchar(2)) -as -declare variable num_filas integer; -declare variable contador integer; -declare variable existe numeric(11,2); -declare variable total_acumulado numeric(11,2); + else if ((:tipo_detalle = 'Subtotal') + or (:tipo_detalle = 'Descuento')) then + begin + capitulo_actual = -1; + ID_CAPITULO = capitulo_actual; + end + else if (:tipo_detalle = 'Concepto') then + begin + suspend; + end + end +end +else if (TIPO = 'Contrato') then begin - existe = 0; - total_acumulado = 0.0; - contador = 0; - num_filas = 0; - - /* ¿Existe el presupuesto? */ - for select count(*) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - into :num_filas - do + for select pre.id, pre.id_contrato, pre.posicion, pre.tipo_detalle, + coalesce(pre.tipo_articulo,'NA'), pre.id_articulo, presupuestos_propiedades.descripcion, +/* F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,*/ + pre.CONCEPTO, + pre.cantidad, + case + when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) + else pre.importe_unidad + end as importe_unidad, + pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from contratos_cliente_detalles pre + left join presupuestos_propiedades on (pre.id_articulo = presupuestos_propiedades.id) + where pre.id_contrato = :AID + order by pre.id_contrato, pre.posicion + into :ID, :ID_PRE_CON, :POSICION, :TIPO_DETALLE, + :TIPO_ARTICULO, :ID_ARTICULO, :PROPIEDAD, :CONCEPTO, :CANTIDAD, + :IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE + do + begin + if (:tipo_detalle = 'Titulo') then begin - if (num_filas = 0) then - suspend; + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; end - - /* Ver si hay conceptos al principio sin capitulos */ - for select id, id_presupuesto, posicion, tipo_detalle, tipo_articulo - from presupuestos_cliente_detalles - where id_presupuesto = :AID - order by id_presupuesto, posicion - rows 1 - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO - do + else if ((:tipo_detalle = 'Subtotal') + or (:tipo_detalle = 'Descuento')) then begin - if (TIPO_DETALLE = 'Concepto') then - EXISTE = 1; + capitulo_actual = -1; + ID_CAPITULO = capitulo_actual; end - - if (existe = 1) then + else if (:tipo_detalle = 'Concepto') then begin - contador = 0; - /* Existen conceptos sin capitulo */ - for select tipo_detalle, tipo_articulo, importe_total, coalesce(visible, 1) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - order by id_presupuesto, posicion - into :TIPO_DETALLE, :TIPO_ARTICULO, :IMPORTE_TOTAL, :VISIBLE - do - begin - contador = contador + 1; - - if ((visible <> 0) and (tipo_detalle = 'Concepto')) then - total_acumulado = total_acumulado + importe_total; - - if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then - begin - importe_total = total_acumulado; - tipo_detalle = 'Titulo'; - concepto = 'General'; - visible = 1; - ID = -1; - posicion = -1; - suspend; - break; - end - end + suspend; end - - - for select id, id_presupuesto, posicion, tipo_detalle, tipo_articulo, F_RTFTOTEXT(concepto) as concepto, - importe_total, coalesce(visible, 1) - from presupuestos_cliente_detalles - where ((tipo_detalle = 'Subtotal') or (tipo_detalle = 'Descuento')) and id_presupuesto = :AID - order by id_presupuesto, posicion - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :TIPO_ARTICULO, :CONCEPTO, - :IMPORTE_TOTAL, :VISIBLE - do - suspend; -end; -^ - -ALTER PROCEDURE PRO_PRES_RESUMEN ( - aid integer) -returns ( - id integer, - id_presupuesto integer, - posicion integer, - tipo_detalle varchar(25), - concepto varchar(2000), - importe_total numeric(11,2), - visible smallint) -as -declare variable num_capitulos integer; -declare variable num_filas integer; -declare variable contador integer; -declare variable existe numeric(11,2); -declare variable total_acumulado numeric(11,2); -declare variable concepto_capitulo varchar(2000); -declare variable tipo varchar(25); -begin - existe = 0; - total_acumulado = 0.0; - contador = 0; - num_filas = 0; - num_capitulos = 0; - concepto_capitulo = ''; - tipo = ''; - - /* ¿Existe el presupuesto? */ - for select count(*) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - into :num_filas - do - begin - if (num_filas = 0) then - suspend; - end - - /* Ver si hay conceptos al principio sin capitulos */ - for select id, id_presupuesto, posicion, tipo_detalle - from presupuestos_cliente_detalles - where id_presupuesto = :AID - order by id_presupuesto, posicion - rows 1 - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE - do - begin - if (TIPO_DETALLE = 'Concepto') then - EXISTE = 1; - end - - num_capitulos = 1; - if (existe = 1) then - begin - contador = 0; - /* Existen conceptos sin capitulo */ - for select tipo_detalle, coalesce(importe_total,0), coalesce(visible, 1) - from presupuestos_cliente_detalles - where id_presupuesto = :AID - order by id_presupuesto, posicion - into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE - do - begin - contador = contador + 1; - - if ((visible <> 0) and (tipo_detalle = 'Concepto')) then - total_acumulado = total_acumulado + importe_total; - - if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then - begin - importe_total = total_acumulado; - tipo_detalle = 'Titulo'; - if (num_capitulos > 1) then - concepto = 'CAPÍTULO ' || num_capitulos ||'. General'; - else - concepto = 'General'; - visible = 1; - ID = -1; - posicion = -1; - suspend; - break; - end - end - end - - /* Tratar el resto de las filas */ - for select id, id_presupuesto, posicion, tipo_detalle, - F_RTFTOTEXT(concepto) as concepto, coalesce(importe_total,0), coalesce(visible, 1) - from presupuestos_cliente_detalles - where id_presupuesto = :AID and - tipo_detalle in ('Titulo', 'Titulo opcional', 'Subtotal') - order by posicion - into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, - :IMPORTE_TOTAL, :VISIBLE - do - begin - contador = contador + 1; - if ((tipo_detalle = 'Titulo') or (tipo_detalle = 'Titulo opcional')) then - begin - concepto_capitulo = concepto; - tipo = tipo_detalle; - end - if (tipo_detalle = 'Subtotal') then - begin - concepto = 'CAPÍTULO ' || num_capitulos || '. ' || concepto_capitulo; - tipo_detalle = tipo; - num_capitulos = num_capitulos + 1; - suspend; - end - end -end; -^ - + end +end +end^ SET TERM ; ^ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 9391e310..b36f21a8 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -44,13 +44,6 @@ Package FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 - - - - - - - VCL for the Web Design Package for CodeGear RAD Studio CodeGear WebSnap Components CodeGear SOAP Components @@ -65,52 +58,52 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f312bcccec5485024f6fe8d80e1cdf25746..1641339fcc482e7e3492d1b45813a86619622c33 100644 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP delta 11 ScmeBCZD5|Duvteife`=|>;pCc diff --git a/Source/Informes/1/InfContratoCliente.fr3 b/Source/Informes/1/InfContratoCliente.fr3 new file mode 100644 index 00000000..a88134f8 --- /dev/null +++ b/Source/Informes/1/InfContratoCliente.fr3 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/1/InfPresupuestoCliente.fr3 b/Source/Informes/1/InfPresupuestoCliente.fr3 index 38fa8756..73e02e26 100644 --- a/Source/Informes/1/InfPresupuestoCliente.fr3 +++ b/Source/Informes/1/InfPresupuestoCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -41,10 +41,10 @@ - - - - + + + + diff --git a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj index 4797022d..d92cc3d3 100644 --- a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj +++ b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj @@ -17,9 +17,11 @@ + + @@ -149,6 +151,15 @@ + + + + + + + + + @@ -221,14 +232,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.drc b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.drc index 976a9ec2..d1858b01 100644 --- a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.drc +++ b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.drc @@ -13,4 +13,4 @@ BEGIN END /* C:\Codigo Acana\Source\Modulos\Contratos de cliente\Controller\ContratosCliente_controller.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1CC.tmp */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf3D8.tmp */ diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas index ecd33ad6..78b4ad02 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas @@ -87,12 +87,11 @@ var AStream: Binary; AEditor : IEditorContratosClientePreview; begin -{ AEditor := NIL; ShowHourglassCursor; try - AStream := FDataModule.GetRptPresupuestos(AListaID); + AStream := FDataModule.GetRptContratos(AListaID); try CreateEditor('EditorContratosClientePreview', IEditorContratosClientePreview, AEditor); if Assigned(AEditor) then @@ -114,7 +113,6 @@ begin finally HideHourglassCursor; end; -} end; procedure TContratosClienteReportController.Print(const AListaID : TIntegerList); diff --git a/Source/Modulos/Contratos de cliente/Data/ContratosCliente_data.dproj b/Source/Modulos/Contratos de cliente/Data/ContratosCliente_data.dproj index 87b6ddcb..add048fd 100644 --- a/Source/Modulos/Contratos de cliente/Data/ContratosCliente_data.dproj +++ b/Source/Modulos/Contratos de cliente/Data/ContratosCliente_data.dproj @@ -49,19 +49,19 @@ MainSource - - - - - - - - - - + + + + + + + + + + + + - - \ No newline at end of file +EurekaLog Last Line --> diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index 05c493cf..f84d58cb 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -266,64 +266,45 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente Name = 'ID' DataType = datAutoInc GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' - Required = True - ServerAutoRefresh = True - DictionaryEntry = 'PresupuestosCliente_Detalles_ID' InPrimaryKey = True end item Name = 'ID_PRESUPUESTO' DataType = datInteger - Required = True - DisplayLabel = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' - DictionaryEntry = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' end item Name = 'POSICION' DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_POSICION' end item Name = 'TIPO_DETALLE' DataType = datString - Size = 25 - DictionaryEntry = 'PresupuestosCliente_Detalles_TIPO_DETALLE' + Size = 10 end item Name = 'CONCEPTO' DataType = datString Size = 2000 - DictionaryEntry = 'PresupuestosCliente_Detalles_CONCEPTO' end item Name = 'CANTIDAD' - DataType = datFloat - Alignment = taRightJustify - DictionaryEntry = 'PresupuestosCliente_Detalles_CANTIDAD' + DataType = datInteger end item Name = 'IMPORTE_UNIDAD' DataType = datCurrency - DisplayLabel = 'Importe unidad' - Alignment = taRightJustify - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_UNIDAD' end item Name = 'IMPORTE_TOTAL' DataType = datCurrency - DisplayLabel = 'Importe total' - Alignment = taRightJustify - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_TOTAL' end item Name = 'VISIBLE' - DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_VISIBLE' + DataType = datSmallInt end item Name = 'ID_ARTICULO' DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_ID_ARTICULO' end item Name = 'TIPO_ARTICULO' @@ -333,31 +314,19 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente item Name = 'DESCUENTO' DataType = datFloat - DisplayLabel = 'Descuento' - DisplayFormat = ',0.00 %;-,0.00 %' - Alignment = taRightJustify - DictionaryEntry = 'PresupuestosCliente_Detalles_DESCUENTO' end item Name = 'IMPORTE_PORTE' DataType = datCurrency - DisplayLabel = 'Importe porte' - Alignment = taRightJustify - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_PORTE' end item Name = 'REFERENCIA' DataType = datString Size = 255 - DisplayLabel = 'PresupuestosCliente_Detalles_REFERENCIA' - DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA' end item Name = 'REFERENCIA_PROVEEDOR' DataType = datString - Size = 255 - DisplayLabel = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' - DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' end> Params = <> MasterMappingMode = mmWhere diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas index 232677f4..bc0228c4 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -9,12 +9,12 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_Valores = '{6B7512A8-EB4C-4244-943F-285DE30A5DBE}'; - RID_Propiedades = '{C567C7CF-99D4-41BF-B2F2-D87F2FD59F42}'; - RID_ListaAnosPresupuestos = '{79474858-E6AF-4D32-B3B1-78304B4BDB06}'; - RID_PresupuestosCliente = '{43648F68-D4C5-471D-A900-221D25AABEF1}'; - RID_CapitulosPresupuesto = '{0CB24F2A-9812-437C-98D1-C7E659E3FD4E}'; - RID_PresupuestosCliente_Detalles = '{53C6C0B3-DA6B-4627-8F0E-EBDEA0FEC1D9}'; + RID_Valores = '{360865F6-D61C-4F56-81B3-80940311084F}'; + RID_Propiedades = '{578A1925-5462-48CD-88F8-00151C73B996}'; + RID_ListaAnosPresupuestos = '{44749161-C1BE-4754-8CE5-6A09AF383611}'; + RID_PresupuestosCliente = '{8145DD24-FBBA-4F26-A6F1-8EE2C84AD837}'; + RID_CapitulosPresupuesto = '{249810AA-086E-4490-940F-A0AF43A71A5A}'; + RID_PresupuestosCliente_Detalles = '{854200B0-5648-479E-9BC9-6DE111FF31E6}'; { Data table names } nme_Valores = 'Valores'; @@ -185,7 +185,7 @@ const type { IValores } IValores = interface(IDAStronglyTypedDataTable) - ['{DF8B5E15-0AA9-4CBD-B49C-CC89DC2058F1}'] + ['{DD6974D3-A0C4-4E21-A334-E50E81583DA9}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -244,7 +244,7 @@ type { IPropiedades } IPropiedades = interface(IDAStronglyTypedDataTable) - ['{04EF207A-CCEC-47CA-8295-275761FCA347}'] + ['{6512B700-7A3B-45A4-80AC-B6D48193D4CB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -303,7 +303,7 @@ type { IListaAnosPresupuestos } IListaAnosPresupuestos = interface(IDAStronglyTypedDataTable) - ['{108DEB55-A6EF-48D8-9F41-A78EA77811E5}'] + ['{EED87562-4E5D-4164-8D9E-AE13BEB8A806}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -338,7 +338,7 @@ type { IPresupuestosCliente } IPresupuestosCliente = interface(IDAStronglyTypedDataTable) - ['{CB9876C3-FD15-4C82-AC1A-DDAFEBFF048F}'] + ['{CB9CB465-7592-4B43-9E99-7A6E743BBFD2}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -829,7 +829,7 @@ type { ICapitulosPresupuesto } ICapitulosPresupuesto = interface(IDAStronglyTypedDataTable) - ['{A3650725-FE09-4108-9EFF-6E1E4D911632}'] + ['{96561128-301B-4707-91F2-6428F82033FE}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -924,7 +924,7 @@ type { IPresupuestosCliente_Detalles } IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{005DEE46-9C8D-4169-8AFC-D0A849982376}'] + ['{006D2E37-2AEC-43DD-B5A4-3BB45956BABC}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -946,8 +946,8 @@ type procedure SetCONCEPTOValue(const aValue: String); function GetCONCEPTOIsNull: Boolean; procedure SetCONCEPTOIsNull(const aValue: Boolean); - function GetCANTIDADValue: Float; - procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); function GetCANTIDADIsNull: Boolean; procedure SetCANTIDADIsNull(const aValue: Boolean); function GetIMPORTE_UNIDADValue: Currency; @@ -958,8 +958,8 @@ type procedure SetIMPORTE_TOTALValue(const aValue: Currency); function GetIMPORTE_TOTALIsNull: Boolean; procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); - function GetVISIBLEValue: Integer; - procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEValue: SmallInt; + procedure SetVISIBLEValue(const aValue: SmallInt); function GetVISIBLEIsNull: Boolean; procedure SetVISIBLEIsNull(const aValue: Boolean); function GetID_ARTICULOValue: Integer; @@ -999,13 +999,13 @@ type property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; - property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLE: SmallInt read GetVISIBLEValue write SetVISIBLEValue; property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; @@ -1046,8 +1046,8 @@ type procedure SetCONCEPTOValue(const aValue: String); virtual; function GetCONCEPTOIsNull: Boolean; virtual; procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; - function GetCANTIDADValue: Float; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; function GetCANTIDADIsNull: Boolean; virtual; procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; function GetIMPORTE_UNIDADValue: Currency; virtual; @@ -1058,8 +1058,8 @@ type procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; function GetIMPORTE_TOTALIsNull: Boolean; virtual; procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; - function GetVISIBLEValue: Integer; virtual; - procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEValue: SmallInt; virtual; + procedure SetVISIBLEValue(const aValue: SmallInt); virtual; function GetVISIBLEIsNull: Boolean; virtual; procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; function GetID_ARTICULOValue: Integer; virtual; @@ -1098,13 +1098,13 @@ type property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; - property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLE: SmallInt read GetVISIBLEValue write SetVISIBLEValue; property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; @@ -2419,14 +2419,14 @@ begin DataTable.Fields[idx_PresupuestosCliente_DetallesCONCEPTO].AsVariant := Null; end; -function TPresupuestosCliente_DetallesDataTableRules.GetCANTIDADValue: Float; +function TPresupuestosCliente_DetallesDataTableRules.GetCANTIDADValue: Integer; begin - result := DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsFloat; + result := DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsInteger; end; -procedure TPresupuestosCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Float); +procedure TPresupuestosCliente_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer); begin - DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsFloat := aValue; + DataTable.Fields[idx_PresupuestosCliente_DetallesCANTIDAD].AsInteger := aValue; end; function TPresupuestosCliente_DetallesDataTableRules.GetCANTIDADIsNull: boolean; @@ -2482,14 +2482,14 @@ begin DataTable.Fields[idx_PresupuestosCliente_DetallesIMPORTE_TOTAL].AsVariant := Null; end; -function TPresupuestosCliente_DetallesDataTableRules.GetVISIBLEValue: Integer; +function TPresupuestosCliente_DetallesDataTableRules.GetVISIBLEValue: SmallInt; begin - result := DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsInteger; + result := DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsSmallInt; end; -procedure TPresupuestosCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +procedure TPresupuestosCliente_DetallesDataTableRules.SetVISIBLEValue(const aValue: SmallInt); begin - DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsInteger := aValue; + DataTable.Fields[idx_PresupuestosCliente_DetallesVISIBLE].AsSmallInt := aValue; end; function TPresupuestosCliente_DetallesDataTableRules.GetVISIBLEIsNull: boolean; diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas index f8d7fe0c..696cc49b 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -9,17 +9,17 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ValoresDelta = '{D7395CE4-863C-4302-8580-560E4F7EDBA4}'; - RID_PropiedadesDelta = '{904BB545-3A5D-4014-AEB1-E9DAE9EC7485}'; - RID_ListaAnosPresupuestosDelta = '{5BA0E871-EC39-4EA6-9BA4-C1AA22E49B8B}'; - RID_PresupuestosClienteDelta = '{037B9DD0-0CBA-4BB2-951B-F8E3E6A8D35E}'; - RID_CapitulosPresupuestoDelta = '{440D5A1A-69CF-49E5-9822-CA252C881177}'; - RID_PresupuestosCliente_DetallesDelta = '{C09202CF-837F-4819-9CD4-BB6A390E7745}'; + RID_ValoresDelta = '{A31ECE4B-F45F-4FFA-B8D2-E4C30437FC6C}'; + RID_PropiedadesDelta = '{17913405-B1A3-414E-B9CC-8668063D831C}'; + RID_ListaAnosPresupuestosDelta = '{28DC5CF0-35FD-4430-997C-CE68FAFA4B91}'; + RID_PresupuestosClienteDelta = '{AD87C5AB-4E58-404D-997A-A099D3BE6A93}'; + RID_CapitulosPresupuestoDelta = '{F88C93D2-E737-4E68-8C96-6F328113A033}'; + RID_PresupuestosCliente_DetallesDelta = '{98D1A78A-661D-41D6-9920-E0105FFE38FD}'; type { IValoresDelta } IValoresDelta = interface(IValores) - ['{D7395CE4-863C-4302-8580-560E4F7EDBA4}'] + ['{A31ECE4B-F45F-4FFA-B8D2-E4C30437FC6C}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PROPIEDADValue : Integer; @@ -77,7 +77,7 @@ type { IPropiedadesDelta } IPropiedadesDelta = interface(IPropiedades) - ['{904BB545-3A5D-4014-AEB1-E9DAE9EC7485}'] + ['{17913405-B1A3-414E-B9CC-8668063D831C}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -135,7 +135,7 @@ type { IListaAnosPresupuestosDelta } IListaAnosPresupuestosDelta = interface(IListaAnosPresupuestos) - ['{5BA0E871-EC39-4EA6-9BA4-C1AA22E49B8B}'] + ['{28DC5CF0-35FD-4430-997C-CE68FAFA4B91}'] { Property getters and setters } function GetOldANOValue : String; @@ -169,7 +169,7 @@ type { IPresupuestosClienteDelta } IPresupuestosClienteDelta = interface(IPresupuestosCliente) - ['{037B9DD0-0CBA-4BB2-951B-F8E3E6A8D35E}'] + ['{AD87C5AB-4E58-404D-997A-A099D3BE6A93}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -663,7 +663,7 @@ type { ICapitulosPresupuestoDelta } ICapitulosPresupuestoDelta = interface(ICapitulosPresupuesto) - ['{440D5A1A-69CF-49E5-9822-CA252C881177}'] + ['{F88C93D2-E737-4E68-8C96-6F328113A033}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldPOSICIONValue : Integer; @@ -757,17 +757,17 @@ type { IPresupuestosCliente_DetallesDelta } IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) - ['{C09202CF-837F-4819-9CD4-BB6A390E7745}'] + ['{98D1A78A-661D-41D6-9920-E0105FFE38FD}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PRESUPUESTOValue : Integer; function GetOldPOSICIONValue : Integer; function GetOldTIPO_DETALLEValue : String; function GetOldCONCEPTOValue : String; - function GetOldCANTIDADValue : Float; + function GetOldCANTIDADValue : Integer; function GetOldIMPORTE_UNIDADValue : Currency; function GetOldIMPORTE_TOTALValue : Currency; - function GetOldVISIBLEValue : Integer; + function GetOldVISIBLEValue : SmallInt; function GetOldID_ARTICULOValue : Integer; function GetOldTIPO_ARTICULOValue : String; function GetOldDESCUENTOValue : Float; @@ -781,10 +781,10 @@ type property OldPOSICION : Integer read GetOldPOSICIONValue; property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; property OldCONCEPTO : String read GetOldCONCEPTOValue; - property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; - property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLE : SmallInt read GetOldVISIBLEValue; property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; property OldTIPO_ARTICULO : String read GetOldTIPO_ARTICULOValue; property OldDESCUENTO : Float read GetOldDESCUENTOValue; @@ -828,11 +828,11 @@ type function GetOldCONCEPTOIsNull: Boolean; virtual; procedure SetCONCEPTOValue(const aValue: String); virtual; procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; - function GetCANTIDADValue: Float; virtual; + function GetCANTIDADValue: Integer; virtual; function GetCANTIDADIsNull: Boolean; virtual; - function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADValue: Integer; virtual; function GetOldCANTIDADIsNull: Boolean; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; function GetIMPORTE_UNIDADValue: Currency; virtual; function GetIMPORTE_UNIDADIsNull: Boolean; virtual; @@ -846,11 +846,11 @@ type function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; - function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEValue: SmallInt; virtual; function GetVISIBLEIsNull: Boolean; virtual; - function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEValue: SmallInt; virtual; function GetOldVISIBLEIsNull: Boolean; virtual; - procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEValue(const aValue: SmallInt); virtual; procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; function GetID_ARTICULOValue: Integer; virtual; function GetID_ARTICULOIsNull: Boolean; virtual; @@ -910,9 +910,9 @@ type property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; property OldCONCEPTO : String read GetOldCONCEPTOValue; property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; - property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; - property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; @@ -922,9 +922,9 @@ type property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; - property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLE : SmallInt read GetVISIBLEValue write SetVISIBLEValue; property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; - property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLE : SmallInt read GetOldVISIBLEValue; property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; @@ -2826,7 +2826,7 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCONCEPTO] := Null; end; -function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Float; +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]; end; @@ -2836,7 +2836,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]); end; -function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; begin result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]; end; @@ -2846,7 +2846,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesCANTIDAD]); end; -procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesCANTIDAD] := aValue; end; @@ -2919,7 +2919,7 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesIMPORTE_TOTAL] := Null; end; -function TPresupuestosCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetVISIBLEValue: SmallInt; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE]; end; @@ -2929,7 +2929,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE]); end; -function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +function TPresupuestosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: SmallInt; begin result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesVISIBLE]; end; @@ -2939,7 +2939,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosCliente_DetallesVISIBLE]); end; -procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +procedure TPresupuestosCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: SmallInt); begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosCliente_DetallesVISIBLE] := aValue; end; diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm index f7c8f9a5..2f79a742 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -483,9 +483,9 @@ object RptPresupuestosCliente: TRptPresupuestosCliente item Params = < item - Name = 'ID_PRESUPUESTO' - Value = '32' - ParamType = daptInput + Name = 'ID_PRE_CON' + DataType = datInteger + Value = '' end> Statements = < item @@ -493,8 +493,9 @@ object RptPresupuestosCliente: TRptPresupuestosCliente ConnectionType = 'Interbase' Default = True SQL = - 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(:ID_PRESUPUESTO)'#10'WHER' + - 'E (VISIBLE <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + 'SELECT * FROM PROC_PRE_CON_CAPITULOS_CONCEP(:ID_PRE_CON, '#39'Presup' + + 'uesto'#39')'#10'WHERE (VISIBLE <> 0) AND {where}'#10'ORDER BY ID_PRE_CON, PO' + + 'SICION'#10 StatementType = stSQL ColumnMappings = < item @@ -502,8 +503,8 @@ object RptPresupuestosCliente: TRptPresupuestosCliente TableField = 'ID' end item - DatasetField = 'ID_PRESUPUESTO' - TableField = 'ID_PRESUPUESTO' + DatasetField = 'ID_PRE_CON' + TableField = 'ID_PRE_CON' end item DatasetField = 'POSICION' @@ -566,7 +567,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente InPrimaryKey = True end item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' DataType = datInteger end item @@ -630,7 +631,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente item Params = < item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' Value = '' ParamType = daptInput end> @@ -640,8 +641,8 @@ object RptPresupuestosCliente: TRptPresupuestosCliente ConnectionType = 'Interbase' Default = True SQL = - 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE' + - ' <> 0) AND {where}'#10'ORDER BY ID_PRESUPUESTO, POSICION'#10 + 'SELECT * FROM PROC_PRE_CON_CAPITULOS(:ID_PRE_CON, '#39'Presupuesto'#39')' + + #10'WHERE (VISIBLE <> 0) AND {where}'#10'ORDER BY ID_PRE_CON, POSICION'#10 StatementType = stSQL ColumnMappings = < item @@ -649,8 +650,8 @@ object RptPresupuestosCliente: TRptPresupuestosCliente TableField = 'ID' end item - DatasetField = 'ID_PRESUPUESTO' - TableField = 'ID_PRESUPUESTO' + DatasetField = 'ID_PRE_CON' + TableField = 'ID_PRE_CON' end item DatasetField = 'POSICION' @@ -693,7 +694,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente InPrimaryKey = True end item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' DataType = datInteger end item @@ -733,87 +734,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente end> ReadOnly = True end - item - Params = < - item - Name = 'ID_PRESUPUESTO' - Value = '2' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - ConnectionType = 'Interbase' - Default = True - SQL = - 'SELECT * FROM PRO_PRES_RESUMEN(:ID_PRESUPUESTO)'#10'WHERE (VISIBLE <' + - '> 0) AND (TIPO_DETALLE = '#39'Titulo'#39')'#10'AND {where}'#10'ORDER BY ID_PRESU' + - 'PUESTO, POSICION'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'ID' - TableField = 'ID' - end - item - DatasetField = 'ID_PRESUPUESTO' - TableField = 'ID_PRESUPUESTO' - end - item - DatasetField = 'POSICION' - TableField = 'POSICION' - end - item - DatasetField = 'TIPO_DETALLE' - TableField = 'TIPO_DETALLE' - end - item - DatasetField = 'CONCEPTO' - TableField = 'CONCEPTO' - end - item - DatasetField = 'IMPORTE_TOTAL' - TableField = 'IMPORTE_TOTAL' - end - item - DatasetField = 'VISIBLE' - TableField = 'VISIBLE' - end> - end> - Name = 'Informe_Resumen' - Fields = < - item - Name = 'ID' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'ID_PRESUPUESTO' - DataType = datInteger - end - item - Name = 'POSICION' - DataType = datInteger - end - item - Name = 'TIPO_DETALLE' - DataType = datString - Size = 25 - end - item - Name = 'CONCEPTO' - DataType = datString - Size = 2000 - end - item - Name = 'IMPORTE_TOTAL' - DataType = datCurrency - end - item - Name = 'VISIBLE' - DataType = datSmallInt - end> - end item Params = <> Statements = < @@ -902,7 +822,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente UpdateRules = <> Version = 0 Left = 48 - Top = 16 + Top = 24 end object DataDictionary: TDADataDictionary Fields = <> @@ -919,7 +839,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 40010.751494131950000000 + ReportOptions.LastChange = 40066.748108344910000000 ScriptLanguage = 'PascalScript' ScriptText.Strings = ( '' @@ -1077,23 +997,91 @@ object RptPresupuestosCliente: TRptPresupuestosCliente 'begin' 'end;' '' - 'procedure Footer1OnBeforePrint(Sender: TfrxComponent);' + 'procedure Memo29OnBeforePrint(Sender: TfrxComponent);' 'begin' - 'if (( = 0) ' - 'and ( = 0)) then' - 'begin ' - ' Memo13.Visible := False; ' - ' Memo20.Visible := False; ' - ' Memo21.Visible := False; ' - ' Memo11.Visible := False; ' - 'end ' - 'else' - 'begin ' - ' Memo13.Visible := True; ' - ' Memo20.Visible := True;' - ' Memo21.Visible := True;' - ' Memo11.Visible := True; ' - 'end' + ' if ( > 0) then' + ' begin' + + ' Memo29.visible := True; ' + + ' ' + ' end' + ' else' + ' begin' + ' Memo29.visible := False; ' + ' end; ' + 'end;' + '' + 'procedure Memo30OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if ( > 0) then' + ' begin' + + ' Memo30.visible := True; ' + + ' ' + ' end' + ' else' + ' begin' + ' Memo30.visible := False; ' + ' end; ' + 'end;' + '' + 'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + ' begin' + ' Memo40.Visible := False;' + + ' Memo37.Visible := False; ' + + ' ' + ' end;' + '' + ' if (Length() = 0) then' + ' begin' + ' Memo38.Visible := False;' + + ' Memo27.Visible := False; ' + + ' ' + ' end; ' + '' + ' if (Length() = 0) then' + ' begin' + ' Memo39.Visible := False;' + + ' Memo28.Visible := False; ' + + ' ' + ' end; ' + 'end;' + '' + 'procedure Memo20OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (sum(, DetailData1) = 0)' + + ' and (sum(, DetailData2) = 0) th' + + 'en' + ' begin' + ' Footer1.Height := 10;' + ' Memo13.Visible := False;' + ' Memo20.Visible := False; ' + ' Memo21.Visible := False; ' + ' Memo11.Visible := False;' + ' Memo24.Visible := False;' + ' end' + ' else' + ' begin' + ' Footer1.Height := 55;' + ' Memo13.Visible := True; ' + ' Memo20.Visible := True;' + ' Memo21.Visible := True;' + ' Memo11.Visible := True;' + ' Memo24.Visible := True; ' + ' end;' + '' + ' if ( = 0) then' + ' begin' + ' Footer1.Height := 35; ' + ' Memo11.Visible := False;' + ' Memo24.Visible := False; ' + ' end; ' 'end;' '' 'begin' @@ -1373,13 +1361,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Left = 352 Top = 16 end - object frxDBResumen: TfrxDBDataset - UserName = 'frxDBResumen' - CloseDataSource = False - DataSource = DADSResumen - Left = 520 - Top = 16 - end object DABin2DataStreamer1: TDABin2DataStreamer Left = 48 Top = 80 @@ -1571,7 +1552,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente InPrimaryKey = True end item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' DataType = datInteger end item @@ -1611,7 +1592,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente end> Params = < item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' Value = '' ParamType = daptInput end> @@ -1628,64 +1609,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Left = 352 Top = 128 end - object DADSResumen: TDADataSource - DataSet = tbl_Resumen.Dataset - DataTable = tbl_Resumen - Left = 520 - Top = 72 - end - object tbl_Resumen: TDAMemDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datInteger - InPrimaryKey = True - end - item - Name = 'ID_PRESUPUESTO' - DataType = datInteger - end - item - Name = 'POSICION' - DataType = datInteger - end - item - Name = 'TIPO_DETALLE' - DataType = datString - Size = 25 - end - item - Name = 'CONCEPTO' - DataType = datString - Size = 2000 - end - item - Name = 'IMPORTE_TOTAL' - DataType = datCurrency - end - item - Name = 'VISIBLE' - DataType = datSmallInt - end> - Params = < - item - Name = 'ID_PRESUPUESTO' - Value = '2' - ParamType = daptInput - end> - MasterParamsMappings.Strings = ( - 'ID_PRESUPUESTO=ID') - LogChanges = False - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteFetchEnabled = False - LocalSchema = schReport - LocalDataStreamer = DABin2DataStreamer1 - LogicalName = 'Informe_Resumen' - IndexDefs = <> - Left = 520 - Top = 128 - end object frxPDFExport1: TfrxPDFExport ShowDialog = False UseFileCache = True @@ -1819,7 +1742,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente InPrimaryKey = True end item - Name = 'ID_PRESUPUESTO' + Name = 'ID_PRE_CON' DataType = datInteger end item @@ -1880,9 +1803,9 @@ object RptPresupuestosCliente: TRptPresupuestosCliente end> Params = < item - Name = 'ID_PRESUPUESTO' - Value = '32' - ParamType = daptInput + Name = 'ID_PRE_CON' + DataType = datInteger + Value = '' end> MasterMappingMode = mmWhere MasterParamsMappings.Strings = ( diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas index 05611db9..f7fd5c8d 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas @@ -40,7 +40,6 @@ type resumenIMPORTE_TOTAL: TIBBCDField; resumenVISIBLE: TSmallintField; frxDBCapitulos: TfrxDBDataset; - frxDBResumen: TfrxDBDataset; DABin2DataStreamer1: TDABin2DataStreamer; cabecera: TIBQuery; cabeceraID: TIntegerField; @@ -70,8 +69,6 @@ type cabeceraCODIGO_POSTAL: TIBStringField; DADSCapitulos: TDADataSource; tbl_Capitulos: TDAMemDataTable; - DADSResumen: TDADataSource; - tbl_Resumen: TDAMemDataTable; frxPDFExport1: TfrxPDFExport; DADSInformeListadoPresupuestos: TDADataSource; tbl_InformeListadoPresupuestos: TDAMemDataTable; @@ -143,9 +140,6 @@ begin frxDBDetalles.DataSource := DADSDetalles; frxDBDetalles.CloseDataSource := False; - frxDBResumen.DataSource := DADSResumen; - frxDBResumen.CloseDataSource := False; - FListaNombresClientes := TStringList.Create; with tbl_Detalles do @@ -416,7 +410,6 @@ begin tbl_Cabecera.Active := False; tbl_Capitulos.Active := False; tbl_Detalles.Active := False; - tbl_Resumen.Active := False; FreeANDNIL(FListaNombresClientes); end; @@ -535,12 +528,10 @@ begin tbl_Cabecera.Active := False; tbl_Capitulos.Active := False; tbl_Detalles.Active := False; - tbl_Resumen.Active := False; tbl_Cabecera.ParamByName('ID').AsInteger := AID; - tbl_Capitulos.ParamByName('ID_PRESUPUESTO').AsInteger := AID; - tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsInteger := AID; - tbl_Resumen.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Capitulos.ParamByName('ID_PRE_CON').AsInteger := AID; + tbl_Detalles.ParamByName('ID_PRE_CON').AsInteger := AID; // Se asignan los parametros en este orden para que funcionen // dentro de las relaciones maestro-detalle (capítulos y conceptos). @@ -548,7 +539,6 @@ begin tbl_Cabecera.Active := True; tbl_Capitulos.Active := True; tbl_Detalles.Active := True; - tbl_Resumen.Active := True; AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); if VarIsNull(AInforme) then diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 0530df19..a8b674ba 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -652,56 +652,45 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente Name = 'ID' DataType = datAutoInc GeneratorName = 'GEN_PRESUPUESTOS_CLI_DETALLE_ID' - ServerAutoRefresh = True - DictionaryEntry = 'PresupuestosCliente_Detalles_ID' InPrimaryKey = True end item Name = 'ID_PRESUPUESTO' DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_ID_PRESUPUESTO' end item Name = 'POSICION' DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_POSICION' end item Name = 'TIPO_DETALLE' DataType = datString - Size = 25 - DictionaryEntry = 'PresupuestosCliente_Detalles_TIPO_DETALLE' + Size = 10 end item Name = 'CONCEPTO' DataType = datString Size = 2000 - DictionaryEntry = 'PresupuestosCliente_Detalles_CONCEPTO' end item Name = 'CANTIDAD' - DataType = datFloat - DictionaryEntry = 'PresupuestosCliente_Detalles_CANTIDAD' + DataType = datInteger end item Name = 'IMPORTE_UNIDAD' DataType = datCurrency - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_UNIDAD' end item Name = 'IMPORTE_TOTAL' DataType = datCurrency - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_TOTAL' end item Name = 'VISIBLE' - DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_VISIBLE' + DataType = datSmallInt end item Name = 'ID_ARTICULO' DataType = datInteger - DictionaryEntry = 'PresupuestosCliente_Detalles_ID_ARTICULO' end item Name = 'TIPO_ARTICULO' @@ -711,24 +700,19 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente item Name = 'DESCUENTO' DataType = datFloat - DictionaryEntry = 'PresupuestosCliente_Detalles_DESCUENTO' end item Name = 'IMPORTE_PORTE' DataType = datCurrency - DictionaryEntry = 'PresupuestosCliente_Detalles_IMPORTE_PORTE' end item Name = 'REFERENCIA' DataType = datString Size = 255 - DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA' end item Name = 'REFERENCIA_PROVEEDOR' DataType = datString - Size = 255 - DictionaryEntry = 'PresupuestosCliente_Detalles_REFERENCIA_PROVEEDOR' end> end> JoinDataTables = <> diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas index b8b9552e..6945043a 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -211,7 +211,8 @@ begin inherited; (Sender as TAction).Enabled := HayDatos and ViewGrid.esSeleccionCeldaDatos - and (FPresupuestos.SITUACION <> SITUACION_PRESUPUESTO_ANULADO); + and (FPresupuestos.SITUACION <> SITUACION_PRESUPUESTO_ANULADO) + and (FPresupuestos.REF_CONTRATO = ''); end; procedure TfEditorPresupuestosCliente.actEliminarUpdate(Sender: TObject); diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.dcu b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.dcu new file mode 100644 index 0000000000000000000000000000000000000000..f528f9af75f76abbf80e6bd3cf1b35b9d4698a86 GIT binary patch literal 27740 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 WnwpY + + {69494a8c-0a35-41ea-b8ec-ea790bfc0662} + ConCli_FacCli_relation.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\ConCli_FacCli_relation.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Borland Sample Components + Delphi 1.0 Compatibility Components + Borland MyBase DataAccess Components + TeeChart Components + Borland SimpleDataset Component (DBX) + ExpressBars extended items by Developer Express Inc. + ExpressBars by Developer Express Inc. + ExpressScheduler 2 by Developer Express Inc. + ExpressVerticalGrid by Developer Express Inc. + ExpressBars DBNavigator by Developer Express Inc. + ExpressBars extended DB items by Developer Express Inc. + ExpressSideBar by Developer Express Inc. + JVCL Band Objects + JVCL Non-Visual Components + JVCL Encryption and Compression Components + JVCL Dialog Components + JVCL Docking Components + JVCL DotNet Controls + JVCL EDI Components Designtime Package + JVCL HMI Controls design time unit + JVCL Interpreter Components + JVCL Jans Components + JVCL Managed Threads + JVCL Multimedia and Image Components + JVCL Network Components + JVCL Page Style Components + JVCL Plugin Components + JVCL Print Preview Components + JVCL Runtime Design Components + JVCL Time Framework + JVCL Unified Interbase Components + JVCL Validators and Error Provider Components + SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005 + SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004. + Intraweb 8.0 Design Package for Borland Development Studio 2006 + Internet Explorer Components + ConCli_FacCli_relation.dpk + + + + + MainSource + + + + + + + + + +
dmGenerarFacturasCli
+
+
+ + diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.rc b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.res b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/ConCli_FacCli_relation.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/uGenerarFacturasCliUtils.pas b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/uGenerarFacturasCliUtils.pas new file mode 100644 index 00000000..2acc33c5 --- /dev/null +++ b/Source/Modulos/Relaciones/Contratos de cliente - Facturas de cliente/uGenerarFacturasCliUtils.pas @@ -0,0 +1,253 @@ +unit uGenerarFacturasCliUtils; + +interface + +uses + Windows, SysUtils, Classes, pngimage, JSDialog, + uBizContratosCliente, uBizFacturasCliente; + +type + TdmGenerarFacturasCli = class(TDataModule) + JsListaFacturasGenerados: TJSDialog; + end; + + function GenerarFacturaCli(const IDContrato : Integer) : Boolean; overload; + function GenerarFacturaCli(AContrato : IBizContratoCliente; var AFactura: IBizFacturaCliente) : Boolean; overload; +// function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uBizDetallesContratoCliente, uBizDetallesFacturaCliente, + uContratosClienteController, uFacturasClienteController, uClientesController, + uDetallesFacturaClienteController, uControllerDetallesBase, + uBizContactos, schFacturasClienteClient_Intf, + schContratosClienteClient_Intf; + +var + dmGenerarFacturasCli: TdmGenerarFacturasCli; + AContratosClienteController : IContratosClienteController; + AFacturasClienteController : IFacturasClienteController; + AClientesController : IClientesController; + +{ Métodos auxiliares } +procedure CopiarContratoAFactura(AContrato: IBizContratoCliente; AFactura : IBizFacturaCliente); +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignado (CopiarContratoAFactura)'); + + if not Assigned(AContrato) then + raise Exception.Create ('Contrato no asignado (CopiarContratoAFactura)'); + + if not AContrato.DataTable.Active then + AContrato.DataTable.Active := True; + + // La factura tiene que venir ya abierto y posicionado donde hay que copiar + AFactura.ID_CLIENTE := AContrato.ID_CLIENTE; + // Lo dejamos listo para que se localize la subcuenta contable asociada al cliente + AFacturasClienteController.RecuperarCliente(AFactura); + AFactura.Cliente.Open; + + AFactura.NIF_CIF := AContrato.NIF_CIF; + AFactura.NOMBRE := AContrato.NOMBRE; + AFactura.CALLE := AContrato.CALLE; + AFactura.POBLACION := AContrato.POBLACION; + AFactura.PROVINCIA := AContrato.PROVINCIA; + AFactura.CODIGO_POSTAL := AContrato.CODIGO_POSTAL; + + +// AFactura.PERSONA_CONTACTO := AContrato.PERSONA_CONTACTO; +// AFactura.DataTable.FieldByName(fld_FacturasClientePLAZO_ENTREGA).AsVariant := AContrato.DataTable.FieldByName(fld_ContratosClientePLAZO_ENTREGA).AsVariant; + AFactura.DataTable.FieldByName(fld_FacturasClienteOBSERVACIONES).AsVariant := AContrato.DataTable.FieldByName(fld_ContratosClienteOBSERVACIONES).AsVariant; + AFactura.IMPORTE_NETO := AContrato.IMPORTE_NETO; + AFactura.IMPORTE_PORTE := AContrato.IMPORTE_PORTE; + AFactura.DESCUENTO := AContrato.DESCUENTO; + AFactura.IMPORTE_DESCUENTO := AContrato.IMPORTE_DESCUENTO; + AFactura.BASE_IMPONIBLE := AContrato.BASE_IMPONIBLE; + AFactura.ID_TIPO_IVA := AContrato.ID_TIPO_IVA; + AFactura.IVA := AContrato.IVA; + AFactura.IMPORTE_IVA := AContrato.IMPORTE_IVA; + AFactura.IMPORTE_TOTAL := AContrato.IMPORTE_TOTAL; + AFactura.ID_TIENDA := AContrato.ID_TIENDA; +// AFactura.ID_VENDEDOR := AContrato.ID_VENDEDOR; + AFactura.RECARGO_EQUIVALENCIA := AContrato.RECARGO_EQUIVALENCIA; + AFactura.RE := AContrato.RE; + AFactura.IMPORTE_RE := AContrato.IMPORTE_RE; +end; + +procedure CopiarDetallesAFactura( + AContrato: IBizContratoCliente; + AFactura: IBizFacturaCliente; + AArticulos: IBizDetallesContratoCliente); +var + i : integer; + ADetalles : IBizDetallesFacturaCliente; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AFactura) then + raise Exception.Create ('Factura no asignada (CopiarDetallesAFactura)'); + + if not Assigned(AContrato) then + raise Exception.Create ('Contrato no asignado (CopiarDetallesAFactura)'); + + if not Assigned(AArticulos) then + raise Exception.Create ('Artículos no asignado (CopiarDetallesAFatura)'); + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + // El contrato tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AFactura.Detalles; + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulos.DataTable.First; + for i := 0 to AArticulos.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADetalles, AArticulos.TIPO_DETALLE); + ADetalles.Edit; + ADetalles.REFERENCIA := AArticulos.REFERENCIA; + ADetalles.ID_ARTICULO := AArticulos.ID_ARTICULO; +// ADetalles.TIPO_ARTICULO := AArticulos.TIPO_ARTICULO; + ADetalles.CONCEPTO := AArticulos.CONCEPTO; + ADetalles.CANTIDAD := AArticulos.CANTIDAD; + ADetalles.IMPORTE_UNIDAD := AArticulos.IMPORTE_UNIDAD; + ADetalles.IMPORTE_TOTAL := AArticulos.IMPORTE_TOTAL; + ADetalles.DESCUENTO := AArticulos.DESCUENTO; + ADetalles.IMPORTE_PORTE := AArticulos.IMPORTE_PORTE; + ADetalles.VISIBLE := AArticulos.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := AArticulos.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulos.Next; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarFacturasCli := TdmGenerarFacturasCli.Create(nil); + AContratosClienteController := TContratosClienteController.Create; + AFacturasClienteController := TFacturasClienteController.Create; + AClientesController := TClientesController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarFacturasCli); + AContratosClienteController := nil; + AFacturasClienteController := nil; + AClientesController := nil; +end; + + +function GenerarFacturaCli(const IDContrato : Integer) : Boolean; overload; +var + AContrato : IBizContratoCliente; + AFactura : IBizFacturaCliente; +begin + Result := False; + + try + if not Assigned(AContratosClienteController) then + Inicializar; + + AContrato := AContratosClienteController.Buscar(IDContrato); + if Assigned(AContrato) then + Result := GenerarFacturaCli(AContrato, AFactura); + finally + if Assigned(AContratosClienteController) then + Finalizar; + end; +end; + +function GenerarFacturaCli(AContrato : IBizContratoCliente; var AFactura: IBizFacturaCliente) : Boolean; overload; +var + ARespuesta : Integer; + +begin + Result := False; + AFactura := NIL; + + if not Assigned(AContrato) then + raise Exception.Create('Contrato de cliente no asignado (GenerarContratoCli)'); + + if not AContrato.DataTable.Active then + AContrato.DataTable.Active := True; + + if not Assigned(AContratosClienteController) then + Inicializar; + + try + AFactura := AFacturasClienteController.Nuevo; + CopiarContratoAFactura(AContrato, AFactura); + CopiarDetallesAFactura(AContrato, AFactura, AContrato.Detalles); + + //Sustituir por if de guardar + if AFacturasClienteController.Guardar(AFactura) then + begin + with dmGenerarFacturasCli.JsListaFacturasGenerados do + begin + Instruction.Text := 'Se ha generado la factura'; + + Content.Clear; + Content.Add(Format('Se ha generado correctamente la factura %s a partir del contrato de cliente' + #10#13, [AFactura.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarán + AFacturasClienteController.Ver(AFactura); + end; + 200 : // Continuar; + end; + end; + end; + + Result := True; + finally + if Assigned(AContratosClienteController) then + Finalizar; + end; +end; +{ +function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + IDAlbaran := -1; + + AAlbaran := NIL; + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el albarán de cliente.' + , False); + + if Assigned(APedido) then + begin + Result := GenerarAlbaranCli(APedido, AAlbaran); + if Result then + IDAlbaran := AAlbaran.ID; + end; + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; +} +end. diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 2f97a9e0ed441a141400eaa79505d8183258997d..d95bbcea8cc76896648fe598d9fd04744c19e781 100644 GIT binary patch delta 45 zcmdn9jd9O5#tkc?gtHh*8B!U_fVh}Jhe3hCkilT`?kGccQwA#rQwEF4pQAhhL!=DQ delta 45 zcmdn9jd9O5#tkc?gmW1Z8HyN67*ZLE8FUyF7z`K;C-06jWVc|jVlZN`ocuY;697Wt B49frj diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index b8bce3c4..0a94373b 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -132,7 +132,7 @@ uses schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas', srvContratosCliente_Impl in '..\Modulos\Contratos de cliente\Servidor\srvContratosCliente_Impl.pas' {srvContratosCliente: TDataAbstractService}, uBizContratosClienteServer in '..\Modulos\Contratos de cliente\Model\uBizContratosClienteServer.pas', - uRptContratosCliente_Server in '..\Modulos\Contratos de cliente\Reports\uRptContratosCliente_Server.pas', + uRptContratosCliente_Server in '..\Modulos\Contratos de cliente\Reports\uRptContratosCliente_Server.pas' {RptContratosCliente}, schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas', schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 04a8bc9c..1b1c9f5c 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,293 +1,297 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - - - Delphi.Personality - - - FalseTrueFalseTrueFalse2350FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.5.0FactuGES (Servidor)2.3.5.0miércoles, 26 de agosto de 2009 12:14 - FastQueryBuilder 1.03 - JVCL Unified Interbase Components - FactuGES_Server.dpr - - - - - MainSource - - - - - -
srvEjercicios
- TDataAbstractService -
- - - -
srvEmpresas
- TDARemoteService -
- -
srvProvinciasPoblaciones
- TRORemoteDataModule -
- - - - - - - - - - - -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - - - - -
RptComisiones
- TDataModule -
- -
srvComisiones
- TDataAbstractService -
- - - - -
srvContabilidad
- TDataAbstractService -
- - - - - - - -
RptEtiquetasContacto
- TDataModule -
- -
srvContactos
- TDARemoteService -
- - - - - -
srvContratosCliente
- TDataAbstractService -
- - - - -
RptFacturasCliente
- TDataModule -
- -
srvFacturasCliente
- TDataAbstractService -
- - - - -
RptFacturasProveedor
- TDataModule -
- -
srvFacturasProveedor
- TDataAbstractService -
- - - - - - - -
srvGestorDocumentos
- TDataAbstractService -
- -
srvGestorInformes
- TDataAbstractService -
- - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
-
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - - - -
RptRecibosCliente
- TDataModule -
- -
srvRecibosCliente
- TDataAbstractService -
- - - - - -
RptRecibosProveedor
- TDataModule -
- -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvReferencias
- TDataAbstractService -
- - - - -
srvRemesasCliente
- TDataAbstractService -
- - - - -
srvRemesasProveedor
- TDataAbstractService -
- - - - - - -
srvUnidadesMedida
- TDataAbstractService -
- - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + + + Delphi.Personality + + +FalseTrueFalseTrueFalse2350FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.5.0FactuGES (Servidor)2.3.5.0miércoles, 26 de agosto de 2009 12:14 + + + FastQueryBuilder 1.03 + JVCL Unified Interbase Components + FactuGES_Server.dpr + + + + + MainSource + + + + + +
srvEjercicios
+ TDataAbstractService +
+ + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones
+ TRORemoteDataModule +
+ + + + + + + + + + + +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + + + + +
RptComisiones
+ TDataModule +
+ +
srvComisiones
+ TDataAbstractService +
+ + + + +
srvContabilidad
+ TDataAbstractService +
+ + + + + + + +
RptEtiquetasContacto
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + + +
RptContratosCliente
+
+ +
srvContratosCliente
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + + + + + +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + + + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + +