diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index c37c7b8..358f7fa 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -52,7 +52,8 @@
Delphi.Personality
VCLApplication
-FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2330FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.3.0FactuGES v2FactuGES v22.3.3.0
+FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2340FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.4.0FactuGES v2FactuGES v22.3.4.0
+
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES.dprFalse
diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj
index 620ec4e..84e7139 100644
--- a/Source/GUIBase/GUIBase.dproj
+++ b/Source/GUIBase/GUIBase.dproj
@@ -58,34 +58,34 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
index 7362c63..2b6851c 100644
--- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
+++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
@@ -55,6 +55,7 @@ type
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
function CambiarSituacion(AFactura : IBizFacturaCliente; AllItems: Boolean = false; ASituacion: String = CTE_PENDIENTE; AListaCausas: TStringList = nil): Boolean;
function AsignarLOPD(AFacturas: IBizFacturaCliente): Boolean;
+ function enviarVerifactu(AFactura: IBizFacturaCliente; AllItems: Boolean = false; AListaCausas: TStringList = nil): Boolean;
end;
TFacturasClienteController = class(TControllerBase, IFacturasClienteController)
@@ -126,6 +127,7 @@ type
function CambiarSituacion(AFactura : IBizFacturaCliente; AllItems: Boolean = false; ASituacion: String = CTE_PENDIENTE; AListaCausas: TStringList = nil): Boolean;
function AsignarLOPD(AFacturas: IBizFacturaCliente): Boolean;
+ function enviarVerifactu(AFactura: IBizFacturaCliente; AllItems: Boolean = false; AListaCausas: TStringList = nil): Boolean;
end;
implementation
@@ -1048,6 +1050,72 @@ begin
end;
end;
+function TFacturasClienteController.enviarVerifactu(AFactura: IBizFacturaCliente; AllItems: Boolean; AListaCausas: TStringList): Boolean;
+//Solo devolverá true en el caso de eliminar todos y cada uno de los elementos a eliminar
+var
+ bModificado: Boolean;
+ ACausa: Variant;
+
+begin
+ bModificado := True;
+
+ if not Assigned(AFactura) then
+ raise Exception.Create ('Factura no asignada');
+
+ ShowHourglassCursor;
+ try
+ if not AFactura.DataTable.Active then
+ AFactura.DataTable.Active := True;
+
+ if (AFactura.State in dsEditModes) then
+ AFactura.Cancel;
+
+ //Siempre modificaremos el seleccionado tanto si es una lista de facturas a eliminar como si es la propia lista del editor.
+ if AFactura.VERIFACTU = 0 then
+ begin
+ if not AFactura.DataTable.Editing then
+ AFactura.DataTable.Edit;
+
+ AFactura.VERIFACTU := 1;
+ AFactura.DataTable.Post;
+ end;
+ //En el caso de querer modificar todos los items del objeto AFactura
+ if AllItems then
+ begin
+ with AFactura.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ if AFactura.VERIFACTU = 1 then
+ begin
+ bModificado := False;
+ Next;
+ end
+ else
+ begin
+ if not AFactura.DataTable.Editing then
+ AFactura.DataTable.Edit;
+
+ AFactura.VERIFACTU := 1;
+ AFactura.DataTable.Post;
+ end;
+ end;
+ end;
+ end;
+
+ try
+ AFactura.DataTable.ApplyUpdates;
+ Result := bModificado;
+ except
+ Result := False;
+ end;
+
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
function TFacturasClienteController.EsEliminable(AFactura: IBizFacturaCliente; var AComentario: Variant): Boolean;
begin
Result := True;
@@ -1055,7 +1123,12 @@ begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignado: EsEliminable');
- if (AFactura.SITUACION <> CTE_PENDIENTE) then
+ if (AFactura.VERIFACTU = 1) then
+ begin
+ Result := False;
+ AComentario := 'La factura se ha mandado a VERIFACTU, por lo que no puede ser eliminada';
+ end
+ else if (AFactura.SITUACION <> CTE_PENDIENTE) then
begin
Result := False;
AComentario := 'La factura esta parcial o totalmente pagada, por lo que no puede ser eliminada';
@@ -1080,8 +1153,12 @@ begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignado: EsModificable');
-
- if (AFactura.SITUACION <> CTE_PENDIENTE) then
+ if (AFactura.VERIFACTU = 1) then
+ begin
+ Result := False;
+ AComentario := 'La factura se ha mandado a VERIFACTU, por lo que no puede ser eliminada';
+ end
+ else if (AFactura.SITUACION <> CTE_PENDIENTE) then
begin
if (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR)
or (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA) then
diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
index c8d7db7..7a72d43 100644
--- a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
@@ -344,6 +344,10 @@ inherited DataModuleFacturasCliente: TDataModuleFacturasCliente
Name = 'PROCEDENCIA_CLIENTE'
DataType = datString
Size = 255
+ end
+ item
+ Name = 'VERIFACTU'
+ 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 2c6dcbb..9d6bf02 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 = '{C20CF57F-5920-416F-9249-367A4691A064}';
- RID_FacturasCliente = '{C27622E4-449D-4D51-A938-F95AFFB07A9F}';
- RID_FacturasCliente_Detalles = '{0DB3EB96-08FF-4251-A5E1-82746147F81E}';
+ RID_ListaAnosFacturas = '{EC351ED2-7BF8-494B-9B7C-495108F936A7}';
+ RID_FacturasCliente = '{84BEF764-5EF2-4622-8D10-17FFE87C28E2}';
+ RID_FacturasCliente_Detalles = '{B354C63E-51A8-4BB6-A70A-334BF9907B9C}';
{ Data table names }
nme_ListaAnosFacturas = 'ListaAnosFacturas';
@@ -80,6 +80,7 @@ const
fld_FacturasClienteTIPO_FACTURA = 'TIPO_FACTURA';
fld_FacturasClienteLISTA_NOMBRES = 'LISTA_NOMBRES';
fld_FacturasClientePROCEDENCIA_CLIENTE = 'PROCEDENCIA_CLIENTE';
+ fld_FacturasClienteVERIFACTU = 'VERIFACTU';
{ FacturasCliente field indexes }
idx_FacturasClienteID = 0;
@@ -137,6 +138,7 @@ const
idx_FacturasClienteTIPO_FACTURA = 52;
idx_FacturasClienteLISTA_NOMBRES = 53;
idx_FacturasClientePROCEDENCIA_CLIENTE = 54;
+ idx_FacturasClienteVERIFACTU = 55;
{ FacturasCliente_Detalles fields }
fld_FacturasCliente_DetallesID = 'ID';
@@ -173,7 +175,7 @@ const
type
{ IListaAnosFacturas }
IListaAnosFacturas = interface(IDAStronglyTypedDataTable)
- ['{0DFD9CF9-9ACC-4CAB-AAA5-EA74D23016DE}']
+ ['{303CA029-3F55-4813-90D8-0DFD72FD0C16}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
@@ -208,7 +210,7 @@ type
{ IFacturasCliente }
IFacturasCliente = interface(IDAStronglyTypedDataTable)
- ['{08554CA8-CD1B-493A-BEC1-5945282D8408}']
+ ['{A13D1B5E-6AF7-4F09-A95F-C9C49D5AD089}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -429,6 +431,10 @@ type
procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String);
function GetPROCEDENCIA_CLIENTEIsNull: Boolean;
procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean);
+ function GetVERIFACTUValue: SmallInt;
+ procedure SetVERIFACTUValue(const aValue: SmallInt);
+ function GetVERIFACTUIsNull: Boolean;
+ procedure SetVERIFACTUIsNull(const aValue: Boolean);
{ Properties }
@@ -542,6 +548,8 @@ type
property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull;
property PROCEDENCIA_CLIENTE: String read GetPROCEDENCIA_CLIENTEValue write SetPROCEDENCIA_CLIENTEValue;
property PROCEDENCIA_CLIENTEIsNull: Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull;
+ property VERIFACTU: SmallInt read GetVERIFACTUValue write SetVERIFACTUValue;
+ property VERIFACTUIsNull: Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
end;
{ TFacturasClienteDataTableRules }
@@ -770,6 +778,10 @@ type
procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String); virtual;
function GetPROCEDENCIA_CLIENTEIsNull: Boolean; virtual;
procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetVERIFACTUValue: SmallInt; virtual;
+ procedure SetVERIFACTUValue(const aValue: SmallInt); virtual;
+ function GetVERIFACTUIsNull: Boolean; virtual;
+ procedure SetVERIFACTUIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -882,6 +894,8 @@ type
property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull;
property PROCEDENCIA_CLIENTE: String read GetPROCEDENCIA_CLIENTEValue write SetPROCEDENCIA_CLIENTEValue;
property PROCEDENCIA_CLIENTEIsNull: Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull;
+ property VERIFACTU: SmallInt read GetVERIFACTUValue write SetVERIFACTUValue;
+ property VERIFACTUIsNull: Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -891,7 +905,7 @@ type
{ IFacturasCliente_Detalles }
IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable)
- ['{14D5D2ED-02F4-44DC-899A-29119D36FD90}']
+ ['{3D8FF2B9-F029-413E-913C-13EEFF51E336}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -2290,6 +2304,27 @@ begin
DataTable.Fields[idx_FacturasClientePROCEDENCIA_CLIENTE].AsVariant := Null;
end;
+function TFacturasClienteDataTableRules.GetVERIFACTUValue: SmallInt;
+begin
+ result := DataTable.Fields[idx_FacturasClienteVERIFACTU].AsSmallInt;
+end;
+
+procedure TFacturasClienteDataTableRules.SetVERIFACTUValue(const aValue: SmallInt);
+begin
+ DataTable.Fields[idx_FacturasClienteVERIFACTU].AsSmallInt := aValue;
+end;
+
+function TFacturasClienteDataTableRules.GetVERIFACTUIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_FacturasClienteVERIFACTU].IsNull;
+end;
+
+procedure TFacturasClienteDataTableRules.SetVERIFACTUIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_FacturasClienteVERIFACTU].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 d621efc..a41425b 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 = '{BC4B775B-C16B-48D3-B40F-B9684CDD9839}';
- RID_FacturasClienteDelta = '{AAE0C12B-EEB0-41BD-9374-D2492F491485}';
- RID_FacturasCliente_DetallesDelta = '{DEF2FAAB-FA4A-4478-B582-9F32D15AE44E}';
+ RID_ListaAnosFacturasDelta = '{6532598B-1674-446B-ADA2-D250E745EC09}';
+ RID_FacturasClienteDelta = '{3A243DCA-E97B-429B-9561-264578B839FF}';
+ RID_FacturasCliente_DetallesDelta = '{841BC37D-B095-42F3-83B5-DFE3A61B8B44}';
type
{ IListaAnosFacturasDelta }
IListaAnosFacturasDelta = interface(IListaAnosFacturas)
- ['{BC4B775B-C16B-48D3-B40F-B9684CDD9839}']
+ ['{6532598B-1674-446B-ADA2-D250E745EC09}']
{ Property getters and setters }
function GetOldANOValue : String;
@@ -50,7 +50,7 @@ type
{ IFacturasClienteDelta }
IFacturasClienteDelta = interface(IFacturasCliente)
- ['{AAE0C12B-EEB0-41BD-9374-D2492F491485}']
+ ['{3A243DCA-E97B-429B-9561-264578B839FF}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -107,6 +107,7 @@ type
function GetOldTIPO_FACTURAValue : String;
function GetOldLISTA_NOMBRESValue : String;
function GetOldPROCEDENCIA_CLIENTEValue : String;
+ function GetOldVERIFACTUValue : SmallInt;
{ Properties }
property OldID : Integer read GetOldIDValue;
@@ -164,6 +165,7 @@ type
property OldTIPO_FACTURA : String read GetOldTIPO_FACTURAValue;
property OldLISTA_NOMBRES : String read GetOldLISTA_NOMBRESValue;
property OldPROCEDENCIA_CLIENTE : String read GetOldPROCEDENCIA_CLIENTEValue;
+ property OldVERIFACTU : SmallInt read GetOldVERIFACTUValue;
end;
{ TFacturasClienteBusinessProcessorRules }
@@ -502,6 +504,12 @@ type
function GetOldPROCEDENCIA_CLIENTEIsNull: Boolean; virtual;
procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String); virtual;
procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetVERIFACTUValue: SmallInt; virtual;
+ function GetVERIFACTUIsNull: Boolean; virtual;
+ function GetOldVERIFACTUValue: SmallInt; virtual;
+ function GetOldVERIFACTUIsNull: Boolean; virtual;
+ procedure SetVERIFACTUValue(const aValue: SmallInt); virtual;
+ procedure SetVERIFACTUIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@@ -724,6 +732,10 @@ type
property PROCEDENCIA_CLIENTEIsNull : Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull;
property OldPROCEDENCIA_CLIENTE : String read GetOldPROCEDENCIA_CLIENTEValue;
property OldPROCEDENCIA_CLIENTEIsNull : Boolean read GetOldPROCEDENCIA_CLIENTEIsNull;
+ property VERIFACTU : SmallInt read GetVERIFACTUValue write SetVERIFACTUValue;
+ property VERIFACTUIsNull : Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
+ property OldVERIFACTU : SmallInt read GetOldVERIFACTUValue;
+ property OldVERIFACTUIsNull : Boolean read GetOldVERIFACTUIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -733,7 +745,7 @@ type
{ IFacturasCliente_DetallesDelta }
IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles)
- ['{DEF2FAAB-FA4A-4478-B582-9F32D15AE44E}']
+ ['{841BC37D-B095-42F3-83B5-DFE3A61B8B44}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_FACTURAValue : Integer;
@@ -2693,6 +2705,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClientePROCEDENCIA_CLIENTE] := Null;
end;
+function TFacturasClienteBusinessProcessorRules.GetVERIFACTUValue: SmallInt;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetVERIFACTUIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU]);
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldVERIFACTUValue: SmallInt;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteVERIFACTU];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldVERIFACTUIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteVERIFACTU]);
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetVERIFACTUValue(const aValue: SmallInt);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU] := aValue;
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetVERIFACTUIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU] := 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 5412c0a..dd71674 100644
--- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas
@@ -257,6 +257,7 @@ begin
SITUACION := CTE_PENDIENTE;
ID_CLIENTE := ID_NULO;
SIN_COMISION := 0;
+ VERIFACTU := 0;
ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO;
ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA;
diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
index 12cdf61..c4c607c 100644
--- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
+++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
@@ -267,6 +267,10 @@ object srvFacturasCliente: TsrvFacturasCliente
item
DatasetField = 'REF_FORMA_PAGO'
TableField = 'REF_FORMA_PAGO'
+ end
+ item
+ DatasetField = 'VERIFACTU'
+ TableField = 'VERIFACTU'
end>
end>
Name = 'FacturasCliente'
@@ -555,6 +559,10 @@ object srvFacturasCliente: TsrvFacturasCliente
Name = 'PROCEDENCIA_CLIENTE'
DataType = datString
Size = 255
+ end
+ item
+ Name = 'VERIFACTU'
+ DataType = datSmallInt
end>
end
item
@@ -1343,6 +1351,11 @@ object srvFacturasCliente: TsrvFacturasCliente
Size = 255
Value = ''
end
+ item
+ Name = 'VERIFACTU'
+ DataType = datSmallInt
+ Value = ''
+ end
item
Name = 'OLD_ID'
Value = ''
@@ -1369,7 +1382,7 @@ object srvFacturasCliente: TsrvFacturasCliente
'RAR_CONTABILIDAD = :IGNORAR_CONTABILIDAD,'#10' ID_TIENDA = :ID_TI' +
'ENDA,'#10' ID_CONTRATO = :ID_CONTRATO,'#10' SIN_COMISION = :SIN_CO' +
'MISION,'#10' TIPO_FACTURA = :TIPO_FACTURA,'#10' SITUACION = :SITUA' +
- 'CION'#10' WHERE'#10' (ID = :OLD_ID);'#10
+ 'CION,'#10' VERIFACTU = :VERIFACTU'#10' WHERE'#10' (ID = :OLD_ID);'#10
StatementType = stSQL
ColumnMappings = <>
end>
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
index fd56f48..159b45f 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
@@ -2,8 +2,8 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Caption = 'Lista de facturas de cliente'
ClientHeight = 666
ClientWidth = 640
- ExplicitWidth = 648
- ExplicitHeight = 700
+ ExplicitWidth = 656
+ ExplicitHeight = 704
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@@ -66,7 +66,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
end
inherited tbxFiltro: TTBXToolbar
- ExplicitWidth = 481
+ ExplicitWidth = 487
inherited lblAno: TTBXLabelItem
Visible = True
end
@@ -85,10 +85,10 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
ExplicitWidth = 640
end
inherited TBXTMain2: TTBXToolbar
- Left = 481
+ Left = 487
Visible = True
- ExplicitLeft = 481
- ExplicitWidth = 159
+ ExplicitLeft = 487
+ ExplicitWidth = 153
object TBXItem42: TTBXItem
Action = actCambiarSituacion
DisplayMode = nbdmImageAndText
@@ -107,6 +107,12 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Action = actInformes
DisplayMode = nbdmImageAndText
end
+ object TBSeparatorItem1: TTBSeparatorItem
+ end
+ object TBXItem46: TTBXItem
+ Action = actMandarVerifactu
+ DisplayMode = nbdmImageAndText
+ end
end
end
inherited StatusBar: TJvStatusBar
@@ -117,9 +123,9 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
inline frViewFacturasCliente1: TfrViewFacturasCliente [3]
Left = 0
- Top = 102
+ Top = 105
Width = 640
- Height = 545
+ Height = 542
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -129,14 +135,14 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
ParentFont = False
TabOrder = 3
ReadOnly = False
- ExplicitTop = 102
+ ExplicitTop = 105
ExplicitWidth = 640
- ExplicitHeight = 545
+ ExplicitHeight = 542
inherited cxGrid: TcxGrid
Width = 640
- Height = 414
+ Height = 411
ExplicitWidth = 640
- ExplicitHeight = 414
+ ExplicitHeight = 411
inherited cxGridView: TcxGridDBTableView
DataController.Summary.DefaultGroupSummaryItems = <
item
@@ -279,6 +285,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 640
+ ExplicitTop = 75
ExplicitWidth = 640
inherited tbxBotones: TTBXToolbar
Width = 630
@@ -288,8 +295,8 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
- Top = 519
- ExplicitTop = 519
+ Top = 516
+ ExplicitTop = 516
ExplicitWidth = 640
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 640
@@ -385,6 +392,12 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
OnExecute = actGenerarPDFExecute
OnUpdate = actGenerarPDFUpdate
end
+ object actMandarVerifactu: TAction
+ Caption = 'Mandar Verifactu'
+ ImageIndex = 16
+ OnExecute = actMandarVerifactuExecute
+ OnUpdate = actMandarVerifactuUpdate
+ end
end
inherited SmallImages: TPngImageList [5]
PngImages = <
@@ -3608,39 +3621,40 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
000000180806000000E0773DF8000000017352474200AECE1CE9000000046741
4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000
80E8000075300000EA6000003A98000017709CBA513C00000009704859730000
- 0AE900000AE901FD75CED3000003F049444154484BBD557B6C53651C3D7DAD7B
- B0ADADC0363ADDA0834D2DDA6E5904A24C17E64864BAF8484C348E104940FD47
- 128D31121213134DD4C4F8644F794C6413188E81A003B3A15B8AC87C4CA39D9A
- 685013515B36D8B3F7E7F9AEDCDAB9760F62BCC94D9ADEEF3BE7FCCE777EBFCF
- 2422F8DF9ED781A56D0EFB730D56945D0EA9BE3F2F676F3D70DF36C01C15FF0A
- 30AF333BB9E9E74ADF68E4A12A19A8F0851BADB869B6242F00292DD9AE6DBD2B
- BD43273D4E79371D5A1DB05527B807B0BCE7C0FEC1EB20A3373A447B60B5688F
- 544BF0567FA8113393D45970F3C9E265FD7D371448E77C93746442DB6945B322
- D5099ACCD8F8DBD5D0467C90E1EB21178A6D3276979F247748B0A2385C6FC5EA
- 789550A1EBD02247DD57AB964DF4E4A7C9072E487B06B426139E55A2D51E9DE0
- 656051201B030A7C885584BC9073D740C2E55789B6799D0C54964CB1EB0D6065
- 4F81EBC76FFDD9F2E17CE8E0B465BCC18C4763C544CF603B5074C68D5FFFBC16
- C26AE49742C84F4B21677D193252532EC1B5A521E34C76D9CD0FF67B175CFCCC
- 931A056F4BC3700370FFBF2B9D94D02660455F2E060DF01F3C90E062C8371E8B
- FC5EE593606569B8353D69F7803F2B12C8B546C10F109CA9B92D9E8D535A6087
- 05EBFADC1835C0BFCE837C7125E44C2EC94A72E4F4E264F928CB2427AE80BCEF
- 841C9C8771567F6FA2B4C5EDB15D366CF8D48D8928B81B722A07D29305E95E80
- 28383D8FD0F387A78B72C2266E4EC29304D5782E71C10F5D4ACB4C7D92904075
- E1DE64040254FE319577C5283F9209A1EF5A1DE34802D39C2BA0A7B6B7D3936A
- BFBC65B966801FA7E7C7E8F96182D31AD99F06D9930CAD16786A4E04044F6D77
- BB0E9CDB52239F143A75E5F1C05B52206FD9216F5A75922DB33A6482671E5B92
- 73E2E2E335F25DA57F0A382DFB638F1DE70DF09D3648A305B2DD840936DEA669
- 634ACFAD47721D1D639BAA24B47EAD742D344D52DE9A82610A287B0D286C34A3
- 7B87F56FF05A1384E0C2293AC66F35091BAD25DDF6F460758936B1A1424E79D2
- A593AD7FD401E9C880EC4B458436AC3736B770CE10F431FE7741811BEF25128E
- A17F1E3D4554527E7655FEB8DCE993EF4BDD93C0555AEA4D783E5EF954EC2568
- 2F5F2D8668E455A0CA58AF139C2E5AD82FD5CBE5FC9A0239CE716B2867970A3B
- BB4BA52AD121D2DA24126D25C9704C2543DCB3263A4DBBF39DAD91DBBD12C84B
- 9904DE6CC7A0BAA1666A26F59D80C524E88BA924AC26AE5E418305777F5EE414
- 5E3AC20E95362A6752D48DB47936E0C69A97003B053DA3CE82E0115A55A613A8
- 32391A7ADBD9400AFC9D5426C48CA3AA9BE74260ACA5652BF8BE18B548FDE0F5
- E662F40E2BE5CC77880B965C0EF8B4F7818A1F6D7982F1DBF85F801B15FC059E
- 6028BEE22B69170000000049454E44AE426082}
+ 0AE900000AE901FD75CED30000040449444154484BB5957B6C53551CC7BF7DAD
+ 7BD0AD2D8F6D74BA413736B060BB65911165BA304702D3C54762A271844002EA
+ 3F90608C9190989868A226C6277B0A38918DC7700CE431301BBAA5080C6510EC
+ D444C32301B465833D7B7FFECEEDE96537ED3209F19B9CA4F79EDFEFF33DE7D7
+ DF391744F4BF0E9D3E07F25AEDD6F7EACD2895AFEE496A7E76E6AE3AE0C52D80
+ 5133F80498D69191D878A5C23B127EA592FACBBDA106331E8BCC4EAD0F80A4E6
+ 0CE7969E12CFE049B783BEB541A90536AB06CF03A6EFECD83BB00834F2A89D94
+ 979792F25A15059EF4051B30B549AD098F9F2C9CD7D7FB482E75CC30507B1A94
+ ED66340953D5A0D188B5D7E74319F682861E06DD2EB4D0E8B33E36799A02E585
+ A13A33964A964EBC42E781D9F6DA0B4BE68D77E7A4D03127A82D154AA301EF8A
+ 458B18D5E06360B63F03FD023EC8BB087A4037168042650F92B27E25F55714C5
+ 94EB0BA0A43BD7F9E7AFBE0CFA7E0654389765ACDE880D324495F61F6C050ACE
+ BA70ED9F8740BC1BBA9A0FFA2B0F74D99B4AC3D56514585E1C8C9AECB01AD7F4
+ 7966DE39E74ED6E0AD2918AA075E526113A4190835028B7BB3301085FFE10605
+ E6802EB94D74B3D24B818AE2508B2DE1AB7E5F7AD89F65D6E0FB18CE5DB34262
+ 74D219086D336165AF0B2351F8C56CD02F0F80CE66F17351269D9E93483FA41B
+ E8C474D0510768FF348CF1EE5F90E9318A3110DA61C1EA332E8C6B7017E85426
+ A83B1DD435131A9C6B1EE69ABF2AD3E22AAE81505302DE64A83219FC80EC1619
+ 3EA9263510A7705722FC7E86FFC8F0CE09F043696ADD95DA88812192115F710D
+ B8A6966F6C0935E79F58A844E1C7197E84E10719CEA5A1BD29A09D89506A80B7
+ 645A5CC518303CB9CDE5DC77636335FD94EF9814DE9C04FADA0AFAD2AC9A6C94
+ E931D219303CEDC8DCCC13775EAFA6DF2A7C31702ED9DF3BADB815856FB7801A
+ 4CA0AD068CF3C15B27313A69065C73F3A12C7BFBE8BA4A0AAE5A4E9DB30C3A78
+ 4B12867801A59F01F90D46746D3347E0350610C3896FD1519EAB8ED0EE4A3368
+ B659DE1EA82A52C65797D329B78D3AF8001DB683DA53417B9211E632AC8A4472
+ 2CDF330CDDC4EF6E0B78744813BE86EE4A35E095945D5E923346CF78E9F76297
+ 0E2EBAA5CE80F765BC4E0CF330B4878732C168F853A05286440C4E17CCEAA3AA
+ 85746B592E1DE7EB360AE7534A7CB23B4557C9F818716913D868339B0C4DD8C9
+ 20E72C13F3AA41578EA325FC9487FCD9493A789315031C9CA792A610030B19DE
+ 1B35E111E251A21AD49BF0DCCF050EE28F8E38A1D4CA70EE14F1455A2FF3FF93
+ 3E02ACBCA077788C323CCCA52A550DC436F96AE869E31E17F0DDC9DC21461C16
+ A759E6DE93B8648B797C287EAB0642FC797372EB1D142BE7FE0E72C0DCC8CCFD
+ 49331012EDC7657983DB6FAD7C75DF2222FC0B51266D78E692E7220000000049
+ 454E44AE426082}
Instruction.Text = 'Las siguientes facturas no han podido ser eliminadas:'
Instruction.Glyph.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
@@ -4232,39 +4246,40 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
000000180806000000E0773DF8000000017352474200AECE1CE9000000046741
4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000
80E8000075300000EA6000003A98000017709CBA513C00000009704859730000
- 0AE900000AE901FD75CED3000003F049444154484BBD557B6C53651C3D7DAD7B
- B0ADADC0363ADDA0834D2DDA6E5904A24C17E64864BAF8484C348E104940FD47
- 128D31121213134DD4C4F8644F794C6413188E81A003B3A15B8AC87C4CA39D9A
- 685013515B36D8B3F7E7F9AEDCDAB9760F62BCC94D9ADEEF3BE7FCCE777EBFCF
- 2422F8DF9ED781A56D0EFB730D56945D0EA9BE3F2F676F3D70DF36C01C15FF0A
- 30AF333BB9E9E74ADF68E4A12A19A8F0851BADB869B6242F00292DD9AE6DBD2B
- BD43273D4E79371D5A1DB05527B807B0BCE7C0FEC1EB20A3373A447B60B5688F
- 544BF0567FA8113393D45970F3C9E265FD7D371448E77C93746442DB6945B322
- D5099ACCD8F8DBD5D0467C90E1EB21178A6D3276979F247748B0A2385C6FC5EA
- 789550A1EBD02247DD57AB964DF4E4A7C9072E487B06B426139E55A2D51E9DE0
- 656051201B030A7C885584BC9073D740C2E55789B6799D0C54964CB1EB0D6065
- 4F81EBC76FFDD9F2E17CE8E0B465BCC18C4763C544CF603B5074C68D5FFFBC16
- C26AE49742C84F4B21677D193252532EC1B5A521E34C76D9CD0FF67B175CFCCC
- 931A056F4BC3700370FFBF2B9D94D02660455F2E060DF01F3C90E062C8371E8B
- FC5EE593606569B8353D69F7803F2B12C8B546C10F109CA9B92D9E8D535A6087
- 05EBFADC1835C0BFCE837C7125E44C2EC94A72E4F4E264F928CB2427AE80BCEF
- 841C9C8771567F6FA2B4C5EDB15D366CF8D48D8928B81B722A07D29305E95E80
- 28383D8FD0F387A78B72C2266E4EC29304D5782E71C10F5D4ACB4C7D92904075
- E1DE64040254FE319577C5283F9209A1EF5A1DE34802D39C2BA0A7B6B7D3936A
- BFBC65B966801FA7E7C7E8F96182D31AD99F06D9930CAD16786A4E04044F6D77
- BB0E9CDB52239F143A75E5F1C05B52206FD9216F5A75922DB33A6482671E5B92
- 73E2E2E335F25DA57F0A382DFB638F1DE70DF09D3648A305B2DD840936DEA669
- 634ACFAD47721D1D639BAA24B47EAD742D344D52DE9A82610A287B0D286C34A3
- 7B87F56FF05A1384E0C2293AC66F35091BAD25DDF6F460758936B1A1424E79D2
- A593AD7FD401E9C880EC4B458436AC3736B770CE10F431FE7741811BEF25128E
- A17F1E3D4554527E7655FEB8DCE993EF4BDD93C0555AEA4D783E5EF954EC2568
- 2F5F2D8668E455A0CA58AF139C2E5AD82FD5CBE5FC9A0239CE716B2867970A3B
- BB4BA52AD121D2DA24126D25C9704C2543DCB3263A4DBBF39DAD91DBBD12C84B
- 9904DE6CC7A0BAA1666A26F59D80C524E88BA924AC26AE5E418305777F5EE414
- 5E3AC20E95362A6752D48DB47936E0C69A97003B053DA3CE82E0115A55A613A8
- 32391A7ADBD9400AFC9D5426C48CA3AA9BE74260ACA5652BF8BE18B548FDE0F5
- E662F40E2BE5CC77880B965C0EF8B4F7818A1F6D7982F1DBF85F801B15FC059E
- 6028BEE22B69170000000049454E44AE426082}
+ 0AE900000AE901FD75CED30000040449444154484BB5957B6C53551CC7BF7DAD
+ 7BD0AD2D8F6D74BA413736B060BB65911165BA304702D3C54762A271844002EA
+ 3F90608C9190989868A226C6277B0A38918DC7700CE431301BBAA5080C6510EC
+ D444C32301B465833D7B7FFECEEDE96537ED3209F19B9CA4F79EDFEFF33DE7D7
+ DF391744F4BF0E9D3E07F25AEDD6F7EACD2895AFEE496A7E76E6AE3AE0C52D80
+ 5133F80498D69191D878A5C23B127EA592FACBBDA106331E8BCC4EAD0F80A4E6
+ 0CE7969E12CFE049B783BEB541A90536AB06CF03A6EFECD83BB00834F2A89D94
+ 979792F25A15059EF4051B30B549AD098F9F2C9CD7D7FB482E75CC30507B1A94
+ ED66340953D5A0D188B5D7E74319F682861E06DD2EB4D0E8B33E36799A02E585
+ A13A33964A964EBC42E781D9F6DA0B4BE68D77E7A4D03127A82D154AA301EF8A
+ 458B18D5E06360B63F03FD023EC8BB087A4037168042650F92B27E25F55714C5
+ 94EB0BA0A43BD7F9E7AFBE0CFA7E0654389765ACDE880D324495F61F6C050ACE
+ BA70ED9F8740BC1BBA9A0FFA2B0F74D99B4AC3D56514585E1C8C9AECB01AD7F4
+ 7966DE39E74ED6E0AD2918AA075E526113A4190835028B7BB3301085FFE10605
+ E6802EB94D74B3D24B818AE2508B2DE1AB7E5F7AD89F65D6E0FB18CE5DB34262
+ 74D219086D336165AF0B2351F8C56CD02F0F80CE66F17351269D9E93483FA41B
+ E8C474D0510768FF348CF1EE5F90E9318A3110DA61C1EA332E8C6B7017E85426
+ A83B1DD435131A9C6B1EE69ABF2AD3E22AAE81505302DE64A83219FC80EC1619
+ 3EA9263510A7705722FC7E86FFC8F0CE09F043696ADD95DA88812192115F710D
+ B8A6966F6C0935E79F58A844E1C7197E84E10719CEA5A1BD29A09D89506A80B7
+ 645A5CC518303CB9CDE5DC77636335FD94EF9814DE9C04FADA0AFAD2AC9A6C94
+ E931D219303CEDC8DCCC13775EAFA6DF2A7C31702ED9DF3BADB815856FB7801A
+ 4CA0AD068CF3C15B27313A69065C73F3A12C7BFBE8BA4A0AAE5A4E9DB30C3A78
+ 4B12867801A59F01F90D46746D3347E0350610C3896FD1519EAB8ED0EE4A3368
+ B659DE1EA82A52C65797D329B78D3AF8001DB683DA53417B9211E632AC8A4472
+ 2CDF330CDDC4EF6E0B78744813BE86EE4A35E095945D5E923346CF78E9F76297
+ 0E2EBAA5CE80F765BC4E0CF330B4878732C168F853A05286440C4E17CCEAA3AA
+ 85746B592E1DE7EB360AE7534A7CB23B4557C9F818716913D868339B0C4DD8C9
+ 20E72C13F3AA41578EA325FC9487FCD9493A789315031C9CA792A610030B19DE
+ 1B35E111E251A21AD49BF0DCCF050EE28F8E38A1D4CA70EE14F1455A2FF3FF93
+ 3E02ACBCA077788C323CCCA52A550DC436F96AE869E31E17F0DDC9DC21461C16
+ A759E6DE93B8648B797C287EAB0642FC797372EB1D142BE7FE0E72C0DCC8CCFD
+ 49331012EDC7657983DB6FAD7C75DF2222FC0B51266D78E692E7220000000049
+ 454E44AE426082}
Instruction.Text = 'Las siguientes facturas no han podido ser modificadas:'
Instruction.Glyph.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
index be879d9..621fcb0 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
@@ -47,6 +47,9 @@ type
TBXItem44: TTBXItem;
actGenerarPDF: TAction;
TBXItem45: TTBXItem;
+ actMandarVerifactu: TAction;
+ TBXItem46: TTBXItem;
+ TBSeparatorItem1: TTBSeparatorItem;
procedure FormShow(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actNuevaFacturaExecute(Sender: TObject);
@@ -62,6 +65,8 @@ type
procedure actVerContratoExecute(Sender: TObject);
procedure actGenerarPDFExecute(Sender: TObject);
procedure actGenerarPDFUpdate(Sender: TObject);
+ procedure actMandarVerifactuExecute(Sender: TObject);
+ procedure actMandarVerifactuUpdate(Sender: TObject);
private
FFacturas: IBizFacturaCliente;
@@ -304,6 +309,83 @@ begin
end;
+procedure TfEditorFacturasCliente.actMandarVerifactuExecute(Sender: TObject);
+var
+ AFacturas: IBizFacturaCliente;
+ AllItems: Boolean;
+ AListaCausas: TStringList;
+
+begin
+ AFacturas := Nil;
+ AllItems := False;
+ AListaCausas := TStringList.Create;
+
+ if MultiSelect and Assigned(ViewGrid) then
+ AllItems := (ViewGrid.NumSeleccionados > 1);
+
+ if AllItems then
+ begin
+ if (Application.MessageBox('¿Desea mandar a verifactu los borradores seleccionados?, ya no podrá modificarlos', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
+ AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente;
+ end
+ end
+ else begin
+ if (Application.MessageBox('¿Desea mandar a verifactu el borrador seleccionado?, ya no podrá modificarlo', 'Atención', MB_YESNO) = IDYES) then
+ AFacturas := Facturas;
+ end;
+
+ if Assigned(AFacturas) then
+ begin
+ FController.enviarVerifactu(AFacturas, AllItems, AListaCausas);
+
+ if AllItems then
+ begin
+{ if (AFacturas.DataTable.RecordCount > 0) then
+ begin
+ with AFacturas.DataTable do
+ begin
+ JsListaFacturasNoEliminadas.Content.Clear;
+ First;
+ while not EOF do
+ begin
+ JsListaFacturasNoEliminadas.Content.Add('Ref. factura: ' + AFacturas.REFERENCIA + ' ' + AFacturas.NOMBRE);
+ if Length(AListaCausas.Values[IntToStr(AFacturas.ID)]) > 0 then
+ JsListaFacturasNoEliminadas.Content.Add(VarToStr(AListaCausas.Values[IntToStr(AFacturas.ID)]))
+ else
+ JsListaFacturasNoEliminadas.Content.Add('La factura puede tener algún recibo devuelto y no puede ser eliminada');
+ JsListaFacturasNoEliminadas.Content.Add('');
+ Next;
+ end;
+ end;
+ JsListaFacturasNoEliminadas.Execute;
+ end;
+}
+ actRefrescar.Execute;
+ end
+ end;
+
+ AListaCausas.Free;
+ ViewGrid.GotoFirst;
+end;
+
+procedure TfEditorFacturasCliente.actMandarVerifactuUpdate(Sender: TObject);
+begin
+ inherited;
+
+ (Sender as TAction).Enabled := False;
+
+{Quitar al activar verifactu
+ if HayDatos and Assigned(ViewGrid) then
+ (Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos
+ and (ViewGrid.NumSeleccionados > 0)
+ and (FFacturas.VERIFACTU < 1)
+ else
+ (Sender as TAction).Enabled := False;
+}
+end;
+
procedure TfEditorFacturasCliente.actNuevaFacturaExecute(Sender: TObject);
begin
actNuevo.Execute;
diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
index 0535a09..9af4ce8 100644
--- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
@@ -196,6 +196,20 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
Caption = 'Forma pago'
DataBinding.FieldName = 'REF_FORMA_PAGO'
end
+ object cxGridViewVERIFACTU: TcxGridDBColumn
+ DataBinding.FieldName = 'VERIFACTU'
+ PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Images = PngImageList
+ Properties.Items = <
+ item
+ Description = 'Verifactu'
+ ImageIndex = 0
+ Value = 1
+ end
+ item
+ Value = 0
+ end>
+ end
end
inherited cxGridLevel: TcxGridLevel
Caption = 'Todas'
@@ -223,8 +237,6 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitWidth = 273
- Width = 273
end
inherited edtFechaIniFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
@@ -263,15 +275,13 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
StyleHot.LookAndFeel.SkinName = ''
end
inherited txtFiltroTodo2: TcxTextEdit
- Left = 445
+ Left = 444
Enabled = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitLeft = 445
- ExplicitWidth = 275
- Width = 275
+ ExplicitLeft = 444
end
inherited dxLayoutControl1Group_Root: TdxLayoutGroup
inherited dxLayoutControl1Group3: TdxLayoutGroup
@@ -284,6 +294,7 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 802
+ ExplicitTop = 75
ExplicitWidth = 802
inherited tbxBotones: TTBXToolbar
Width = 792
diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
index 0721bea..b209013 100644
--- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
@@ -68,6 +68,7 @@ type
cxGridViewLOPD: TcxGridDBColumn;
cxGridViewPROCEDENCIA_CLIENTE: TcxGridDBColumn;
cxGridViewREF_FORMA_PAGO: TcxGridDBColumn;
+ cxGridViewVERIFACTU: TcxGridDBColumn;
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 7e926a8..aa26f84 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -28,7 +28,7 @@
Delphi.Personality
- FalseTrueFalseTrueFalse2330FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.3.0FactuGES v2(Servidor)2.3.3.0viernes, 14 de marzo de 2025 16:56
+ FalseTrueFalseTrueFalse2340FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.4.0FactuGES v2(Servidor)2.3.4.0viernes, 14 de marzo de 2025 18:44
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES_Server.dpr