From 590423a38d28692f75e395cf0be1236d688d35a9 Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 23 Jun 2022 10:11:48 +0000 Subject: [PATCH] Version 2.5.1 Cambios varios git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1169 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Source/Base/Base.dproj | 106 ++++++++-------- Source/Cliente/FactuGES.dproj | 2 +- Source/Cliente/FactuGES.rc | 8 +- Source/Cliente/FactuGES.res | Bin 171984 -> 171984 bytes Source/Informes/1/FacturaCliente.rdx | Bin 616448 -> 623104 bytes Source/Informes/1/InfFacturaCliente.fr3 | 10 +- .../Data/uDataModuleFacturasCliente.dfm | 4 + .../Model/schFacturasClienteClient_Intf.pas | 47 +++++++- .../Model/schFacturasClienteServer_Intf.pas | 55 ++++++++- .../Model/uBizFacturasCliente.pas | 1 + .../Servidor/srvFacturasCliente_Impl.dfm | 46 +++++-- .../Views/uViewFacturaCliente.dfm | 59 +++++++-- .../Views/uViewFacturaCliente.pas | 2 + .../Views/uViewFacturasCliente.dfm | 15 +++ .../Views/uViewFacturasCliente.pas | 1 + .../Formas de pago/Views/uEditorFormaPago.pas | 3 + .../uPresupuestosClienteController.pas | 92 +++++++++++++- .../Data/uDataModulePresupuestosCliente.dfm | 4 + .../schPresupuestosClienteClient_Intf.pas | 47 +++++++- .../schPresupuestosClienteServer_Intf.pas | 55 ++++++++- .../Model/uBizPresupuestosCliente.pas | 3 + .../Servidor/srvPresupuestosCliente_Impl.dfm | 41 +++++-- .../Views/uEditorPresupuestoCliente.dfm | 95 ++++++++------- .../Views/uEditorPresupuestosCliente.dfm | 114 +++++++++++++++++- .../Views/uEditorPresupuestosCliente.pas | 59 ++++++++- .../Views/uViewPresupuestoCliente.dfm | 59 +++++++-- .../Views/uViewPresupuestoCliente.pas | 2 + .../Views/uViewPresupuestosCliente.dfm | 39 +++++- .../Views/uViewPresupuestosCliente.pas | 28 +++-- Source/Servidor/FactuGES_Server.RES | Bin 23356 -> 23340 bytes Source/Servidor/FactuGES_Server.dpr | 10 +- Source/Servidor/FactuGES_Server.dproj | 2 +- Source/Servidor/FactuGES_Server.rc | 10 +- 33 files changed, 813 insertions(+), 206 deletions(-) diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 92f2a92e..82f998db 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -45,6 +45,10 @@ Package FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + Microsoft Office 2000 Sample Automation Server Wrapper Components Microsoft Office XP Sample Automation Server Wrapper Components Base.dpk @@ -54,58 +58,58 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index db59be65..eaa173bb 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\TrueFalse2400FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.4.0.0FactuGESFactuGES2.4.0.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2510FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.1.0FactuGESFactuGES2.5.1.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index 34e40ecf..5a7ab119 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo tecsitel\Resources\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 2,4,0,0 -PRODUCTVERSION 2,4,0,0 +FILEVERSION 2,5,1,0 +PRODUCTVERSION 2,5,1,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.4.0.0\0" + VALUE "FileVersion", "2.5.1.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "2.4.0.0\0" + VALUE "ProductVersion", "2.5.1.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 7e638f7b5cf500e92e40154e9723b96da9331be6..75d4651f9109642b4c820092dbd05b642812b798 100644 GIT binary patch delta 56 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 delta 3977 zcmbuCdr;KZ702&g?(Y6Bvamb_1Y8!7hkzJkXxe`ySmPM0;3LyELBI#^r;&8GQpa$Fobpeds z0u{#_dpUQy<4sBFy+r}6`!Lfv=kv;r`K2MILfPZ4G;L^G5bU!}l;44A3+xe)dm-0B z_FH`Acp_tiP@_V8`EQfU{O@BU8CxJ2TOGsLTy*P5EMtdI)#YFe9hk?qK%w;C$Yhke zi3T`O(}v74eA-?Z|`Asf0tJSL6kldBlY3`lY+P-Y< zk7jp+eA3N>-%2UQD69mlKpm(D+dv1{4qgGB?%xJyO}fC^H(&4t?HdWUaGvukyJnJ9 zX%|TB3k|yy8dw6g6tqS6g(YY4^iKr7n}-s!e5E~PK!#avxGPfL$fKInn$=(pC5QnLW2Pq&I z%mamB3ApcWbjG+hIc@Hm44W=VH`tMF>w7n2E^iZd7Ld$KF(H@|W_vWkJw%Cyw-^u$ zrT`;iCUlBe07^hDXaJ3%6>I|SU@Q13*ar529zdVkMG$%wj|8l)slW;Dx;xWWxO+s1 z`|Gr^9IQjzGZ{R8K@e-Gm^Et_%2D6yKs_*`bwKY1J$><+*LW5M*bj^#6yrAF@NdL& zKu@HY?OE9!S=k(zJXzTRn`h!1THfCr@X-}P8>l+9P-Kde7#z>wLQ%ovYq7-dx;-0 zffb+_lz>vO643i{)LH|*43vWkPzkC)HJ~!o(mLq%puwb0FBS<}GxQBWeX&?<4|W|s zuYc-=unbsKOMz(N@2lYg(QfK3QZ0p|D#UgEv|hwtR1Fo1#;9?l|E2F+^VN@6!%IXP zpYLf}D*jPsriR3N8c&GbysI;)|CIQ`^uVXDx*9qyUgk?x(;3uz!7~iu;Hy>B=b}Eu z*o^$rGxWLOoO?aPe-kG|wXe}`>ZSTp+sReg!fH9HZ>qIyf@ zd9|ffrnQwIP$^gmR)ca-0qVdm&fYUCw5 zLU|o{ns7j2-q|yx`-z4`H8veAX59OMnqDnmFq@dwn~Zy9WUziI$4g&Q?^VkjPhgEq zVhmCyW;Pj&P_yR)e&)EES z!OkG>RJKN$lJqvz9zZisJ^A~+v9Vmt{HNHw-S|_odVs0?Mp_)LTE1-8@z0u9wB%>XCLPx-Ae-0s0F^7ma=3V{iow0a|QH z>QC!ss`)H(XVuMSIZI_XOZ#)Ra6y~hE5O+B6m+@`(7(M_unkb-$Q?ECGvFYXz{=wM z2-Vmuvtk6Y4~!FZ^=`Awe-QtBd5;U-gU~cSw6D@$YJ{h~)YwCf{WD4J+91=_=4Kfy zO<0B$%j~(nL0;o|6ZduM*8jS1CwV5dN;98<+k(E11~6<}4?T-7)R#wgJell%6(?5f uF;U>zy-5l_>Gr`b9qw~Wf0xT - + - + @@ -65,11 +65,13 @@ - + + + - + diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm index 46fc474b..714cf85b 100644 --- a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm @@ -287,6 +287,10 @@ inherited DataModuleFacturasCliente: TDataModuleFacturasCliente item Name = 'FACTURA_WEB' DataType = datSmallInt + end + item + Name = 'ANTICIPADA' + DataType = datSmallInt end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas index 71d0ff1f..cde47eb3 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -9,9 +9,9 @@ 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_ListaAnosFacturas = '{B6420F5C-D91E-48CE-B5AE-1601C339BCFB}'; - RID_FacturasCliente = '{CFAF95F1-1417-4EFB-9434-9F6E72BEC0A2}'; - RID_FacturasCliente_Detalles = '{48E213DD-72ED-44BB-9E6F-FB5D350B50D4}'; + RID_ListaAnosFacturas = '{73B3E607-12AC-45CC-A271-B71B7CB04265}'; + RID_FacturasCliente = '{CCDFBD59-C5F8-4D55-B1FF-6ADED793246B}'; + RID_FacturasCliente_Detalles = '{D4D44383-AE2B-448A-BE39-BA7A7BF96DC2}'; { Data table names } nme_ListaAnosFacturas = 'ListaAnosFacturas'; @@ -69,6 +69,7 @@ const fld_FacturasClienteID_PRESUPUESTO = 'ID_PRESUPUESTO'; fld_FacturasClienteREFERENCIA_PRESUPUESTO = 'REFERENCIA_PRESUPUESTO'; fld_FacturasClienteFACTURA_WEB = 'FACTURA_WEB'; + fld_FacturasClienteANTICIPADA = 'ANTICIPADA'; { FacturasCliente field indexes } idx_FacturasClienteID = 0; @@ -115,6 +116,7 @@ const idx_FacturasClienteID_PRESUPUESTO = 41; idx_FacturasClienteREFERENCIA_PRESUPUESTO = 42; idx_FacturasClienteFACTURA_WEB = 43; + idx_FacturasClienteANTICIPADA = 44; { FacturasCliente_Detalles fields } fld_FacturasCliente_DetallesID = 'ID'; @@ -153,7 +155,7 @@ const type { IListaAnosFacturas } IListaAnosFacturas = interface(IDAStronglyTypedDataTable) - ['{5CB55BC4-3F60-4960-A0CB-B487CC69AE87}'] + ['{2DB3E7B0-074E-437F-8A05-B13A13B86C3F}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -188,7 +190,7 @@ type { IFacturasCliente } IFacturasCliente = interface(IDAStronglyTypedDataTable) - ['{DD0C6685-6F03-48F9-9628-0C1B2255F118}'] + ['{A82FC171-C66B-428B-BB34-FE7FD430543A}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -365,6 +367,10 @@ type procedure SetFACTURA_WEBValue(const aValue: SmallInt); function GetFACTURA_WEBIsNull: Boolean; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); + function GetANTICIPADAValue: SmallInt; + procedure SetANTICIPADAValue(const aValue: SmallInt); + function GetANTICIPADAIsNull: Boolean; + procedure SetANTICIPADAIsNull(const aValue: Boolean); { Properties } @@ -456,6 +462,8 @@ type property REFERENCIA_PRESUPUESTOIsNull: Boolean read GetREFERENCIA_PRESUPUESTOIsNull write SetREFERENCIA_PRESUPUESTOIsNull; property FACTURA_WEB: SmallInt read GetFACTURA_WEBValue write SetFACTURA_WEBValue; property FACTURA_WEBIsNull: Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; + property ANTICIPADA: SmallInt read GetANTICIPADAValue write SetANTICIPADAValue; + property ANTICIPADAIsNull: Boolean read GetANTICIPADAIsNull write SetANTICIPADAIsNull; end; { TFacturasClienteDataTableRules } @@ -640,6 +648,10 @@ type procedure SetFACTURA_WEBValue(const aValue: SmallInt); virtual; function GetFACTURA_WEBIsNull: Boolean; virtual; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); virtual; + function GetANTICIPADAValue: SmallInt; virtual; + procedure SetANTICIPADAValue(const aValue: SmallInt); virtual; + function GetANTICIPADAIsNull: Boolean; virtual; + procedure SetANTICIPADAIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -730,6 +742,8 @@ type property REFERENCIA_PRESUPUESTOIsNull: Boolean read GetREFERENCIA_PRESUPUESTOIsNull write SetREFERENCIA_PRESUPUESTOIsNull; property FACTURA_WEB: SmallInt read GetFACTURA_WEBValue write SetFACTURA_WEBValue; property FACTURA_WEBIsNull: Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; + property ANTICIPADA: SmallInt read GetANTICIPADAValue write SetANTICIPADAValue; + property ANTICIPADAIsNull: Boolean read GetANTICIPADAIsNull write SetANTICIPADAIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -739,7 +753,7 @@ type { IFacturasCliente_Detalles } IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{C6858DC1-BBDE-4EC0-93E6-E1D177191707}'] + ['{F3DED1B6-4C46-4A15-97C0-C5E56824CF36}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1919,6 +1933,27 @@ begin DataTable.Fields[idx_FacturasClienteFACTURA_WEB].AsVariant := Null; end; +function TFacturasClienteDataTableRules.GetANTICIPADAValue: SmallInt; +begin + result := DataTable.Fields[idx_FacturasClienteANTICIPADA].AsSmallInt; +end; + +procedure TFacturasClienteDataTableRules.SetANTICIPADAValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_FacturasClienteANTICIPADA].AsSmallInt := aValue; +end; + +function TFacturasClienteDataTableRules.GetANTICIPADAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasClienteANTICIPADA].IsNull; +end; + +procedure TFacturasClienteDataTableRules.SetANTICIPADAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasClienteANTICIPADA].AsVariant := Null; +end; + { TFacturasCliente_DetallesDataTableRules } constructor TFacturasCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas index ccd701ff..75b0490e 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -9,14 +9,14 @@ 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_ListaAnosFacturasDelta = '{4545AB94-BA1A-498B-82CC-6BB34ACFBF86}'; - RID_FacturasClienteDelta = '{AB0BB13F-03DD-46A7-9C1E-82C075A9DE7B}'; - RID_FacturasCliente_DetallesDelta = '{3C02B67E-221C-403B-AE8D-FAD1AB3E0FCC}'; + RID_ListaAnosFacturasDelta = '{2C4A6B5A-64F9-4553-99CE-A567BBC9D1EF}'; + RID_FacturasClienteDelta = '{92A860A2-9687-477D-BD9C-EFDB42BAAEFC}'; + RID_FacturasCliente_DetallesDelta = '{F439447E-F248-42DF-8BEA-2E1049E06244}'; type { IListaAnosFacturasDelta } IListaAnosFacturasDelta = interface(IListaAnosFacturas) - ['{4545AB94-BA1A-498B-82CC-6BB34ACFBF86}'] + ['{2C4A6B5A-64F9-4553-99CE-A567BBC9D1EF}'] { Property getters and setters } function GetOldANOValue : String; @@ -50,7 +50,7 @@ type { IFacturasClienteDelta } IFacturasClienteDelta = interface(IFacturasCliente) - ['{AB0BB13F-03DD-46A7-9C1E-82C075A9DE7B}'] + ['{92A860A2-9687-477D-BD9C-EFDB42BAAEFC}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -96,6 +96,7 @@ type function GetOldID_PRESUPUESTOValue : Integer; function GetOldREFERENCIA_PRESUPUESTOValue : String; function GetOldFACTURA_WEBValue : SmallInt; + function GetOldANTICIPADAValue : SmallInt; { Properties } property OldID : Integer read GetOldIDValue; @@ -142,6 +143,7 @@ type property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; property OldREFERENCIA_PRESUPUESTO : String read GetOldREFERENCIA_PRESUPUESTOValue; property OldFACTURA_WEB : SmallInt read GetOldFACTURA_WEBValue; + property OldANTICIPADA : SmallInt read GetOldANTICIPADAValue; end; { TFacturasClienteBusinessProcessorRules } @@ -414,6 +416,12 @@ type function GetOldFACTURA_WEBIsNull: Boolean; virtual; procedure SetFACTURA_WEBValue(const aValue: SmallInt); virtual; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); virtual; + function GetANTICIPADAValue: SmallInt; virtual; + function GetANTICIPADAIsNull: Boolean; virtual; + function GetOldANTICIPADAValue: SmallInt; virtual; + function GetOldANTICIPADAIsNull: Boolean; virtual; + procedure SetANTICIPADAValue(const aValue: SmallInt); virtual; + procedure SetANTICIPADAIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -592,6 +600,10 @@ type property FACTURA_WEBIsNull : Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; property OldFACTURA_WEB : SmallInt read GetOldFACTURA_WEBValue; property OldFACTURA_WEBIsNull : Boolean read GetOldFACTURA_WEBIsNull; + property ANTICIPADA : SmallInt read GetANTICIPADAValue write SetANTICIPADAValue; + property ANTICIPADAIsNull : Boolean read GetANTICIPADAIsNull write SetANTICIPADAIsNull; + property OldANTICIPADA : SmallInt read GetOldANTICIPADAValue; + property OldANTICIPADAIsNull : Boolean read GetOldANTICIPADAIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -601,7 +613,7 @@ type { IFacturasCliente_DetallesDelta } IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) - ['{3C02B67E-221C-403B-AE8D-FAD1AB3E0FCC}'] + ['{F439447E-F248-42DF-8BEA-2E1049E06244}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -2232,6 +2244,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteFACTURA_WEB] := Null; end; +function TFacturasClienteBusinessProcessorRules.GetANTICIPADAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteANTICIPADA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetANTICIPADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteANTICIPADA]); +end; + +function TFacturasClienteBusinessProcessorRules.GetOldANTICIPADAValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteANTICIPADA]; +end; + +function TFacturasClienteBusinessProcessorRules.GetOldANTICIPADAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteANTICIPADA]); +end; + +procedure TFacturasClienteBusinessProcessorRules.SetANTICIPADAValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteANTICIPADA] := aValue; +end; + +procedure TFacturasClienteBusinessProcessorRules.SetANTICIPADAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteANTICIPADA] := Null; +end; + { TFacturasCliente_DetallesBusinessProcessorRules } constructor TFacturasCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas index 299dd9e3..f6be2700 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -270,6 +270,7 @@ begin RE := 0; SITUACION := CTE_PENDIENTE; FACTURA_WEB := 0; + ANTICIPADA := 0; end; procedure TBizFacturaCliente.IVAOnChange(Sender: TDACustomField); diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm index 8c7265af..f10c9e7d 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -223,6 +223,10 @@ object srvFacturasCliente: TsrvFacturasCliente item DatasetField = 'FACTURA_WEB' TableField = 'FACTURA_WEB' + end + item + DatasetField = 'ANTICIPADA' + TableField = 'ANTICIPADA' end> end> Name = 'FacturasCliente' @@ -454,6 +458,10 @@ object srvFacturasCliente: TsrvFacturasCliente item Name = 'FACTURA_WEB' DataType = datSmallInt + end + item + Name = 'ANTICIPADA' + DataType = datSmallInt end> end item @@ -1031,6 +1039,11 @@ object srvFacturasCliente: TsrvFacturasCliente Name = 'FACTURA_WEB' DataType = datSmallInt Value = '' + end + item + Name = 'ANTICIPADA' + DataType = datSmallInt + Value = '' end> Statements = < item @@ -1048,18 +1061,19 @@ object srvFacturasCliente: TsrvFacturasCliente 'IO,'#10' ID_FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA,'#10' ID_TIPO_IVA' + ','#10' IMPORTE_NETO,'#10' IMPORTE_PORTE,'#10' DATOS_BANCARIOS,'#10' ' + 'CLIENTE_FINAL,'#10' RETENCION,'#10' IMPORTE_RETENCION,'#10' CERTIFI' + - 'CADO_ISO,'#10' ID_PRESUPUESTO,'#10' FACTURA_WEB)'#10' VALUES ('#10' :I' + - 'D,'#10' :ID_EMPRESA,'#10' :REFERENCIA,'#10' :FECHA_FACTURA,'#10' :FE' + - 'CHA_VENCIMIENTO,'#10' :FECHA_RETENCION,'#10' :BASE_IMPONIBLE,'#10' ' + - ':DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE_IVA,'#10 + - ' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' :OBSERVACIONES' + - ','#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' :ID_DIRECCION,' + - #10' :CALLE,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_POSTAL,' + - #10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :ID' + - '_FORMA_PAGO,'#10' :RECARGO_EQUIVALENCIA,'#10' :ID_TIPO_IVA,'#10' :I' + - 'MPORTE_NETO,'#10' :IMPORTE_PORTE,'#10' :DATOS_BANCARIOS,'#10' :CLIE' + - 'NTE_FINAL,'#10' :RETENCION,'#10' :IMPORTE_RETENCION,'#10' :CERTIFIC' + - 'ADO_ISO,'#10' :ID_PRESUPUESTO,'#10' :FACTURA_WEB);'#10 + 'CADO_ISO,'#10' ID_PRESUPUESTO,'#10' FACTURA_WEB,'#10' ANTICIPADA)'#10' ' + + ' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :REFERENCIA,'#10' :FECHA_' + + 'FACTURA,'#10' :FECHA_VENCIMIENTO,'#10' :FECHA_RETENCION,'#10' :BASE' + + '_IMPONIBLE,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' ' + + ' :IMPORTE_IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' ' + + ' :OBSERVACIONES,'#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' ' + + ' :ID_DIRECCION,'#10' :CALLE,'#10' :POBLACION,'#10' :PROVINCIA,'#10' ' + + ' :CODIGO_POSTAL,'#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :' + + 'USUARIO,'#10' :ID_FORMA_PAGO,'#10' :RECARGO_EQUIVALENCIA,'#10' :ID_' + + 'TIPO_IVA,'#10' :IMPORTE_NETO,'#10' :IMPORTE_PORTE,'#10' :DATOS_BANC' + + 'ARIOS,'#10' :CLIENTE_FINAL,'#10' :RETENCION,'#10' :IMPORTE_RETENCIO' + + 'N,'#10' :CERTIFICADO_ISO,'#10' :ID_PRESUPUESTO,'#10' :FACTURA_WEB,'#10 + + ' :ANTICIPADA);'#10 StatementType = stSQL ColumnMappings = <> end> @@ -1262,6 +1276,11 @@ object srvFacturasCliente: TsrvFacturasCliente DataType = datSmallInt Value = '' end + item + Name = 'ANTICIPADA' + DataType = datSmallInt + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1290,7 +1309,8 @@ object srvFacturasCliente: TsrvFacturasCliente 'ANCARIOS,'#10' CLIENTE_FINAL = :CLIENTE_FINAL,'#10' RETENCION = :R' + 'ETENCION,'#10' IMPORTE_RETENCION = :IMPORTE_RETENCION,'#10' CERTIF' + 'ICADO_ISO = :CERTIFICADO_ISO,'#10' ID_PRESUPUESTO = :ID_PRESUPUES' + - 'TO,'#10' FACTURA_WEB = :FACTURA_WEB'#10' WHERE'#10' (ID = :OLD_ID);'#10 + 'TO,'#10' FACTURA_WEB = :FACTURA_WEB,'#10' ANTICIPADA = :ANTICIPADA' + + #10' WHERE'#10' (ID = :OLD_ID);'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm index 8fb5907e..c1a53bea 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm @@ -98,7 +98,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 11 + TabOrder = 12 Height = 345 Width = 355 end @@ -136,7 +136,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 4 + TabOrder = 5 Width = 269 end object bFormasPago: TButton @@ -145,7 +145,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Width = 132 Height = 23 Caption = 'Ver las formas de pago...' - TabOrder = 5 + TabOrder = 6 OnClick = bFormasPagoClick end object cbCuentaBancaria: TcxDBComboBox @@ -167,7 +167,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - TabOrder = 7 + TabOrder = 8 Width = 165 end object cbClienteFinal: TcxDBTextEdit @@ -195,7 +195,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 9 + TabOrder = 10 Width = 339 end object bElegirClienteFinal: TButton @@ -204,7 +204,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Width = 23 Height = 25 Action = actElegirClienteFinal - TabOrder = 10 + TabOrder = 11 end inline frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente Left = 343 @@ -217,16 +217,19 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 8 + TabOrder = 9 ReadOnly = False ExplicitLeft = 343 ExplicitTop = 30 inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 101 inherited edtlNombre: TcxDBTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 end inherited edtNIFCIF: TcxDBTextEdit Left = 171 @@ -245,6 +248,8 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 121 + Width = 121 end inherited Button4: TButton Left = 251 @@ -287,13 +292,14 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 6 + TabOrder = 7 Width = 275 end object eCertificadoISO: TcxDBCheckBox Left = 22 Top = 84 Caption = 'Certificaci'#243'n ISO' + Constraints.MinWidth = 110 DataBinding.DataField = 'CERTIFICADO_ISO' DataBinding.DataSource = DADataSource Properties.ValueChecked = 1 @@ -308,10 +314,10 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleHot.LookAndFeel.NativeStyle = True TabOrder = 2 Transparent = True - Width = 125 + Width = 110 end object eFacturaWeb: TcxDBCheckBox - Left = 153 + Left = 219 Top = 84 Caption = 'Factura WEB' DataBinding.DataField = 'FACTURA_WEB' @@ -327,10 +333,32 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 3 + TabOrder = 4 Transparent = True Width = 293 end + object eFacturaANT: TcxDBCheckBox + Left = 138 + Top = 84 + Caption = 'Anticipada' + Constraints.MinWidth = 75 + DataBinding.DataField = 'ANTICIPADA' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Transparent = True + Width = 75 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -364,8 +392,17 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente LayoutDirection = ldHorizontal ShowBorder = False object dxLayoutControl1Item11: TdxLayoutItem + AutoAligns = [aaVertical] ShowCaption = False Control = eCertificadoISO + ControlOptions.MinWidth = 100 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item13: TdxLayoutItem + AutoAligns = [aaVertical] + ShowCaption = False + Control = eFacturaANT + ControlOptions.MinWidth = 75 ControlOptions.ShowBorder = False end object dxLayoutControl1Item12: TdxLayoutItem diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas index 3a7e4c60..898a644b 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas @@ -72,6 +72,8 @@ type dxLayoutControl1Item12: TdxLayoutItem; eFacturaWeb: TcxDBCheckBox; dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item13: TdxLayoutItem; + eFacturaANT: TcxDBCheckBox; procedure bFormasPagoClick(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure CustomViewCreate(Sender: TObject); diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm index 8b900b21..41eac715 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm @@ -22,6 +22,21 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente DataController.OnCompare = cxGridViewDataControllerCompare OptionsCustomize.ColumnHidingOnGrouping = False OptionsView.GroupFooters = gfAlwaysVisible + object cxGridViewANTICIPADA: TcxGridDBColumn + Caption = 'Anticipada' + DataBinding.FieldName = 'ANTICIPADA' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Anticipada' + ImageIndex = 0 + Value = 1 + end + item + Value = 0 + end> + end object cxGridViewWEB: TcxGridDBColumn Caption = 'Web' DataBinding.FieldName = 'FACTURA_WEB' diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas index c28ab359..76d16503 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas @@ -62,6 +62,7 @@ type cxGridPendientes: TcxGridLevel; cxGridParcial: TcxGridLevel; cxGridPagadas: TcxGridLevel; + cxGridViewANTICIPADA: TcxGridDBColumn; procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); diff --git a/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas index cedcb8a6..e096a446 100644 --- a/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas +++ b/Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas @@ -121,6 +121,9 @@ end; procedure TfEditorFormaPago.actAnadirExecute(Sender: TObject); begin + if Assigned(FFormaPago) and (FFormaPago.State = dsInsert) then + FController.Guardar(FFormaPago); + FPlazos.Append; end; diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas index 56abbddf..ad717b74 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas @@ -61,7 +61,9 @@ type procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; - function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; overload; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String): Boolean; overload; + function PedidoRecibido(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente; const AEnviarDirectamente: Boolean = True; @@ -146,7 +148,9 @@ type procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; - function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; overload; + function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String): Boolean; overload; + function PedidoRecibido(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente; const AEnviarDirectamente: Boolean = True; @@ -381,6 +385,38 @@ begin end; end; +function TPresupuestosClienteController.CambiarSituacion( + APresupuesto: IBizPresupuestoCliente; Situacion: String): Boolean; + //Solo cambia la situacion del presupuesto seleccionado +begin + if not Assigned(APresupuesto) then + raise Exception.Create ('APresupuesto no asignado'); + + ShowHourglassCursor; + try + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + if (APresupuesto.State in dsEditModes) then + APresupuesto.Cancel; + + //Siempre cambiaremos de situacion el seleccionado + if APresupuesto.SITUACION <> Situacion then + begin + APresupuesto.DataTable.Edit; + APresupuesto.SITUACION := Situacion; + APresupuesto.DataTable.Post; + end; + + APresupuesto.DataTable.ApplyUpdates; + Result := True; + + finally + HideHourglassCursor; + end; + +end; + constructor TPresupuestosClienteController.Create; begin inherited; @@ -1079,6 +1115,58 @@ begin } end; +function TPresupuestosClienteController.PedidoRecibido( + APresupuesto: IBizPresupuestoCliente; AllItems: Boolean): Boolean; +//En el caso de cambiar al menos un presupuesto devuelve true +begin + Result := false; + + if not Assigned(APresupuesto) then + raise Exception.Create ('APresupuesto no asignado'); + + ShowHourglassCursor; + try + if not APresupuesto.DataTable.Active then + APresupuesto.DataTable.Active := True; + + if (APresupuesto.State in dsEditModes) then + APresupuesto.Cancel; + + //Siempre cambiaremos de situacion el seleccionado + if APresupuesto.SIN_PEDIDO > 0 then + begin + APresupuesto.DataTable.Edit; + APresupuesto.SIN_PEDIDO := 0; + APresupuesto.DataTable.Post; + Result := true + end; + + //En el caso de querer eliminar todos los items del objeto APresupuesto + if AllItems then + begin + with APresupuesto.DataTable do + begin + First; + while not EOF do + begin + if APresupuesto.SIN_PEDIDO > 0 then + begin + APresupuesto.DataTable.Edit; + APresupuesto.SIN_PEDIDO := 0; + APresupuesto.DataTable.Post; + Result := true; + end; + Next; + end; + end; + end; + + APresupuesto.DataTable.ApplyUpdates; + finally + HideHourglassCursor; + end; +end; + procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false; Const AVerSello: Integer = 1); var AReportController : IPresupuestosClienteReportController; diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index 014e5c4b..7179620a 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -246,6 +246,10 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente item Name = 'PRESUPUESTO_WEB' DataType = datSmallInt + end + item + Name = 'SIN_PEDIDO' + DataType = datSmallInt end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas index 8f5ef670..10e50f9e 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -9,9 +9,9 @@ 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_ListaAnosPresupuestos = '{57F229C4-0E25-4B14-9EF2-FDDD99E71C84}'; - RID_PresupuestosCliente = '{59171E8B-CE19-4D89-B535-C89A0CF3A7A8}'; - RID_PresupuestosCliente_Detalles = '{DEBB6BD7-53C4-423A-A7BC-7EDB8FE1E85B}'; + RID_ListaAnosPresupuestos = '{4CFB1796-BDFD-43C6-AE2B-B751A8B4F255}'; + RID_PresupuestosCliente = '{BD0FBC36-0736-4EE2-892E-F861F1C5FF2C}'; + RID_PresupuestosCliente_Detalles = '{2381DA76-3CDB-4826-BEBA-8064B4EB7A98}'; { Data table names } nme_ListaAnosPresupuestos = 'ListaAnosPresupuestos'; @@ -61,6 +61,7 @@ const fld_PresupuestosClienteCERTIFICADO_ISO = 'CERTIFICADO_ISO'; fld_PresupuestosClienteNUM_FACTURA = 'NUM_FACTURA'; fld_PresupuestosClientePRESUPUESTO_WEB = 'PRESUPUESTO_WEB'; + fld_PresupuestosClienteSIN_PEDIDO = 'SIN_PEDIDO'; { PresupuestosCliente field indexes } idx_PresupuestosClienteID = 0; @@ -99,6 +100,7 @@ const idx_PresupuestosClienteCERTIFICADO_ISO = 33; idx_PresupuestosClienteNUM_FACTURA = 34; idx_PresupuestosClientePRESUPUESTO_WEB = 35; + idx_PresupuestosClienteSIN_PEDIDO = 36; { PresupuestosCliente_Detalles fields } fld_PresupuestosCliente_DetallesID = 'ID'; @@ -137,7 +139,7 @@ const type { IListaAnosPresupuestos } IListaAnosPresupuestos = interface(IDAStronglyTypedDataTable) - ['{8205902D-1C1B-4481-8FA3-990C69B260CA}'] + ['{ADC742B8-CD7D-4E50-82DB-3DBFE70E49FD}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -172,7 +174,7 @@ type { IPresupuestosCliente } IPresupuestosCliente = interface(IDAStronglyTypedDataTable) - ['{80C8000B-8736-4612-B2A2-0D4B0EFD5401}'] + ['{84ED34FA-3A9A-4299-A2F9-C5E4C9758F8B}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -314,6 +316,10 @@ type procedure SetPRESUPUESTO_WEBValue(const aValue: SmallInt); function GetPRESUPUESTO_WEBIsNull: Boolean; procedure SetPRESUPUESTO_WEBIsNull(const aValue: Boolean); + function GetSIN_PEDIDOValue: SmallInt; + procedure SetSIN_PEDIDOValue(const aValue: SmallInt); + function GetSIN_PEDIDOIsNull: Boolean; + procedure SetSIN_PEDIDOIsNull(const aValue: Boolean); { Properties } @@ -389,6 +395,8 @@ type property NUM_FACTURAIsNull: Boolean read GetNUM_FACTURAIsNull write SetNUM_FACTURAIsNull; property PRESUPUESTO_WEB: SmallInt read GetPRESUPUESTO_WEBValue write SetPRESUPUESTO_WEBValue; property PRESUPUESTO_WEBIsNull: Boolean read GetPRESUPUESTO_WEBIsNull write SetPRESUPUESTO_WEBIsNull; + property SIN_PEDIDO: SmallInt read GetSIN_PEDIDOValue write SetSIN_PEDIDOValue; + property SIN_PEDIDOIsNull: Boolean read GetSIN_PEDIDOIsNull write SetSIN_PEDIDOIsNull; end; { TPresupuestosClienteDataTableRules } @@ -544,6 +552,10 @@ type procedure SetPRESUPUESTO_WEBValue(const aValue: SmallInt); virtual; function GetPRESUPUESTO_WEBIsNull: Boolean; virtual; procedure SetPRESUPUESTO_WEBIsNull(const aValue: Boolean); virtual; + function GetSIN_PEDIDOValue: SmallInt; virtual; + procedure SetSIN_PEDIDOValue(const aValue: SmallInt); virtual; + function GetSIN_PEDIDOIsNull: Boolean; virtual; + procedure SetSIN_PEDIDOIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -618,6 +630,8 @@ type property NUM_FACTURAIsNull: Boolean read GetNUM_FACTURAIsNull write SetNUM_FACTURAIsNull; property PRESUPUESTO_WEB: SmallInt read GetPRESUPUESTO_WEBValue write SetPRESUPUESTO_WEBValue; property PRESUPUESTO_WEBIsNull: Boolean read GetPRESUPUESTO_WEBIsNull write SetPRESUPUESTO_WEBIsNull; + property SIN_PEDIDO: SmallInt read GetSIN_PEDIDOValue write SetSIN_PEDIDOValue; + property SIN_PEDIDOIsNull: Boolean read GetSIN_PEDIDOIsNull write SetSIN_PEDIDOIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -627,7 +641,7 @@ type { IPresupuestosCliente_Detalles } IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{F117D80D-7B65-4791-8611-ACCF1099A09E}'] + ['{A258EA65-0288-4875-A0B7-EE0C858B7FF7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1654,6 +1668,27 @@ begin DataTable.Fields[idx_PresupuestosClientePRESUPUESTO_WEB].AsVariant := Null; end; +function TPresupuestosClienteDataTableRules.GetSIN_PEDIDOValue: SmallInt; +begin + result := DataTable.Fields[idx_PresupuestosClienteSIN_PEDIDO].AsSmallInt; +end; + +procedure TPresupuestosClienteDataTableRules.SetSIN_PEDIDOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_PresupuestosClienteSIN_PEDIDO].AsSmallInt := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetSIN_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClienteSIN_PEDIDO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetSIN_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClienteSIN_PEDIDO].AsVariant := Null; +end; + { TPresupuestosCliente_DetallesDataTableRules } constructor TPresupuestosCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas index bcdd5613..91b12b6c 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -9,14 +9,14 @@ 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_ListaAnosPresupuestosDelta = '{C0D3D85C-14FE-4640-ABB5-AFFA1E455AB5}'; - RID_PresupuestosClienteDelta = '{DBAC9306-FDD2-4E1C-8E32-1AD77204437E}'; - RID_PresupuestosCliente_DetallesDelta = '{5C3B3F44-DBFB-471E-B345-BCD2673FED43}'; + RID_ListaAnosPresupuestosDelta = '{2412538C-013F-4AAB-96F0-980B873F50C5}'; + RID_PresupuestosClienteDelta = '{5310863C-EAE6-4F47-A8CE-BB25CD1ECDF7}'; + RID_PresupuestosCliente_DetallesDelta = '{2A18B37C-F170-4EFD-8EC9-42258636D47D}'; type { IListaAnosPresupuestosDelta } IListaAnosPresupuestosDelta = interface(IListaAnosPresupuestos) - ['{C0D3D85C-14FE-4640-ABB5-AFFA1E455AB5}'] + ['{2412538C-013F-4AAB-96F0-980B873F50C5}'] { Property getters and setters } function GetOldANOValue : String; @@ -50,7 +50,7 @@ type { IPresupuestosClienteDelta } IPresupuestosClienteDelta = interface(IPresupuestosCliente) - ['{DBAC9306-FDD2-4E1C-8E32-1AD77204437E}'] + ['{5310863C-EAE6-4F47-A8CE-BB25CD1ECDF7}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -88,6 +88,7 @@ type function GetOldCERTIFICADO_ISOValue : SmallInt; function GetOldNUM_FACTURAValue : String; function GetOldPRESUPUESTO_WEBValue : SmallInt; + function GetOldSIN_PEDIDOValue : SmallInt; { Properties } property OldID : Integer read GetOldIDValue; @@ -126,6 +127,7 @@ type property OldCERTIFICADO_ISO : SmallInt read GetOldCERTIFICADO_ISOValue; property OldNUM_FACTURA : String read GetOldNUM_FACTURAValue; property OldPRESUPUESTO_WEB : SmallInt read GetOldPRESUPUESTO_WEBValue; + property OldSIN_PEDIDO : SmallInt read GetOldSIN_PEDIDOValue; end; { TPresupuestosClienteBusinessProcessorRules } @@ -353,6 +355,12 @@ type function GetOldPRESUPUESTO_WEBIsNull: Boolean; virtual; procedure SetPRESUPUESTO_WEBValue(const aValue: SmallInt); virtual; procedure SetPRESUPUESTO_WEBIsNull(const aValue: Boolean); virtual; + function GetSIN_PEDIDOValue: SmallInt; virtual; + function GetSIN_PEDIDOIsNull: Boolean; virtual; + function GetOldSIN_PEDIDOValue: SmallInt; virtual; + function GetOldSIN_PEDIDOIsNull: Boolean; virtual; + procedure SetSIN_PEDIDOValue(const aValue: SmallInt); virtual; + procedure SetSIN_PEDIDOIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -499,6 +507,10 @@ type property PRESUPUESTO_WEBIsNull : Boolean read GetPRESUPUESTO_WEBIsNull write SetPRESUPUESTO_WEBIsNull; property OldPRESUPUESTO_WEB : SmallInt read GetOldPRESUPUESTO_WEBValue; property OldPRESUPUESTO_WEBIsNull : Boolean read GetOldPRESUPUESTO_WEBIsNull; + property SIN_PEDIDO : SmallInt read GetSIN_PEDIDOValue write SetSIN_PEDIDOValue; + property SIN_PEDIDOIsNull : Boolean read GetSIN_PEDIDOIsNull write SetSIN_PEDIDOIsNull; + property OldSIN_PEDIDO : SmallInt read GetOldSIN_PEDIDOValue; + property OldSIN_PEDIDOIsNull : Boolean read GetOldSIN_PEDIDOIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -508,7 +520,7 @@ type { IPresupuestosCliente_DetallesDelta } IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) - ['{5C3B3F44-DBFB-471E-B345-BCD2673FED43}'] + ['{2A18B37C-F170-4EFD-8EC9-42258636D47D}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PRESUPUESTOValue : Integer; @@ -1909,6 +1921,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePRESUPUESTO_WEB] := Null; end; +function TPresupuestosClienteBusinessProcessorRules.GetSIN_PEDIDOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSIN_PEDIDO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetSIN_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSIN_PEDIDO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldSIN_PEDIDOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteSIN_PEDIDO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldSIN_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClienteSIN_PEDIDO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetSIN_PEDIDOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSIN_PEDIDO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetSIN_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteSIN_PEDIDO] := Null; +end; + { TPresupuestosCliente_DetallesBusinessProcessorRules } constructor TPresupuestosCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas index 0871730e..223bcd29 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas @@ -13,6 +13,8 @@ const SITUACION_PRESUPUESTO_PENDIENTE = 'PENDIENTE'; SITUACION_PRESUPUESTO_ACEPTADO = 'ACEPTADO'; SITUACION_PRESUPUESTO_ANULADO = 'ANULADO'; + SITUACION_PRESUPUESTO_PARCIAL = 'PARCIALMENTE FACTURADO'; + SITUACION_PRESUPUESTO_TOTAL = 'FACTURADO'; type IBizPresupuestoCliente = interface(IPresupuestosCliente) @@ -206,6 +208,7 @@ begin INCIDENCIAS_ACTIVAS := 0; CERTIFICADO_ISO := 1; PRESUPUESTO_WEB := 0; + SIN_PEDIDO := 1; // INCIDENCIAS := NIL; REFERENCIA := ''; SITUACION := SITUACION_PRESUPUESTO_PENDIENTE; diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 4de33a21..4cc57c21 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -190,6 +190,10 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente item DatasetField = 'PRESUPUESTO_WEB' TableField = 'PRESUPUESTO_WEB' + end + item + DatasetField = 'SIN_PEDIDO' + TableField = 'SIN_PEDIDO' end> end> Name = 'PresupuestosCliente' @@ -384,6 +388,10 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente item Name = 'PRESUPUESTO_WEB' DataType = datSmallInt + end + item + Name = 'SIN_PEDIDO' + DataType = datSmallInt end> end item @@ -728,6 +736,11 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente Name = 'PRESUPUESTO_WEB' DataType = datSmallInt Value = '' + end + item + Name = 'SIN_PEDIDO' + DataType = datSmallInt + Value = '' end> Statements = < item @@ -743,16 +756,16 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente 'E_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE, IVA' + ', IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO,'#10' PERSONA_CONTAC' + 'TO, DESCRIPCION_BONIFICACION, IMPORTE_BONIFICACION, CERTIFICADO_' + - 'ISO,'#10' PRESUPUESTO_WEB)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :FECH' + - 'A_PRESUPUESTO, :FECHA_DECISION, :REFERENCIA,'#10' :REFERENCIA_AU' + - 'X, :SITUACION, :ID_CLIENTE, :ID_DIRECCION, :REFERENCIA_CLIENTE,'#10 + - ' :CLIENTE_FINAL, :PORTADA, :MEMORIA, :OBSERVACIONES, '#10' :' + - 'INCIDENCIAS, :INCIDENCIAS_ACTIVAS, CURRENT_TIMESTAMP,'#10' :USUA' + - 'RIO, :IMPORTE_NETO, :IMPORTE_PORTE, :DESCUENTO, '#10' :IMPORTE_D' + - 'ESCUENTO, :BASE_IMPONIBLE, :IVA, :IMPORTE_IVA, '#10' :IMPORTE_TO' + - 'TAL, :ID_FORMA_PAGO, :PERSONA_CONTACTO,'#10' :DESCRIPCION_BONIFI' + - 'CACION, :IMPORTE_BONIFICACION, :CERTIFICADO_ISO, :PRESUPUESTO_WE' + - 'B)'#10 + 'ISO,'#10' PRESUPUESTO_WEB, SIN_PEDIDO)'#10' VALUES'#10' (:ID, :ID_EM' + + 'PRESA, :FECHA_PRESUPUESTO, :FECHA_DECISION, :REFERENCIA,'#10' :R' + + 'EFERENCIA_AUX, :SITUACION, :ID_CLIENTE, :ID_DIRECCION, :REFERENC' + + 'IA_CLIENTE,'#10' :CLIENTE_FINAL, :PORTADA, :MEMORIA, :OBSERVACIO' + + 'NES, '#10' :INCIDENCIAS, :INCIDENCIAS_ACTIVAS, CURRENT_TIMESTAMP' + + ','#10' :USUARIO, :IMPORTE_NETO, :IMPORTE_PORTE, :DESCUENTO, '#10' ' + + ' :IMPORTE_DESCUENTO, :BASE_IMPONIBLE, :IVA, :IMPORTE_IVA, '#10' ' + + ' :IMPORTE_TOTAL, :ID_FORMA_PAGO, :PERSONA_CONTACTO,'#10' :DESCRI' + + 'PCION_BONIFICACION, :IMPORTE_BONIFICACION, :CERTIFICADO_ISO, :PR' + + 'ESUPUESTO_WEB,'#10' :SIN_PEDIDO)'#10 StatementType = stSQL ColumnMappings = <> end> @@ -943,6 +956,11 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente DataType = datSmallInt Value = '' end + item + Name = 'SIN_PEDIDO' + DataType = datSmallInt + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -971,7 +989,8 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente 'PERSONA_CONTACTO = :PERSONA_CONTACTO,'#10' DESCRIPCION_BONIFICACI' + 'ON = :DESCRIPCION_BONIFICACION,'#10' IMPORTE_BONIFICACION = :IMPO' + 'RTE_BONIFICACION,'#10' CERTIFICADO_ISO = :CERTIFICADO_ISO,'#10' PR' + - 'ESUPUESTO_WEB = :PRESUPUESTO_WEB'#10' WHERE'#10' (ID = :OLD_ID)'#10 + 'ESUPUESTO_WEB = :PRESUPUESTO_WEB,'#10' SIN_PEDIDO = :SIN_PEDIDO'#10' ' + + ' WHERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm index 1c15c08c..929429bf 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -205,9 +205,9 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitHeight = 338 inherited ToolBar1: TToolBar Width = 750 - Height = 46 + Height = 78 ExplicitWidth = 750 - ExplicitHeight = 46 + ExplicitHeight = 78 inherited ToolButton3: TToolButton Wrap = False end @@ -220,88 +220,95 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited ToolButton14: TToolButton Left = 334 Top = 0 + Wrap = False ExplicitLeft = 334 ExplicitTop = 0 end inherited FontName: TJvFontComboBox - Top = 22 - ExplicitTop = 22 + Left = 399 + Top = 0 + ExplicitLeft = 399 + ExplicitTop = 0 end - inherited FontSize: TEdit - Top = 22 + inherited ToolButton13: TToolButton [6] + Left = 0 + Top = 0 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitHeight = 27 + end + inherited FontSize: TEdit [7] + Left = 0 + Top = 27 Width = 200 - ExplicitTop = 22 + ExplicitLeft = 0 + ExplicitTop = 27 ExplicitWidth = 200 end - inherited UpDown1: TUpDown - Left = 345 - Top = 22 - ExplicitLeft = 345 - ExplicitTop = 22 - end - inherited ToolButton13: TToolButton - Left = 362 - Top = 22 - ExplicitLeft = 362 - ExplicitTop = 22 + inherited UpDown1: TUpDown [8] + Left = 200 + Top = 27 + ExplicitLeft = 200 + ExplicitTop = 27 end inherited ToolButton6: TToolButton - Left = 370 - Top = 22 - ExplicitLeft = 370 - ExplicitTop = 22 + Left = 217 + Top = 27 + ExplicitLeft = 217 + ExplicitTop = 27 end inherited ToolButton7: TToolButton - Left = 436 - Top = 22 - ExplicitLeft = 436 - ExplicitTop = 22 + Left = 283 + Top = 27 + ExplicitLeft = 283 + ExplicitTop = 27 end inherited ToolButton8: TToolButton - Left = 503 - Top = 22 - ExplicitLeft = 503 - ExplicitTop = 22 + Left = 350 + Top = 27 + ExplicitLeft = 350 + ExplicitTop = 27 end inherited ToolButton12: TToolButton Left = 0 - Top = 22 + Top = 27 Wrap = True ExplicitLeft = 0 - ExplicitTop = 22 + ExplicitTop = 27 ExplicitHeight = 27 end inherited ToolButton9: TToolButton Left = 0 - Top = 49 + Top = 54 ExplicitLeft = 0 - ExplicitTop = 49 + ExplicitTop = 54 end inherited ToolButton10: TToolButton Left = 145 - Top = 49 + Top = 54 ExplicitLeft = 145 - ExplicitTop = 49 + ExplicitTop = 54 end inherited ToolButton11: TToolButton Left = 270 - Top = 49 + Top = 54 ExplicitLeft = 270 - ExplicitTop = 49 + ExplicitTop = 54 end end inherited cxGrid: TcxGrid - Top = 99 + Top = 104 Width = 750 - Height = 239 - ExplicitTop = 77 + Height = 234 + ExplicitTop = 104 ExplicitWidth = 750 - ExplicitHeight = 239 + ExplicitHeight = 234 end inherited TBXDock1: TTBXDock - Top = 73 + Top = 78 Width = 750 - ExplicitTop = 46 + ExplicitTop = 78 ExplicitWidth = 750 inherited TBXToolbar1: TTBXToolbar ExplicitWidth = 750 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm index 7af47009..c234948d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm @@ -2,7 +2,6 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente Caption = 'Lista de presupuestos de cliente' ClientWidth = 805 ExplicitWidth = 813 - ExplicitHeight = 240 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader @@ -177,6 +176,10 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente Action = actAnular DisplayMode = nbdmImageAndText end + object TBXItem49: TTBXItem + Action = actPedidoRecibido + DisplayMode = nbdmImageAndText + end object TBXSeparatorItem18: TTBXSeparatorItem end object TBXItem42: TTBXItem @@ -264,6 +267,13 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente ImageIndex = 24 OnExecute = actVerFacturasRelacionadasExecute end + object actPedidoRecibido: TAction + Category = 'Acciones' + Caption = 'Pedido recibido' + ImageIndex = 29 + OnExecute = actPedidoRecibidoExecute + OnUpdate = actPedidoRecibidoUpdate + end end inherited SmallImages: TPngImageList PngImages = < @@ -995,6 +1005,108 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente 0049454E44AE426082} Name = 'PngImage28' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001764944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A80CB7E5B14C57B1C0F836964F1CD56FB18E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C07283ED0C2BB71CC16D00CCD920F00F + 28F7E7CF3FB8CD2167DC1816EB6C6558BBE3187E03602ED9667380C1EB8803DC + E6C80B9E0CF33436316CDA7312BF01309B3FDF3ECCF072712C3E1FB96018B0CB + E11083DB013BB0ECA45D0F18941B6A18D8D9D33174FEFC3993615E620B038601 + 2067C3FCFCAC4D8D41ABFD3158311CFCF801C4DF1966EF326060DE9E8A302023 + CA8DC1E3903D8A2D2017A01800D2FCE11DC480534EA806248739836D85857AF4 + 252F5403609AC106FC64987D2B08D580B8200794284BB8E68B30E0E34484E60F + 1F202E7895826A40949F1D5C33DCA0194610031ED62334C3BCF0AB0CD580502F + 6B86D5DB8EA28481D3B554702CCC5E258F350E510C00250C74A0CDFB86C18AF5 + 38CE44602FCFE00200175B62A961F8A2FD0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow end> Bitmap = {} end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas index cffb347d..441055d1 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -49,6 +49,8 @@ type actVerFacturasRelacionadas: TAction; TBXSeparatorItem19: TTBXSeparatorItem; TBXItem48: TTBXItem; + actPedidoRecibido: TAction; + TBXItem49: TTBXItem; procedure FormShow(Sender: TObject); procedure actGenerarAlbaranCliExecute(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); @@ -67,6 +69,8 @@ type procedure actInformesExecute(Sender: TObject); procedure OnListaAnosChange(Sender: TObject; const Text: string); procedure actVerFacturasRelacionadasExecute(Sender: TObject); + procedure actPedidoRecibidoExecute(Sender: TObject); + procedure actPedidoRecibidoUpdate(Sender: TObject); protected FPresupuestos: IBizPresupuestoCliente; @@ -339,11 +343,21 @@ begin inherited; if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos del presupuesto %s a la factura?', [Presupuestos.REFERENCIA])) = IDYES) then - GenerarFacturaCliPre(Presupuestos.ID) + begin + if GenerarFacturaCliPre(Presupuestos.ID) then + begin + FController.CambiarSituacion(Presupuestos, SITUACION_PRESUPUESTO_TOTAL); + actRefrescar.Execute; + end; + end else - GenerarFacturaCliPre(Presupuestos.ID, False); - - actRefrescar.Execute; + begin + if GenerarFacturaCliPre(Presupuestos.ID, False) then + begin + FController.CambiarSituacion(Presupuestos, SITUACION_PRESUPUESTO_TOTAL); + actRefrescar.Execute; + end; + end; end; procedure TfEditorPresupuestosCliente.actGenerarFacturaUpdate(Sender: TObject); @@ -387,6 +401,43 @@ begin end; end; +procedure TfEditorPresupuestosCliente.actPedidoRecibidoExecute(Sender: TObject); +var + APresupuestos: IBizPresupuestoCliente; + AllItems: Boolean; + AFecha: Variant; +begin + APresupuestos := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords); + APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente; + end + else begin + APresupuestos := Presupuestos; + end; + + ViewGrid._Grid.BeginUpdate; + if Assigned(APresupuestos) then + begin + if FController.PedidoRecibido(APresupuestos, AllItems) then + actRefrescar.Execute; + end; + ViewGrid._Grid.EndUpdate; +end; + +procedure TfEditorPresupuestosCliente.actPedidoRecibidoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and ViewGrid.esSeleccionCeldaDatos +end; + procedure TfEditorPresupuestosCliente.actVerFacturasRelacionadasExecute( Sender: TObject); begin diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm index 83311df6..8d754474 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm @@ -52,7 +52,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 5 + TabOrder = 6 Width = 260 end object memObservaciones: TcxDBMemo @@ -77,7 +77,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 10 + TabOrder = 11 Height = 217 Width = 507 end @@ -142,7 +142,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 8 + TabOrder = 9 Width = 122 end object bFormasPago: TButton @@ -151,7 +151,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Width = 132 Height = 21 Caption = 'Ver las formas de pago...' - TabOrder = 9 + TabOrder = 10 OnClick = bFormasPagoClick end object edtFechaDecision: TcxDBDateEdit @@ -177,7 +177,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 6 + TabOrder = 7 Width = 260 end object eRefCliente: TcxDBTextEdit @@ -234,7 +234,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 12 + TabOrder = 13 Width = 350 end object cbSituacion: TcxDBImageComboBox @@ -255,6 +255,14 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente item Description = 'ANULADO' Value = 'ANULADO' + end + item + Description = 'PARCIALMENTE FACTURADO' + Value = 'PARCIALMENTE FACTURADO' + end + item + Description = 'FACTURADO' + Value = 'FACTURADO' end> Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D @@ -268,7 +276,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 7 + TabOrder = 8 Width = 260 end object eReferenciaAux: TcxDBTextEdit @@ -311,7 +319,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 11 + TabOrder = 12 ReadOnly = False ExplicitLeft = 480 ExplicitTop = 28 @@ -368,7 +376,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Width = 23 Height = 25 Action = actElegirClienteFinal - TabOrder = 13 + TabOrder = 14 end object eCertificadoISO: TcxDBCheckBox Left = 22 @@ -391,11 +399,33 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Width = 110 end object eFacturaWeb: TcxDBCheckBox - Left = 138 + Left = 234 Top = 82 Caption = 'Presupuesto WEB' DataBinding.DataField = 'PRESUPUESTO_WEB' DataBinding.DataSource = DADataSource + Enabled = False + Properties.ImmediatePost = True + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 5 + Transparent = True + Width = 162 + end + object eSinPedido: TcxDBCheckBox + Left = 138 + Top = 82 + Caption = 'Sin pedido' + DataBinding.DataField = 'SIN_PEDIDO' + DataBinding.DataSource = DADataSource Properties.ImmediatePost = True Properties.ValueChecked = 1 Properties.ValueUnchecked = 0 @@ -409,7 +439,7 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente StyleHot.LookAndFeel.NativeStyle = True TabOrder = 4 Transparent = True - Width = 162 + Width = 90 end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False @@ -461,10 +491,17 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Control = eCertificadoISO ControlOptions.ShowBorder = False end + object dxLayoutControl1Item16: TdxLayoutItem + ShowCaption = False + Control = eSinPedido + ControlOptions.ShowBorder = False + end object dxLayoutControl1Item14: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient + Enabled = False ShowCaption = False + Visible = False Control = eFacturaWeb ControlOptions.ShowBorder = False end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas index 8315f90c..50474f1a 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas @@ -72,6 +72,8 @@ type dxLayoutControl1Item14: TdxLayoutItem; eFacturaWeb: TcxDBCheckBox; dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item16: TdxLayoutItem; + eSinPedido: TcxDBCheckBox; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm index 6ad43480..9d87f893 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm @@ -54,6 +54,23 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente Visible = False VisibleForCustomization = False end + object cxGridViewSIN_PEDIDO: TcxGridDBColumn + Caption = 'Pedido' + DataBinding.FieldName = 'SIN_PEDIDO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = GridPNGImageList + Properties.Items = < + item + Description = 'Sin pedido' + ImageIndex = 3 + Value = 1 + end + item + Description = 'Con pedido' + Tag = 1 + Value = 0 + end> + end object cxGridViewPRESUPUESTO_WEB: TcxGridDBColumn Caption = 'Web' DataBinding.FieldName = 'PRESUPUESTO_WEB' @@ -70,7 +87,9 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente Value = 1 end> Properties.ShowDescriptions = False + Visible = False BestFitMaxWidth = 40 + VisibleForCustomization = False Width = 40 end object cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn @@ -172,12 +191,18 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente object cxGridLevelPendientes: TcxGridLevel Caption = 'Pendientes' end - object cxGridLevelEnProceso: TcxGridLevel + object cxGridLevelAceptados: TcxGridLevel Caption = 'Aceptados' end - object cxGridLevelServidor: TcxGridLevel + object cxGridLevelAnulados: TcxGridLevel Caption = 'Anulados' end + object cxGridLevelParciales: TcxGridLevel + Caption = 'Parcialmente facturados' + end + object cxGridLevelTotales: TcxGridLevel + Caption = 'Facturados' + end end inherited frViewFiltroBase1: TfrViewFiltroBase Width = 903 @@ -312,15 +337,19 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente end object cxStyleACEPTADO: TcxStyle AssignedValues = [svTextColor] - TextColor = clGreen + TextColor = 33023 end object cxStyleRECHAZADO: TcxStyle AssignedValues = [svTextColor] TextColor = clGrayText end - object cxStyleConFacturas: TcxStyle + object cxStyleFACTURADOS: TcxStyle AssignedValues = [svTextColor] - TextColor = 23737 + TextColor = clGreen + end + object cxStylePARCIAL: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBackground end end inherited ActionList1: TActionList diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas index 9f287278..d7336e54 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas @@ -32,8 +32,8 @@ type cxGridViewCLIENTE_FINAL: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; cxGridLevelPendientes: TcxGridLevel; - cxGridLevelEnProceso: TcxGridLevel; - cxGridLevelServidor: TcxGridLevel; + cxGridLevelAceptados: TcxGridLevel; + cxGridLevelAnulados: TcxGridLevel; cxStylePENDIENTES: TcxStyle; cxStyleACEPTADO: TcxStyle; actCliente: TAction; @@ -48,8 +48,12 @@ type cxStyleRECHAZADO: TcxStyle; cxGridViewCERTIFICADO_ISO: TcxGridDBColumn; cxGridViewNUM_FACTURAS: TcxGridDBColumn; - cxStyleConFacturas: TcxStyle; cxGridViewPRESUPUESTO_WEB: TcxGridDBColumn; + cxGridViewSIN_PEDIDO: TcxGridDBColumn; + cxGridLevelParciales: TcxGridLevel; + cxGridLevelTotales: TcxGridLevel; + cxStyleFACTURADOS: TcxStyle; + cxStylePARCIAL: TcxStyle; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; @@ -228,6 +232,8 @@ begin 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_PENDIENTE, SITUACION_PRESUPUESTO_PENDIENTE); 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_ACEPTADO, SITUACION_PRESUPUESTO_ACEPTADO); 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_ANULADO, SITUACION_PRESUPUESTO_ANULADO); + 4 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_PARCIAL, SITUACION_PRESUPUESTO_PARCIAL); + 5 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PRESUPUESTO_TOTAL, SITUACION_PRESUPUESTO_TOTAL); end; end; @@ -338,16 +344,20 @@ begin if ASituacion = SITUACION_PRESUPUESTO_PENDIENTE then AStyle.TextColor := cxStylePENDIENTES.TextColor else if ASituacion = SITUACION_PRESUPUESTO_ACEPTADO then - begin - AStyle.TextColor := cxStyleACEPTADO.TextColor; + AStyle.TextColor := cxStyleACEPTADO.TextColor + else if ASituacion = SITUACION_PRESUPUESTO_TOTAL then + AStyle.TextColor := cxStyleFACTURADOS.TextColor + else if ASituacion = SITUACION_PRESUPUESTO_PARCIAL then + AStyle.TextColor := cxStylePARCIAL.TextColor + else if ASituacion = SITUACION_PRESUPUESTO_ANULADO then + AStyle.TextColor := cxStyleRECHAZADO.TextColor; + //Si está aceptado y no facturado que resalte - IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosClienteNUM_FACTURA).Index; +{ IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosClienteNUM_FACTURA).Index; AFacturas := VarToStr(ARecord.DisplayTexts[IndiceCol]); if EsCadenaVacia(AFacturas) then AStyle.TextColor := cxStyleConFacturas.TextColor; - end - else if ASituacion = SITUACION_PRESUPUESTO_ANULADO then - AStyle.TextColor := cxStyleRECHAZADO.TextColor; +} end; end; diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 70400aa353d119bb9e63a72821d7e671faca36d6..b396db8b01bb4c8147d97ec9526864eba252af1f 100644 GIT binary patch delta 153 zcmdn9jd9I3#tnBO7!4-hjgSYDe?`30!XF+`3gXh pRE7ee`b;35%a8X_lb=Sp0{~S}BhLT; diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index fd57bfe3..f4dab56b 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -126,17 +126,17 @@ uses schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas', schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas', - schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', - schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', - schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', - schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', uRTFUtils in '..\Base\Utiles\uRTFUtils.pas', schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas', schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas', schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas', - schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas'; + schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', + schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', + schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index cbdecfff..db0ef70a 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -35,7 +35,7 @@ Delphi.Personality - FalseTrueFalse/standaloneTrueFalse2400FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.4.0.0FactuGES Servidor2.4.0.0viernes, 03 de septiembre de 2021 19:33 + FalseTrueFalse/standaloneTrueFalse2510FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.1.0FactuGES Servidor2.5.1.0martes, 10 de mayo de 2022 11:18 ExpressPrinting System by Developer Express Inc. FactuGES_Server.dpr diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index 61d1d412..65db864e 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo tecsitel\Resources\Iconos\Servidor.ico" 1 VERSIONINFO -FILEVERSION 2,4,0,0 -PRODUCTVERSION 2,4,0,0 +FILEVERSION 2,5,1,0 +PRODUCTVERSION 2,5,1,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.4.0.0\0" + VALUE "FileVersion", "2.5.1.0\0" VALUE "ProductName", "FactuGES Servidor\0" - VALUE "ProductVersion", "2.4.0.0\0" - VALUE "CompileDate", "miércoles, 08 de septiembre de 2021 18:46\0" + VALUE "ProductVersion", "2.5.1.0\0" + VALUE "CompileDate", "jueves, 23 de junio de 2022 12:10\0" END END BLOCK "VarFileInfo"