diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 20e490f4..cbe479b9 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -273,6 +273,15 @@ SET TERM ^ ; /**** Stored Procedures ****/ /******************************************************************************/ +CREATE PROCEDURE PROC_CIERRE_APERTURA ( + ID_EJERCICIO_CIERRE INTEGER, + ID_EJERCICIO_APERTURA INTEGER) +AS +BEGIN + EXIT; +END^ + + CREATE PROCEDURE PROC_DELETE_ASIENTO_FACTURA ( IDFACTURA INTEGER, TIPO VARCHAR(1)) @@ -381,103 +390,6 @@ BEGIN EXIT; END^ - -CREATE PROCEDURE PROC_CIERRE_APERTURA ( - id_ejercicio_cierre integer, - id_ejercicio_apertura integer) -as -declare variable id_subcuenta_apertura integer; -declare variable id_subcuenta_cierre integer; -declare variable ref_subcuenta varchar(255); -declare variable subcuenta varchar(255); -declare variable num_orden integer; -declare variable diferencia numeric(11,2); -declare variable estado_ejercicio_cierre varchar(255); -declare variable estado_ejercicio_apertura varchar(255); -declare variable nombre_ejercicio_cierre varchar(255); -declare variable nombre_ejercicio_apertura varchar(255); -declare variable id_asiento_cierre integer; -declare variable id_asiento_apertura integer; -declare variable id_apunte_apertura integer; -declare variable id_apunte_cierre integer; -begin - /*Seleccionamos el ejercicio de cierre*/ - select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1) - from cont_ejercicios - where id = :id_ejercicio_cierre - into :estado_ejercicio_cierre, :nombre_ejercicio_cierre, :id_asiento_cierre; - - /*Seleccionamos el ejercicio de apertura*/ - select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1) - from cont_ejercicios - where id = :id_ejercicio_apertura - into :estado_ejercicio_apertura, :nombre_ejercicio_apertura, :id_asiento_apertura; - - /*Si los ejercicios no estan abiertos no hacemos nada*/ - if ((estado_ejercicio_cierre = 'ABIERTO') and (estado_ejercicio_apertura = 'ABIERTO')) then - begin - select COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1 - from V_CONT_DIARIO - into :num_orden; - - /* Añadimos asiento de cierre*/ - insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO) - values (:id_asiento_cierre, current_date, :num_orden, 'x'); - - num_orden = num_orden + 1; - /* Añadimos asiento de apertura*/ - insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO) - values (:id_asiento_apertura, current_date, :num_orden, 'a'); - - num_orden = 1; - - /* Para cada cuenta descuadrada se inserta un apunte de cierre asociado al asiento creado anteriormente*/ - for select ID_SUBCUENTA, REF_SUBCUENTA, SUBCUENTA, SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0)) as DIFERENCIA, - GEN_ID(gen_cont_apuntes_id, 1), GEN_ID(gen_cont_apuntes_id, 1) - from v_cont_diario where (ID_EJERCICIO = :ID_EJERCICIO_CIERRE) - group by 1, 2, 3 - having (SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0))) <> 0 - into :id_subcuenta_cierre, :ref_subcuenta, :subcuenta, :diferencia, :id_apunte_cierre, :id_apunte_apertura do - begin - /*Buscamos la subcuenta equibalente en el ejericio de apertura*/ - select ID from cont_subcuentas - where REF_SUBCUENTA = :ref_subcuenta - and DESCRIPCION = :subcuenta - and ID_EJERCICIO = :id_ejercicio_apertura - into :id_subcuenta_apertura; - - if (diferencia > 0) then - begin - /*APUNTE DE CIERRE*/ - insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER) - values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, :diferencia); - - /*APUNTE DE APERTURA*/ - insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE) - values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, :diferencia); - end - else - begin - /*APUNTE DE CIERRE*/ - insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE) - values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, (:diferencia)*-1); - - /*APUNTE DE APERTURA*/ - insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER) - values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, (:diferencia)*-1); - end - num_orden = num_orden + 1; - end - - /*Finalmente cambiamos de estado los ejercicio cerrado*/ - update cont_ejercicios - set ESTADO = 'CERRADO' - where id = :id_ejercicio_cierre; - end - - suspend; -end^ - SET TERM ; ^ @@ -4538,7 +4450,7 @@ begin SELECT PAGOS_CLIENTE.IGNORAR_CONTABILIDAD, RECIBOS_CLIENTE.ID_EMPRESA, RECIBOS_CLIENTE.ID_CLIENTE, RECIBOS_CLIENTE.REFERENCIA || ': ' || RECIBOS_CLIENTE.NOMBRE, PAGOS_CLIENTE.FECHA_PAGO, PAGOS_CLIENTE.TIPO, - PAGOS_CLIENTE.TIPO || ': ' || RECIBOS_CLIENTE.DESCRIPCION, + PAGOS_CLIENTE.TIPO || ': ' || COALESCE(RECIBOS_CLIENTE.DESCRIPCION, 'No hay descripción'), RECIBOS_CLIENTE.IMPORTE FROM PAGOS_CLIENTE LEFT JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID = PAGOS_CLIENTE.ID_RECIBO) @@ -4644,7 +4556,7 @@ begin SELECT PAGOS_PROVEEDOR.IGNORAR_CONTABILIDAD, RECIBOS_PROVEEDOR.ID_EMPRESA, RECIBOS_PROVEEDOR.ID_PROVEEDOR, RECIBOS_PROVEEDOR.REFERENCIA || ': ' || RECIBOS_PROVEEDOR.NOMBRE, PAGOS_PROVEEDOR.FECHA_PAGO, PAGOS_PROVEEDOR.TIPO, - PAGOS_PROVEEDOR.TIPO || ': ' || RECIBOS_PROVEEDOR.DESCRIPCION, + PAGOS_PROVEEDOR.TIPO || ': ' || COALESCE(RECIBOS_PROVEEDOR.DESCRIPCION, 'No hay descripción'), RECIBOS_PROVEEDOR.IMPORTE FROM PAGOS_PROVEEDOR LEFT JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID = PAGOS_PROVEEDOR.ID_RECIBO) @@ -4907,10 +4819,105 @@ begin end ^ +ALTER PROCEDURE PROC_CIERRE_APERTURA ( + ID_EJERCICIO_CIERRE INTEGER, + ID_EJERCICIO_APERTURA INTEGER) +AS +declare variable id_subcuenta_apertura integer; +declare variable id_subcuenta_cierre integer; +declare variable ref_subcuenta varchar(255); +declare variable subcuenta varchar(255); +declare variable num_orden integer; +declare variable diferencia numeric(11,2); +declare variable estado_ejercicio_cierre varchar(255); +declare variable estado_ejercicio_apertura varchar(255); +declare variable nombre_ejercicio_cierre varchar(255); +declare variable nombre_ejercicio_apertura varchar(255); +declare variable id_asiento_cierre integer; +declare variable id_asiento_apertura integer; +declare variable id_apunte_apertura integer; +declare variable id_apunte_cierre integer; +begin + /*Seleccionamos el ejercicio de cierre*/ + select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1) + from cont_ejercicios + where id = :id_ejercicio_cierre + into :estado_ejercicio_cierre, :nombre_ejercicio_cierre, :id_asiento_cierre; + + /*Seleccionamos el ejercicio de apertura*/ + select ESTADO, NOMBRE, GEN_ID(gen_cont_asientos_id, 1) + from cont_ejercicios + where id = :id_ejercicio_apertura + into :estado_ejercicio_apertura, :nombre_ejercicio_apertura, :id_asiento_apertura; + + /*Si los ejercicios no estan abiertos no hacemos nada*/ + if ((estado_ejercicio_cierre = 'ABIERTO') and (estado_ejercicio_apertura = 'ABIERTO')) then + begin + select COALESCE(max(V_CONT_DIARIO.ORDEN_ASIENTO),0) + 1 + from V_CONT_DIARIO + into :num_orden; + + /* Añadimos asiento de cierre*/ + insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO) + values (:id_asiento_cierre, current_date, :num_orden, 'x'); + + num_orden = num_orden + 1; + /* Añadimos asiento de apertura*/ + insert into CONT_ASIENTOS (ID, FECHA_ASIENTO, ORDEN, TIPO) + values (:id_asiento_apertura, current_date, :num_orden, 'a'); + + num_orden = 1; + + /* Para cada cuenta descuadrada se inserta un apunte de cierre asociado al asiento creado anteriormente*/ + for select ID_SUBCUENTA, REF_SUBCUENTA, SUBCUENTA, SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0)) as DIFERENCIA, + GEN_ID(gen_cont_apuntes_id, 1), GEN_ID(gen_cont_apuntes_id, 1) + from v_cont_diario where (ID_EJERCICIO = :ID_EJERCICIO_CIERRE) + group by 1, 2, 3 + having (SUM(COALESCE(DEBE,0))-SUM(COALESCE(HABER,0))) <> 0 + into :id_subcuenta_cierre, :ref_subcuenta, :subcuenta, :diferencia, :id_apunte_cierre, :id_apunte_apertura do + begin + /*Buscamos la subcuenta equibalente en el ejericio de apertura*/ + select ID from cont_subcuentas + where REF_SUBCUENTA = :ref_subcuenta + and DESCRIPCION = :subcuenta + and ID_EJERCICIO = :id_ejercicio_apertura + into :id_subcuenta_apertura; + + if (diferencia > 0) then + begin + /*APUNTE DE CIERRE*/ + insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER) + values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, :diferencia); + + /*APUNTE DE APERTURA*/ + insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE) + values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, :diferencia); + end + else + begin + /*APUNTE DE CIERRE*/ + insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, DEBE) + values (:id_apunte_cierre, :id_asiento_cierre, :id_subcuenta_cierre, :num_orden, -1, 'Asiento de cierre ' || :nombre_ejercicio_cierre, (:diferencia)*-1); + + /*APUNTE DE APERTURA*/ + insert into CONT_APUNTES (ID, ID_ASIENTO, ID_SUBCUENTA, NUM_ORDEN, PUNTEADO, CONCEPTO, HABER) + values (:id_apunte_apertura, :id_asiento_apertura, :id_subcuenta_apertura, :num_orden, -1, 'Asiento de apertura ' || :nombre_ejercicio_apertura, (:diferencia)*-1); + end + num_orden = num_orden + 1; + end + + /*Finalmente cambiamos de estado los ejercicio cerrado*/ + update cont_ejercicios + set ESTADO = 'CERRADO' + where id = :id_ejercicio_cierre; + end + + suspend; +end +^ SET TERM ; ^ - diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 1641339f..8b251f31 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index caa403dd..cefc62b7 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -53,7 +53,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2280FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.8.0FactuGESFactuGES2.2.8.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2290FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.9.0FactuGESFactuGES2.2.9.0 diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index 833e7417..8adcccd1 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo Acana\Resources\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 2,2,8,0 -PRODUCTVERSION 2,2,8,0 +FILEVERSION 2,2,9,0 +PRODUCTVERSION 2,2,9,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -13,10 +13,10 @@ BEGIN BLOCK "0C0A04E4" BEGIN VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "2.2.8.0\0" + VALUE "FileVersion", "2.2.9.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "2.2.8.0\0" + VALUE "ProductVersion", "2.2.9.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 50b6bf30..998bfc49 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index a5a33a2b..93ffeec0 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,37 +58,37 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res index 1641339f..8b251f31 100644 Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.dfm b/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.dfm index b5e5a38c..934ae5fe 100644 --- a/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.dfm +++ b/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.dfm @@ -55,11 +55,13 @@ inherited fEditorExtractoMovimientos: TfEditorExtractoMovimientos inherited TBXTMain2: TTBXToolbar DockPos = 275 Visible = True - ExplicitWidth = 240 + ExplicitWidth = 246 object TBXItem38: TTBXItem Action = actPuntear DisplayMode = nbdmImageAndText end + object TBXSeparatorItem17: TTBXSeparatorItem + end object TBXItem39: TTBXItem Action = actCerrarCaja end diff --git a/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.pas b/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.pas index f4c86efe..f7a079ec 100644 --- a/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.pas +++ b/Source/Modulos/Contabilidad/Views/uEditorExtractoMovimientos.pas @@ -21,6 +21,7 @@ type TBXItem38: TTBXItem; actCerrarCaja: TAction; TBXItem39: TTBXItem; + TBXSeparatorItem17: TTBXSeparatorItem; procedure FormShow(Sender: TObject); procedure actModificarUpdate(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); @@ -179,11 +180,9 @@ end; procedure TfEditorExtractoMovimientos.actCerrarCajaExecute(Sender: TObject); begin inherited; - showmessage(IntToStr(Diario.ID_SUBCUENTA)); - showmessage(IntToStr(frViewExtractoMovimientos1.cxGrid.ActiveLevel.Tag)); if FController.CerrarCajaBanco(frViewExtractoMovimientos1.cxGrid.ActiveLevel.Tag) then actRefrescar.Execute; - + ViewGrid.GotoFirst; end; procedure TfEditorExtractoMovimientos.actEliminarUpdate(Sender: TObject); diff --git a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res index 1641339f..8b251f31 100644 Binary files a/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res and b/Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res differ diff --git a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res index 1641339f..8b251f31 100644 Binary files a/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res and b/Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res differ diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 4580b11f..4b2521fc 100644 Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index a4a6b160..97de16a4 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,285 +1,284 @@ - + - - {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 - - -FalseTrueFalseTrueFalse2280FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.8.0FactuGES (Servidor)2.2.8.0jueves, 08 de enero de 2009 20:14 - - RemObjects Pascal Script - RemObjects SDK 3.0 Integration - 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 -
- - - - -
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 + + + FalseTrueFalseTrueFalse2290FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.9.0FactuGES (Servidor)2.2.9.0miércoles, 18 de febrero de 2009 16:31 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + 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 +
+ + + + +
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
+
+ + + + + + + + +