diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 491b7fb..df6e208 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index a0c3f23..d663a91 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,55 +58,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f3..1641339 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/Base/Controladores/uControllerDetallesBase.pas b/Source/Base/Controladores/uControllerDetallesBase.pas index f54b946..3436344 100644 --- a/Source/Base/Controladores/uControllerDetallesBase.pas +++ b/Source/Base/Controladores/uControllerDetallesBase.pas @@ -110,7 +110,7 @@ implementation { TControllerDetallesBase } uses - cxControls, SysUtils, DB, uDAInterfaces, Dialogs; + cxControls, SysUtils, DB, uDAInterfaces, Dialogs, uNumUtils; procedure TControllerDetallesBase.ActualizarTotales(ADataTable: IDAStronglyTypedDataTable); begin diff --git a/Source/Informes/1/InfFacturaProforma.fr3 b/Source/Informes/1/InfFacturaProforma.fr3 new file mode 100644 index 0000000..308e98b --- /dev/null +++ b/Source/Informes/1/InfFacturaProforma.fr3 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/InfFacturaCliente.fr3 b/Source/Informes/InfFacturaCliente.fr3 new file mode 100644 index 0000000..ec17076 --- /dev/null +++ b/Source/Informes/InfFacturaCliente.fr3 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/InfFacturaClienteProforma.fr3 b/Source/Informes/InfFacturaClienteProforma.fr3 new file mode 100644 index 0000000..308e98b --- /dev/null +++ b/Source/Informes/InfFacturaClienteProforma.fr3 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 2672a58..ce9ec44 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -28,6 +28,7 @@ type function Nuevo (WithInsert: Boolean = True) : IBizFacturaCliente; function Anadir(AFactura : IBizFacturaCliente) : Boolean; overload; function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean; + function AnadirProforma(AFactura : IBizFacturaCliente) : Boolean; function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload; function Eliminar(const ID : Integer): Boolean; overload; @@ -36,7 +37,7 @@ type procedure DescartarCambios(AFactura : IBizFacturaCliente); function Existe(const ID: Integer) : Boolean; procedure RecuperarCliente(AFactura : IBizFacturaCliente); - procedure ActualizarFormaDePago(AFactura : IBizFacturaCliente; ID_FORMA_PAGO: Integer); + procedure ActualizarFormaDePago(AFactura : IBizFacturaCliente; ID_FORMA_PAGO: Integer); function Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; @@ -92,6 +93,7 @@ type function Existe(const ID: Integer) : Boolean; virtual; function Anadir(AFactura : IBizFacturaCliente): Boolean; overload; function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean; + function AnadirProforma(AFactura : IBizFacturaCliente) : Boolean; function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload; function Buscar(const ID: Integer): IBizFacturaCliente; function BuscarTodos: IBizFacturaCliente; @@ -204,6 +206,14 @@ begin Result := True; end; +function TFacturasClienteController.AnadirProforma( + AFactura: IBizFacturaCliente): Boolean; +begin + Anadir(AFactura); + AFactura.TIPO := CTE_TIPO_PROFORMA; + Result := True; +end; + procedure TFacturasClienteController.ActualizarFormaDePago( AFactura: IBizFacturaCliente; ID_FORMA_PAGO: Integer); var diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas index ace16b4..73eee61 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -3,7 +3,7 @@ unit schFacturasClienteClient_Intf; interface uses - Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; const { Data table rules ids @@ -185,7 +185,7 @@ type end; { TListaAnosFacturasDataTableRules } - TListaAnosFacturasDataTableRules = class(TDADataTableRules, IListaAnosFacturas) + TListaAnosFacturasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosFacturas) private protected { Property getters and setters } @@ -531,7 +531,7 @@ type end; { TFacturasClienteDataTableRules } - TFacturasClienteDataTableRules = class(TDADataTableRules, IFacturasCliente) + TFacturasClienteDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente) private f_OBSERVACIONES: IROStrings; procedure OBSERVACIONES_OnChange(Sender: TObject); @@ -963,7 +963,7 @@ type end; { TFacturasCliente_DetallesDataTableRules } - TFacturasCliente_DetallesDataTableRules = class(TDADataTableRules, IFacturasCliente_Detalles) + TFacturasCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente_Detalles) private protected { Property getters and setters } diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas index 87283bb..efe5090 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -11,6 +11,7 @@ const CTE_TIPO_ABONO = 'A'; CTE_TIPO_FACTURA = 'F'; + CTE_TIPO_PROFORMA = 'P'; CTE_PENDIENTE = 'PENDIENTE'; CTE_PARCIAMENTE_PAGADA = 'PARCIALMENTE PAGADA'; diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas index 1401f30..73d9b2c 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -33,8 +33,10 @@ uses const REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; REF_ABONOS_CLIENTE = 'REF_ABONOS_CLIENTE'; + REF_FACTURAS_PROFORMA = 'REF_FACTURAS_PROFORMA'; CTE_TIPO_ABONO = 'A'; CTE_TIPO_FACTURA = 'F'; + CTE_TIPO_PROFORMA = 'P'; { TBizFacturasClienteServer } @@ -128,9 +130,11 @@ var AClientID : TGUID; ATipo : String; begin -//No se hace distinción en la referencia entre facturas y abonos -// if TIPO = CTE_TIPO_FACTURA then - ATipo := REF_FACTURAS_CLIENTE; +//Se hace distinción en la referencia entre proformas y (facturas/abonos) + if TIPO = CTE_TIPO_PROFORMA then + ATipo := REF_FACTURAS_PROFORMA + else + ATipo := REF_FACTURAS_CLIENTE; // else // ATipo := REF_ABONOS_CLIENTE; @@ -148,7 +152,9 @@ var AClientID : TGUID; ATipo : String; begin -// if TIPO = CTE_TIPO_FACTURA then + if TIPO = CTE_TIPO_PROFORMA then + ATipo := REF_FACTURAS_PROFORMA + else ATipo := REF_FACTURAS_CLIENTE; // else // ATipo := REF_ABONOS_CLIENTE; diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index 26a3e5f..6143010 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -642,32 +642,33 @@ object RptFacturasCliente: TRptFacturasCliente TargetTable = 'FACTURAS_CLIENTE' SQL = 'SELECT'#10' V_FACTURAS_CLIENTE.ID, V_FACTURAS_CLIENTE.REFERENCIA,' + - ' V_FACTURAS_CLIENTE.FECHA_FACTURA,'#10' V_FACTURAS_CLIENTE.TIENDA' + - ', V_FACTURAS_CLIENTE.ID_TIENDA,'#10' V_FACTURAS_CLIENTE.IMPORTE_N' + - 'ETO,'#10' V_FACTURAS_CLIENTE.BASE_IMPONIBLE, V_FACTURAS_CLIENTE.D' + - 'ESCUENTO, V_FACTURAS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_FACTURAS_C' + - 'LIENTE.IVA, V_FACTURAS_CLIENTE.IMPORTE_IVA,'#10' V_FACTURAS_CLIEN' + - 'TE.RE, V_FACTURAS_CLIENTE.IMPORTE_RE,'#10' V_FACTURAS_CLIENTE.IMP' + - 'ORTE_TOTAL,'#10' V_FACTURAS_CLIENTE.OBSERVACIONES, FORMAS_PAGO.DE' + - 'SCRIPCION AS FORMA_PAGO, V_FACTURAS_CLIENTE.ID_CLIENTE,'#10' V_FA' + - 'CTURAS_CLIENTE.REFERENCIA_CLIENTE, V_FACTURAS_CLIENTE.TELEFONO_C' + - 'LIENTE, V_FACTURAS_CLIENTE.NIF_CIF, V_FACTURAS_CLIENTE.NOMBRE, V' + - '_FACTURAS_CLIENTE.CALLE,'#10' V_FACTURAS_CLIENTE.PROVINCIA, V_FAC' + - 'TURAS_CLIENTE.CODIGO_POSTAL, V_FACTURAS_CLIENTE.POBLACION,'#10' C' + - 'ONTACTOS_DATOS_BANCO.TITULAR,'#10' CONTACTOS_DATOS_BANCO.ENTIDAD,' + - #10' CONTACTOS_DATOS_BANCO.SUCURSAL,'#10' CONTACTOS_DATOS_BANCO.D' + - 'C,'#10' CONTACTOS_DATOS_BANCO.CUENTA,'#10' ID_EMPRESA, EMPRESAS.NI' + - 'F_CIF as NIF_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CA' + - 'LLE as CALLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' ' + - ' EMPRESAS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POST' + - 'AL as CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.F' + - 'AX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB,' + - ' EMPRESAS.REGISTRO_MERCANTIL, EMPRESAS.LOGOTIPO,'#10' V_FACTURAS_' + - 'CLIENTE.REFERENCIA_PRESUPUESTO'#10'FROM V_FACTURAS_CLIENTE'#10'LEFT JOIN' + - ' EMPRESAS ON EMPRESAS.ID = ID_EMPRESA'#10'LEFT JOIN FORMAS_PAGO ON (' + - 'FORMAS_PAGO.ID = V_FACTURAS_CLIENTE.ID_FORMA_PAGO)'#10'LEFT JOIN CON' + - 'TACTOS_DATOS_BANCO ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = V_FAC' + - 'TURAS_CLIENTE.ID_CLIENTE)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID'#10 + ' V_FACTURAS_CLIENTE.FECHA_FACTURA,'#10' V_FACTURAS_CLIENTE.TIPO,'#10 + + ' V_FACTURAS_CLIENTE.TIENDA, V_FACTURAS_CLIENTE.ID_TIENDA,'#10' ' + + ' V_FACTURAS_CLIENTE.IMPORTE_NETO,'#10' V_FACTURAS_CLIENTE.BASE_IM' + + 'PONIBLE, V_FACTURAS_CLIENTE.DESCUENTO, V_FACTURAS_CLIENTE.IMPORT' + + 'E_DESCUENTO,'#10' V_FACTURAS_CLIENTE.IVA, V_FACTURAS_CLIENTE.IMPO' + + 'RTE_IVA,'#10' V_FACTURAS_CLIENTE.RE, V_FACTURAS_CLIENTE.IMPORTE_R' + + 'E,'#10' V_FACTURAS_CLIENTE.IMPORTE_TOTAL,'#10' V_FACTURAS_CLIENTE.' + + 'OBSERVACIONES, FORMAS_PAGO.DESCRIPCION AS FORMA_PAGO, V_FACTURAS' + + '_CLIENTE.ID_CLIENTE,'#10' V_FACTURAS_CLIENTE.REFERENCIA_CLIENTE, ' + + 'V_FACTURAS_CLIENTE.TELEFONO_CLIENTE, V_FACTURAS_CLIENTE.NIF_CIF,' + + ' V_FACTURAS_CLIENTE.NOMBRE, V_FACTURAS_CLIENTE.CALLE,'#10' V_FACT' + + 'URAS_CLIENTE.PROVINCIA, V_FACTURAS_CLIENTE.CODIGO_POSTAL, V_FACT' + + 'URAS_CLIENTE.POBLACION,'#10' CONTACTOS_DATOS_BANCO.TITULAR,'#10' C' + + 'ONTACTOS_DATOS_BANCO.ENTIDAD,'#10' CONTACTOS_DATOS_BANCO.SUCURSAL' + + ','#10' CONTACTOS_DATOS_BANCO.DC,'#10' CONTACTOS_DATOS_BANCO.CUENTA' + + ','#10' ID_EMPRESA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.' + + 'RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBL' + + 'ACION as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_' + + 'EMPRESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EM' + + 'PRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAI' + + 'L_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRE' + + 'SAS.LOGOTIPO,'#10' V_FACTURAS_CLIENTE.REFERENCIA_PRESUPUESTO'#10'FROM' + + ' V_FACTURAS_CLIENTE'#10'LEFT JOIN EMPRESAS ON EMPRESAS.ID = ID_EMPRE' + + 'SA'#10'LEFT JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = V_FACTURAS_CLIENTE' + + '.ID_FORMA_PAGO)'#10'LEFT JOIN CONTACTOS_DATOS_BANCO ON (CONTACTOS_DA' + + 'TOS_BANCO.ID_CONTACTO = V_FACTURAS_CLIENTE.ID_CLIENTE)'#10'WHERE V_F' + + 'ACTURAS_CLIENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -871,6 +872,11 @@ object RptFacturasCliente: TRptFacturasCliente DatasetField = 'TELEFONO_CLIENTE' TableField = '' SQLOrigin = 'TELEFONO_CLIENTE' + end + item + DatasetField = 'TIPO' + TableField = '' + SQLOrigin = 'TIPO' end> end> Name = 'InformeFacturasCliente' @@ -892,6 +898,11 @@ object RptFacturasCliente: TRptFacturasCliente DataType = datDateTime DictionaryEntry = 'FacturasCliente_FECHA_FACTURA' end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end item Name = 'TIENDA' DataType = datString diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 2a1f43b..29e9a3e 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -82,6 +82,7 @@ uses const rptFacturaCliente = 'InfFacturaCliente.fr3'; + rptFacturaProforma = 'InfFacturaProforma.fr3'; rptInformeIVA = 'InformeIVAClientes.fr3'; rptInformeIVADesglosado = 'InformeIVAClientesDesglosado.fr3'; @@ -685,7 +686,12 @@ begin tbl_Detalles.Active := True; tbl_Vencimientos.Active := True; - AInforme := DarRutaFichero(DarRutaInformes, rptFacturaCliente, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + if (tbl_Cabecera.FieldByName('TIPO').AsString = 'P') then + AInforme := DarRutaFichero(DarRutaInformes, rptFacturaProforma, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString) + else + AInforme := DarRutaFichero(DarRutaInformes, rptFacturaCliente, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + + if VarIsNull(AInforme) then raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe ' + rptFacturaCliente)); diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm index e24eef4..24bce2b 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm @@ -115,63 +115,43 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 159 - Width = 159 end inherited edtFecha: TcxDBDateEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 159 - Width = 159 end inherited cbFormaPago: TcxDBLookupComboBox Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 78 - Width = 78 end inherited bFormasPago: TButton Left = 312 ExplicitLeft = 312 end inherited frViewTienda1: TfrViewTienda - Width = 351 - ExplicitWidth = 351 inherited dxLayoutControl1: TdxLayoutControl - Width = 351 inherited cbTienda: TcxComboBox Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 399 - Width = 399 end end end inherited frViewClienteFactura1: TfrViewClienteFactura Left = 472 - Width = 398 ExplicitLeft = 472 - ExplicitWidth = 398 inherited dxLayoutControl1: TdxLayoutControl - Width = 398 - inherited Bevel1: TBevel - Width = 266 - ExplicitWidth = 266 - end inherited edtlNombre: TcxDBTextEdit DataBinding.DataSource = dsDataTable Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 276 - Width = 276 end inherited edtNIFCIF: TcxDBTextEdit DataBinding.DataSource = dsDataTable @@ -179,8 +159,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 276 - Width = 276 end inherited edtCalle: TcxDBTextEdit DataBinding.DataSource = dsDataTable @@ -188,8 +166,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 276 - Width = 276 end inherited edtPoblacion: TcxDBTextEdit DataBinding.DataSource = dsDataTable @@ -197,8 +173,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 158 - Width = 158 end inherited edtProvincia: TcxDBTextEdit DataBinding.DataSource = dsDataTable @@ -206,8 +180,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 276 - Width = 276 end inherited edtCodigoPostal: TcxDBTextEdit Left = 306 @@ -227,8 +199,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 283 - Width = 283 end end end @@ -237,19 +207,14 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 310 - Width = 310 end inherited frViewObservaciones1: TfrViewObservaciones - Width = 521 Height = 228 - ExplicitWidth = 521 ExplicitHeight = 228 inherited memObservaciones: TcxDBMemo DataBinding.DataSource = frViewFacturaCliente1.DADataSource ExplicitHeight = 228 Height = 228 - Width = 521 end end inherited cbRecargoEquivalencia: TcxDBCheckBox @@ -257,12 +222,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 158 - Width = 158 - end - inherited edtSituacion: TcxDBComboBox - ExplicitWidth = 121 - Width = 121 end end end @@ -475,10 +434,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente inherited Bevel3: TBevel Left = 489 Top = 30 - Height = 122 ExplicitLeft = 489 ExplicitTop = 30 - ExplicitHeight = 122 end inherited Bevel4: TBevel Left = 601 @@ -597,8 +554,6 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente Style.IsFontAssigned = True ExplicitLeft = 672 ExplicitTop = 104 - ExplicitWidth = 56 - Width = 56 end inherited eImporteNeto: TcxDBCurrencyEdit Top = 30 diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas index b2d24d5..61c3f27 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas @@ -293,13 +293,13 @@ begin begin if FFactura.TIPO = CTE_TIPO_FACTURA then ShowInfoMessage('La factura se ha dado de alta con el código ' + FFactura.REFERENCIA) + else if FFactura.TIPO = CTE_TIPO_ABONO then + ShowInfoMessage('El abono se ha dado de alta con el código ' + FFactura.REFERENCIA) else - begin - ShowInfoMessage('El abono se ha dado de alta con el código ' + FFactura.REFERENCIA); + ShowInfoMessage('La factura proforma se ha dado de alta con el código ' + FFactura.REFERENCIA) //Preguntamos is desea hacer una orden de devolución asociada // if (Application.MessageBox('¿Desea crear una orden de devolución para el abono?', 'Atención', MB_YESNO) = IDYES) then // GenerarAlbaranCli(FFactura); - end; end; Modified := False; @@ -393,8 +393,10 @@ begin begin if FFactura.TIPO = CTE_TIPO_FACTURA then ACadena := 'Antes debe elegir un cliente para esta factura' + else if FFactura.TIPO = CTE_TIPO_ABONO then + ACadena := 'Antes debe elegir un cliente para este abono' else - ACadena := 'Antes debe elegir un cliente para este abono'; + ACadena := 'Antes debe elegir un cliente para esta factura proforma'; ShowWarningMessage(ACadena); AllowChange := False; end; @@ -410,13 +412,17 @@ begin if Factura.EsNuevo then if Factura.TIPO = CTE_TIPO_FACTURA then FTitulo := 'Nueva factura de cliente' - else + else if Factura.TIPO = CTE_TIPO_ABONO then FTitulo := 'Nuevo abono a cliente' + else + FTitulo := 'Nueva factura proforma de cliente' else if Factura.TIPO = CTE_TIPO_FACTURA then FTitulo := 'Factura de cliente' + ' - ' + FFactura.Cliente.Nombre + else if Factura.TIPO = CTE_TIPO_ABONO then + FTitulo := 'Abono a cliente' + ' - ' + FFactura.Cliente.Nombre else - FTitulo := 'Abono a cliente' + ' - ' + FFactura.Cliente.Nombre + FTitulo := 'Factura proforma de cliente' + ' - ' + FFactura.Cliente.Nombre end; inherited PonerTitulos(FTitulo); diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm index 66e839e..f327922 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -52,6 +52,9 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Action = actNuevoAbono Caption = 'Nuevo abono...' end + object TBXItem41: TTBXItem + Action = actNuevaProforma + end end inherited TBXItem2: TTBXItem Visible = False @@ -285,6 +288,12 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente ImageIndex = 25 OnExecute = actInformesExecute end + object actNuevaProforma: TAction + Category = 'Archivo' + Caption = 'Proforma' + ImageIndex = 6 + OnExecute = actNuevaProformaExecute + end end inherited SmallImages: TPngImageList [5] PngImages = < diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas index 52c44bd..1e61f66 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -35,12 +35,15 @@ type actInformes: TAction; JSInformesDialog: TJSDialog; TBXItem40: TTBXItem; + actNuevaProforma: TAction; + TBXItem41: TTBXItem; procedure FormShow(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actNuevaFacturaExecute(Sender: TObject); procedure actNuevoAbonoExecute(Sender: TObject); procedure actInformesExecute(Sender: TObject); procedure OnListaAnosChange(Sender: TObject; const Text: string); + procedure actNuevaProformaExecute(Sender: TObject); private FFacturas: IBizFacturaCliente; @@ -128,6 +131,12 @@ begin actNuevo.Execute; end; +procedure TfEditorFacturasCliente.actNuevaProformaExecute(Sender: TObject); +begin + if FController.AnadirProforma(Facturas) then + FController.Ver(Facturas); +end; + procedure TfEditorFacturasCliente.actNuevoAbonoExecute(Sender: TObject); var Respuesta : Integer; diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm index 27b85f4..303924c 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm @@ -32,6 +32,10 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente item Description = 'Abono' Value = 'A' + end + item + Description = 'Proforma' + Value = 'P' end> end object cxGridViewTIENDA: TcxGridDBColumn @@ -408,6 +412,10 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente AssignedValues = [svTextColor] TextColor = clBlue end + object cxStyleProforma: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end end object PngImageList: TPngImageList PngImages = < diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas index 471341d..fb22abc 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas @@ -64,6 +64,7 @@ type cxGridViewREFERENCIA_PRESUPUESTO: TcxGridDBColumn; cxGridViewREF_CLI_CONTRATO: TcxGridDBColumn; cxGridViewFECHA_COBRO: TcxGridDBColumn; + cxStyleProforma: TcxStyle; procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 8713c69..0967b16 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -30,6 +30,9 @@ FalseTrueFalseTrueFalse2630FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.6.3.0FactuGES (Servidor)2.6.3.0martes, 08 de octubre de 2013 18:53 + + + File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES_Server.dprTrue diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res index 171007a..6f7a634 100644 Binary files a/Source/Servidor/FactuGES_Server.res and b/Source/Servidor/FactuGES_Server.res differ