diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 36ee6bc..cd6ec48 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf index 3a632be..3bba952 100644 --- a/Build/Build.fbpInf +++ b/Build/Build.fbpInf @@ -14,8 +14,8 @@ - 00:00:00 - 21/01/2020 11:30:34 - False + 00:00:01 + 26/02/2020 12:19:19 + True diff --git a/Build/Build.fbz6 b/Build/Build.fbz6 index 6256153..6ccd369 100644 Binary files a/Build/Build.fbz6 and b/Build/Build.fbz6 differ diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm index 6f1167f..24151de 100644 --- a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm @@ -1089,8 +1089,7 @@ object fEditorLogin: TfEditorLogin AppStoragePath = '\' Options = [] StoredProps.Strings = ( - 'edtUser.Text' - 'edtPassword.Text') + 'edtUser.Text') StoredValues = < item Name = 'Ruta' diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas index 9f40155..1ea9003 100644 --- a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas @@ -114,7 +114,7 @@ procedure TfEditorLogin.FormShow(Sender: TObject); begin ScaleFormFont(Self); Self.Caption := AppFactuGES.AppFullName; - JvFormStorage1.RestoreFormPlacement; +// JvFormStorage1.RestoreFormPlacement; // Hacer login automática si hay usuario/password y no hay más de una base // de datos como opción para conectarse. diff --git a/Source/Base/Utiles/uStringsUtils.pas b/Source/Base/Utiles/uStringsUtils.pas index 68ad755..5b8c59b 100644 --- a/Source/Base/Utiles/uStringsUtils.pas +++ b/Source/Base/Utiles/uStringsUtils.pas @@ -14,6 +14,10 @@ function StringsToString(Source:TStrings; Delimiter:char):string; function EsCadenaVacia(const S: AnsiString): Boolean; overload; function EsCadenaVacia(const S: Variant): Boolean; overload; function EsNumerico(Cadena: String) : Boolean; +function calcularLetraNIF(numeroDNI : integer): string; +function comprobarLetraNIF(nif: string): boolean; +function validarCIF(Cif: string) : boolean; +function CadLimpiaCar(NIF: String): String; implementation @@ -62,5 +66,73 @@ begin Result := (Codigo = 0) end; +//Obtiene la letra del DNI NIF de un número +function calcularLetraNIF(numeroDNI : integer): string; +begin + Result := copy('TRWAGMYFPDXBNJZSQVHLCKET', 1 + numeroDNI mod 23, 1); +end; + +//Comprueba si un NIF DNI es correcto (con letra incluida y extranjero) +function comprobarLetraNIF (nif: string): boolean; +var + numeroDNI : Integer; +begin + Result := false; + if Length(nif) = 9 then + begin + // DNI normal + if TryStrToInt(Copy(nif, 1, Length(nif) - 1), numeroDNI) then + Result := UpperCase(Copy(nif, Length(nif), 1)) = calcularLetraNIF(numeroDNI); + // DNI Extranjero + if UpperCase(Copy(nif, 1, 1)) = 'X' then + if TryStrToInt(Copy(nif, 2, Length(nif) - 2), numeroDNI) then + Result := Uppercase(Copy(nif, Length(nif), 1)) = calcularLetraNIF(numeroDNI); + end; +end; + +//Comprueba si un CIF es correcto (se le pasa el CIF completo, incluida la letra) +function validarCIF (Cif : string) : boolean; +var + Suma, Control : integer; + n : byte; +begin + Result:=False; + Cif:=UpperCase(Cif); + {El cif debe ser de 9 cifras} + if Length(Cif)=9 then + begin + Suma:= StrToInt(Cif[3])+ + StrToInt(Cif[5])+ + StrToInt(Cif[7]); + for n := 1 to 4 do + begin + Suma:=Suma+ ( (2*StrToInt(Cif[2*n])) mod 10 )+ + ( (2*StrToInt(Cif[2*n])) div 10 ); + end; + Control := 10-(Suma mod 10); + if Pos(Cif[1],'XP') <> 0 then + {Control tipo letra} + Result:= ( Cif[9] = Chr(64+ Control)) + else + begin + {Control tipo número} + if Control =10 then + Control := 0; + Result:= ( StrToInt(Cif[9]) = Control); + end; + end; +end; + +function CadLimpiaCar(NIF: String): String; + begin + Result:= NIF; + while (pos(' ',NIF)>0) do + delete(NIF,pos(' ',NIF),1); + while (pos('-',NIF)>0) do + delete(NIF,pos('-',NIF),1); + while (pos('/',NIF)>0) do + delete(NIF,pos('/',NIF),1); + Result:=NIF; +end; end. diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index babf472..c6bff92 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -52,9 +52,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1000FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.0.0.0FactuGES v2FactuGES v22.0.0.0 - - +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2020FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.0.2.0FactuGES v2FactuGES v22.0.2.0 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 7ba51c2..14b0750 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm index fc77f9d..e04a3ba 100644 --- a/Source/Cliente/uPantallaPrincipal.dfm +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -705,8 +705,6 @@ object fPantallaPrincipal: TfPantallaPrincipal object Informes1: TMenuItem Tag = 7000 Action = actMenuInformes - Enabled = False - Visible = False end end object JvXPMenuItemPainter1: TJvXPMenuItemPainter diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index fd91c4e..0edfe47 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res index 1641339..8b251f3 100644 Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/GUIBase/uViewFiltroBase.dfm b/Source/GUIBase/uViewFiltroBase.dfm index cacab72..96cf8aa 100644 --- a/Source/GUIBase/uViewFiltroBase.dfm +++ b/Source/GUIBase/uViewFiltroBase.dfm @@ -1,9 +1,9 @@ inherited frViewFiltroBase: TfrViewFiltroBase Width = 565 - Height = 102 + Height = 137 Visible = False ExplicitWidth = 565 - ExplicitHeight = 102 + ExplicitHeight = 137 object TBXDockablePanel1: TTBXDockablePanel Left = 0 Top = 0 @@ -23,8 +23,8 @@ inherited frViewFiltroBase: TfrViewFiltroBase Left = 0 Top = 0 Width = 565 - Height = 68 - Align = alTop + Height = 107 + Align = alClient ParentBackground = True TabOrder = 0 TabStop = False @@ -73,10 +73,10 @@ inherited frViewFiltroBase: TfrViewFiltroBase StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' TabOrder = 1 - Width = 121 + Width = 130 end object edtFechaFinFiltro: TcxDateEdit - Left = 350 + Left = 234 Top = 37 Properties.OnChange = OnCamposFiltroChange Style.BorderColor = clWindowFrame @@ -97,7 +97,57 @@ inherited frViewFiltroBase: TfrViewFiltroBase StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' TabOrder = 2 - Width = 121 + Width = 130 + end + object edtFecha2FinFiltro: TcxDateEdit + Left = 234 + Top = 64 + Enabled = False + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 4 + Width = 130 + end + object edtFecha2IniFiltro: TcxDateEdit + Left = 87 + Top = 64 + Enabled = False + Properties.OnChange = OnCamposFiltroChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 3 + Width = 130 end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False @@ -111,32 +161,57 @@ inherited frViewFiltroBase: TfrViewFiltroBase object dxLayoutControl1Group1: TdxLayoutGroup ShowCaption = False Hidden = True - LayoutDirection = ldHorizontal ShowBorder = False - object dxLayoutControl1Item2: TdxLayoutItem + object dxLayoutControl1Group3: TdxLayoutGroup AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Entre la fecha:' - Control = edtFechaIniFiltro - ControlOptions.ShowBorder = False + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Entre la fecha:' + Control = edtFechaIniFiltro + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'y' + Control = edtFechaFinFiltro + ControlOptions.ShowBorder = False + end end - object dxLayoutControl1Item3: TdxLayoutItem + object dxLayoutControl1Group4: TdxLayoutGroup AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'y' - Control = edtFechaFinFiltro - ControlOptions.ShowBorder = False + Enabled = False + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Entre fecha 2:' + Control = edtFecha2IniFiltro + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'y' + Control = edtFecha2FinFiltro + ControlOptions.ShowBorder = False + end end end end end object TBXAlignmentPanel1: TTBXAlignmentPanel Left = 0 - Top = 68 + Top = 107 Width = 565 Height = 30 Margins.Left = 10 - Align = alTop + Align = alBottom TabOrder = 1 object tbxBotones: TTBXToolbar Left = 10 diff --git a/Source/GUIBase/uViewFiltroBase.pas b/Source/GUIBase/uViewFiltroBase.pas index 62dfea6..f922594 100644 --- a/Source/GUIBase/uViewFiltroBase.pas +++ b/Source/GUIBase/uViewFiltroBase.pas @@ -44,6 +44,12 @@ type tbxBotones: TTBXToolbar; TBXItem2: TTBXItem; TBXAlignmentPanel1: TTBXAlignmentPanel; + dxLayoutControl1Item4: TdxLayoutItem; + edtFecha2FinFiltro: TcxDateEdit; + dxLayoutControl1Item5: TdxLayoutItem; + edtFecha2IniFiltro: TcxDateEdit; + dxLayoutControl1Group3: TdxLayoutGroup; + dxLayoutControl1Group4: TdxLayoutGroup; procedure OnCamposFiltroChange(Sender: TObject); procedure actQuitarFiltroExecute(Sender: TObject); @@ -108,6 +114,8 @@ begin txtFiltroTodo.Clear; edtFechaIniFiltro.Clear; edtFechaFinFiltro.Clear; + edtFecha2IniFiltro.Clear; + edtFecha2FinFiltro.Clear; end; procedure TfrViewFiltroBase.OnCamposFiltroChange(Sender: TObject); @@ -129,7 +137,17 @@ begin edtFechaIniFiltro.SetFocus; Result := False; end - end; + end; + + if not VarIsNull(edtFecha2IniFiltro.EditValue) and not VarIsNull(edtFecha2FinFiltro.EditValue) then + begin + if (edtFecha2IniFiltro.EditValue > edtFecha2FinFiltro.EditValue) then + begin + ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaIniFiltro.SetFocus; + Result := False; + end + end; end; procedure TfrViewFiltroBase.actQuitarFiltroExecute(Sender: TObject); diff --git a/Source/GUIBase/uViewGrid.dfm b/Source/GUIBase/uViewGrid.dfm index 86c5518..0bcbbc6 100644 --- a/Source/GUIBase/uViewGrid.dfm +++ b/Source/GUIBase/uViewGrid.dfm @@ -48,6 +48,7 @@ inherited frViewGrid: TfrViewGrid BestFitMaxWidth = 18 MinWidth = 18 Options.Sorting = False + VisibleForCustomization = False Width = 18 OnCustomDrawHeader = cxGridViewICONOCustomDrawHeader end @@ -72,29 +73,58 @@ inherited frViewGrid: TfrViewGrid Visible = False ReadOnly = False ExplicitWidth = 554 + ExplicitHeight = 102 inherited TBXDockablePanel1: TTBXDockablePanel ExplicitWidth = 554 ExplicitHeight = 102 inherited dxLayoutControl1: TdxLayoutControl Width = 554 + Height = 72 ExplicitWidth = 554 + ExplicitHeight = 72 inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 457 Width = 457 end inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 240 Width = 240 end inherited edtFechaFinFiltro: TcxDateEdit Left = 344 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitLeft = 344 ExplicitWidth = 200 Width = 200 end + inherited edtFecha2FinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFecha2IniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Top = 72 Width = 554 + ExplicitTop = 72 ExplicitWidth = 554 inherited tbxBotones: TTBXToolbar Width = 544 @@ -162,7 +192,7 @@ inherited frViewGrid: TfrViewGrid PrinterPage.ScaleMode = smFit PrinterPage._dxMeasurementUnits_ = 0 PrinterPage._dxLastMU_ = 2 - ReportDocument.CreationDate = 42772.762583020830000000 + ReportDocument.CreationDate = 43888.650270717590000000 StyleManager = dmBase.dxPrintStyleManager1 OptionsCards.Shadow.Depth = 0 OptionsExpanding.ExpandGroupRows = True diff --git a/Source/Informes/1/InfContratoCliente.fr3 b/Source/Informes/1/InfContratoCliente.fr3 index f46b7be..226a841 100644 --- a/Source/Informes/1/InfContratoCliente.fr3 +++ b/Source/Informes/1/InfContratoCliente.fr3 @@ -1,34 +1,34 @@ - + - - - - - - - - + + + + + + + + - - + + - + - - + + - + - + @@ -38,7 +38,7 @@ - + @@ -58,13 +58,13 @@ - - + + - + diff --git a/Source/Informes/1/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 index 34524a7..bc0393a 100644 --- a/Source/Informes/1/InfFacturaCliente.fr3 +++ b/Source/Informes/1/InfFacturaCliente.fr3 @@ -1,61 +1,61 @@ - + - - - - - - - - + + + + + + + + - - + + - - + + - + - + - + - + - + - + - + - - - - - + + + + + - - - - + + + + - + - - + + diff --git a/Source/Informes/1/InfReciboCliente.fr3 b/Source/Informes/1/InfReciboCliente.fr3 index 4afd997..897d6d1 100644 --- a/Source/Informes/1/InfReciboCliente.fr3 +++ b/Source/Informes/1/InfReciboCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -11,25 +11,25 @@ - + - + - - - - - - + + + + + + - + @@ -39,7 +39,7 @@ - + diff --git a/Source/Informes/InfContratoCliente.fr3 b/Source/Informes/InfContratoCliente.fr3 deleted file mode 100644 index 6626c5b..0000000 --- a/Source/Informes/InfContratoCliente.fr3 +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InfEtiquetasAlbaranCliente.fr3 b/Source/Informes/InfEtiquetasAlbaranCliente.fr3 deleted file mode 100644 index 7c0950a..0000000 --- a/Source/Informes/InfEtiquetasAlbaranCliente.fr3 +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InfEtiquetasContacto.fr3 b/Source/Informes/InfEtiquetasContacto.fr3 deleted file mode 100644 index f1fcad7..0000000 --- a/Source/Informes/InfEtiquetasContacto.fr3 +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Source/Informes/InfListaDatosContacto.fr3 b/Source/Informes/InfListaDatosContacto.fr3 deleted file mode 100644 index bc4ab22..0000000 --- a/Source/Informes/InfListaDatosContacto.fr3 +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InfPedidoProveedor.fr3 b/Source/Informes/InfPedidoProveedor.fr3 deleted file mode 100644 index bd3fe3d..0000000 --- a/Source/Informes/InfPedidoProveedor.fr3 +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 deleted file mode 100644 index c94995a..0000000 --- a/Source/Informes/InfPresupuestoCliente.fr3 +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/Informe de Ventas.xlsx b/Source/Informes/Informe de Ventas.xlsx deleted file mode 100644 index 9f5daeb..0000000 Binary files a/Source/Informes/Informe de Ventas.xlsx and /dev/null differ diff --git a/Source/Informes/InformeIVAClientes.fr3 b/Source/Informes/InformeIVAClientes.fr3 index d91749c..97fb98e 100644 --- a/Source/Informes/InformeIVAClientes.fr3 +++ b/Source/Informes/InformeIVAClientes.fr3 @@ -1,87 +1,86 @@ - + - - - - - + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + diff --git a/Source/Informes/InformeIVAClientesDesglosado.fr3 b/Source/Informes/InformeIVAClientesDesglosado.fr3 index 7dd7ca6..208b4a0 100644 --- a/Source/Informes/InformeIVAClientesDesglosado.fr3 +++ b/Source/Informes/InformeIVAClientesDesglosado.fr3 @@ -1,84 +1,82 @@ - + - - - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + diff --git a/Source/Informes/InformeIVAProveedores.fr3 b/Source/Informes/InformeIVAProveedores.fr3 index 614d7e3..a72fc02 100644 --- a/Source/Informes/InformeIVAProveedores.fr3 +++ b/Source/Informes/InformeIVAProveedores.fr3 @@ -1,69 +1,68 @@ - + - - + - - + + - + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/InformeIVAProveedoresDesglosado.fr3 index a99d074..5a793be 100644 --- a/Source/Informes/InformeIVAProveedoresDesglosado.fr3 +++ b/Source/Informes/InformeIVAProveedoresDesglosado.fr3 @@ -1,73 +1,72 @@ - + - - + - - + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasCliente.fr3 b/Source/Informes/InformeListadoFacturasCliente.fr3 index 1a31314..ac82dea 100644 --- a/Source/Informes/InformeListadoFacturasCliente.fr3 +++ b/Source/Informes/InformeListadoFacturasCliente.fr3 @@ -1,69 +1,68 @@ - + - - - - - + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasClienteDesglosado.fr3 b/Source/Informes/InformeListadoFacturasClienteDesglosado.fr3 index cc336f9..e5147f8 100644 --- a/Source/Informes/InformeListadoFacturasClienteDesglosado.fr3 +++ b/Source/Informes/InformeListadoFacturasClienteDesglosado.fr3 @@ -1,77 +1,76 @@ - + - - + - - + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - + - - - - - + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasClientePendientes.fr3 b/Source/Informes/InformeListadoFacturasClientePendientes.fr3 index 6497f78..b2a53c8 100644 --- a/Source/Informes/InformeListadoFacturasClientePendientes.fr3 +++ b/Source/Informes/InformeListadoFacturasClientePendientes.fr3 @@ -1,64 +1,63 @@ - + - - - - - + + + + - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasClientePendientesDesglosado.fr3 b/Source/Informes/InformeListadoFacturasClientePendientesDesglosado.fr3 index f2dedb3..fcf820d 100644 --- a/Source/Informes/InformeListadoFacturasClientePendientesDesglosado.fr3 +++ b/Source/Informes/InformeListadoFacturasClientePendientesDesglosado.fr3 @@ -1,68 +1,67 @@ - + - - - - - + + + + - + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - + + + + - + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasProveedor.fr3 b/Source/Informes/InformeListadoFacturasProveedor.fr3 index 0cc9b18..082168e 100644 --- a/Source/Informes/InformeListadoFacturasProveedor.fr3 +++ b/Source/Informes/InformeListadoFacturasProveedor.fr3 @@ -1,71 +1,70 @@ - + - - + - - + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasProveedorDesglosado.fr3 b/Source/Informes/InformeListadoFacturasProveedorDesglosado.fr3 index a0db9aa..38ca1a0 100644 --- a/Source/Informes/InformeListadoFacturasProveedorDesglosado.fr3 +++ b/Source/Informes/InformeListadoFacturasProveedorDesglosado.fr3 @@ -1,75 +1,74 @@ - + - - + - - + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasProveedorPendientes.fr3 b/Source/Informes/InformeListadoFacturasProveedorPendientes.fr3 index 6ea8d3c..d8ad06f 100644 --- a/Source/Informes/InformeListadoFacturasProveedorPendientes.fr3 +++ b/Source/Informes/InformeListadoFacturasProveedorPendientes.fr3 @@ -1,66 +1,65 @@ - + - - + - - + + - + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoFacturasProveedorPendientesDesglosado.fr3 b/Source/Informes/InformeListadoFacturasProveedorPendientesDesglosado.fr3 index 71f8c8a..d9f1764 100644 --- a/Source/Informes/InformeListadoFacturasProveedorPendientesDesglosado.fr3 +++ b/Source/Informes/InformeListadoFacturasProveedorPendientesDesglosado.fr3 @@ -1,70 +1,69 @@ - + - - + - - + + - + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + - + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + diff --git a/Source/Informes/InformeListadoPresupuestos.fr3 b/Source/Informes/InformeListadoPresupuestos.fr3 deleted file mode 100644 index 0de8ea8..0000000 --- a/Source/Informes/InformeListadoPresupuestos.fr3 +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InformeListadoPresupuestosDesglosado.fr3 b/Source/Informes/InformeListadoPresupuestosDesglosado.fr3 deleted file mode 100644 index eeb6524..0000000 --- a/Source/Informes/InformeListadoPresupuestosDesglosado.fr3 +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InformeListadoRecibosCliPendientes.fr3 b/Source/Informes/InformeListadoRecibosCliPendientes.fr3 index c01ba3f..bfdb08a 100644 --- a/Source/Informes/InformeListadoRecibosCliPendientes.fr3 +++ b/Source/Informes/InformeListadoRecibosCliPendientes.fr3 @@ -1,39 +1,36 @@ - + - - - - - - - + + + + - + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + diff --git a/Source/Informes/InformeListadoRecibosCliPendientesDesglosado.fr3 b/Source/Informes/InformeListadoRecibosCliPendientesDesglosado.fr3 index 4ba051a..dbdd7cd 100644 --- a/Source/Informes/InformeListadoRecibosCliPendientesDesglosado.fr3 +++ b/Source/Informes/InformeListadoRecibosCliPendientesDesglosado.fr3 @@ -1,44 +1,41 @@ - + - - - - - - - + + + + - + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + diff --git a/Source/Informes/InformeListadoRecibosCliente.fr3 b/Source/Informes/InformeListadoRecibosCliente.fr3 index 230feda..fef9a92 100644 --- a/Source/Informes/InformeListadoRecibosCliente.fr3 +++ b/Source/Informes/InformeListadoRecibosCliente.fr3 @@ -1,39 +1,36 @@ - + - - - - - - - + + + + - - + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + diff --git a/Source/Informes/InformeListadoRecibosClienteDesglosado.fr3 b/Source/Informes/InformeListadoRecibosClienteDesglosado.fr3 index a232d8f..283bc47 100644 --- a/Source/Informes/InformeListadoRecibosClienteDesglosado.fr3 +++ b/Source/Informes/InformeListadoRecibosClienteDesglosado.fr3 @@ -1,44 +1,41 @@ - + - - - - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + diff --git a/Source/Informes/InformeListadoRecibosProvPendientes.fr3 b/Source/Informes/InformeListadoRecibosProvPendientes.fr3 index 0ca3ee6..48b3489 100644 --- a/Source/Informes/InformeListadoRecibosProvPendientes.fr3 +++ b/Source/Informes/InformeListadoRecibosProvPendientes.fr3 @@ -1,39 +1,36 @@ - + - - - - - - - + + + + - - + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + diff --git a/Source/Informes/InformeListadoRecibosProvPendientesDesglosado.fr3 b/Source/Informes/InformeListadoRecibosProvPendientesDesglosado.fr3 index 79c0d66..938d575 100644 --- a/Source/Informes/InformeListadoRecibosProvPendientesDesglosado.fr3 +++ b/Source/Informes/InformeListadoRecibosProvPendientesDesglosado.fr3 @@ -1,44 +1,41 @@ - + - - - - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + diff --git a/Source/Informes/InformeListadoRecibosProveedor.fr3 b/Source/Informes/InformeListadoRecibosProveedor.fr3 index d4175a6..8598921 100644 --- a/Source/Informes/InformeListadoRecibosProveedor.fr3 +++ b/Source/Informes/InformeListadoRecibosProveedor.fr3 @@ -1,39 +1,36 @@ - + - - - - - - - + + + + - - + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + diff --git a/Source/Informes/InformeListadoRecibosProveedorDesglosado.fr3 b/Source/Informes/InformeListadoRecibosProveedorDesglosado.fr3 index 016d497..2e681b4 100644 --- a/Source/Informes/InformeListadoRecibosProveedorDesglosado.fr3 +++ b/Source/Informes/InformeListadoRecibosProveedorDesglosado.fr3 @@ -1,44 +1,41 @@ - + - - - - - - - + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + diff --git a/Source/Lib/ApplicationBase.dcp b/Source/Lib/ApplicationBase.dcp index 0e2733d..5e5f011 100644 Binary files a/Source/Lib/ApplicationBase.dcp and b/Source/Lib/ApplicationBase.dcp differ diff --git a/Source/Lib/Base.dcp b/Source/Lib/Base.dcp index b8afc94..16409b4 100644 Binary files a/Source/Lib/Base.dcp and b/Source/Lib/Base.dcp differ diff --git a/Source/Lib/GUIBase.dcp b/Source/Lib/GUIBase.dcp index 0f548c0..d5a493a 100644 Binary files a/Source/Lib/GUIBase.dcp and b/Source/Lib/GUIBase.dcp differ diff --git a/Source/Modulos/Contabilidad/Views/Contabilidad_view.res b/Source/Modulos/Contabilidad/Views/Contabilidad_view.res index 1641339..8b251f3 100644 Binary files a/Source/Modulos/Contabilidad/Views/Contabilidad_view.res and b/Source/Modulos/Contabilidad/Views/Contabilidad_view.res differ diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas index 08dbf58..bb00fe5 100644 --- a/Source/Modulos/Contactos/Controller/uClientesController.pas +++ b/Source/Modulos/Contactos/Controller/uClientesController.pas @@ -3,7 +3,7 @@ unit uClientesController; interface uses - uCustomEditor, + uCustomEditor, Classes, uContactosController, uBizContactos, uBizDireccionesContacto, uIEditorClientes, uIEditorCliente, uIDataModuleContactos, uIDataModuleClientes, uDireccionesContactoController; @@ -22,6 +22,7 @@ type procedure PrintInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); procedure SetTieneSubcuenta(ACliente: IBizCliente; AValue: Boolean); procedure SetIgnorarContabilidad(ACliente: IBizCliente; AValue: Boolean); + function AsignarLOPD(AClientes: IBizCliente): TStringList; end; TClientesController = class(TContactosController, IClientesController) @@ -55,18 +56,44 @@ type procedure PrintInformeListaDatosContacto(ACliente : IBizCliente; AllItems: Boolean = false); procedure SetTieneSubcuenta(ACliente: IBizCliente; AValue: Boolean); procedure SetIgnorarContabilidad(ACliente: IBizCliente; AValue: Boolean); + function AsignarLOPD(AClientes: IBizCliente): TStringList; end; implementation uses - Forms, Classes, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, + Forms, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uListadosContactosReportController, uIEditorElegirClientes, uEditorGridBase, uDAInterfaces, uFactuGES_App, uIEditorElegirDireccionEntrega, Dialogs, uIntegerListUtils; { TClientesController } +function TClientesController.AsignarLOPD(AClientes: IBizCliente): TStringList; +//Devolverá la lista de clientes que no han podido ser cambiados a LOPD firmada +begin + Result := TStringList.Create; + + if Assigned(AClientes) then + begin + with AClientes.DataTable do + begin + First; + while not EOF do + begin + if (AClientes.LOPD <> 1) then + begin + Edit; + AClientes.LOPD := 1; + Post; + end; + Next; + end; + ApplyUpdates; + end; + end; +end; + function TClientesController.Buscar(const ID: Integer): IBizContacto; begin Result := (FDataModule as IDataModuleClientes).GetItem(ID); diff --git a/Source/Modulos/Contactos/Controller/uContactosController.pas b/Source/Modulos/Contactos/Controller/uContactosController.pas index b676142..02331dd 100644 --- a/Source/Modulos/Contactos/Controller/uContactosController.pas +++ b/Source/Modulos/Contactos/Controller/uContactosController.pas @@ -76,7 +76,7 @@ type implementation uses - Dialogs, uEditorRegistryUtils, cxControls, DB, uDAInterfaces, uDataTableUtils, + uStringsUtils, Dialogs, uEditorRegistryUtils, cxControls, DB, uDAInterfaces, uDataTableUtils, schContactosClient_Intf, uFactuGES_App, Variants, JSDialogs, JSDialog, uIEditorElegirPersonaContacto; @@ -390,6 +390,10 @@ begin end;} function TContactosController.ValidarContacto(AContacto: IBizContacto): Boolean; +var + NifCifTratado: String; + aaa: integer; + begin if not Assigned(AContacto) then raise Exception.Create ('Contacto no asignado'); @@ -400,9 +404,25 @@ begin if Length(AContacto.NOMBRE) = 0 then raise Exception.Create('Debe indicar al menos el nombre de este contacto.'); + if Length(AContacto.NIF_CIF) = 0 then + raise Exception.Create('Debe indicar el NIF/CIF del este contacto.') + else + begin + NifCifTratado := uStringsUtils.CadLimpiaCar(AContacto.NIF_CIF); + //Si es DNI/NIF + if TryStrToInt(Copy(NifCifTratado, 1, 1), aaa) then + begin + if not uStringsUtils.comprobarLetraNIF(NifCifTratado) then + raise Exception.Create('El DNI/NIF introducido no es correcto.') + end + else if not uStringsUtils.validarCIF(NifCifTratado) then + raise Exception.Create('El CIF introducido no es correcto.') + end; + // Asegurarse de valores en campos "automáticos" AContacto.Edit; AContacto.USUARIO := AppFactuGES.UsuarioActivo.UserName; + AContacto.NIF_CIF := NifCifTratado; AContacto.Post; Result := True; diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm index 3b556da..a7af312 100644 --- a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm @@ -19,6 +19,13 @@ inherited DataModuleClientes: TDataModuleClientes inherited ds_PersonalContacto: TDADataSource DataSet = tbl_PersonalContacto.Dataset end + inherited tbl_ContactosDirecciones: TDAMemDataTable + Left = 288 + Top = 160 + end + inherited ds_ContactosDirecciones: TDADataSource + DataSet = tbl_ContactosDirecciones.Dataset + end object tbl_Clientes: TDAMemDataTable RemoteUpdatesOptions = [] Fields = < @@ -288,6 +295,10 @@ inherited DataModuleClientes: TDataModuleClientes Size = 255 DisplayLabel = 'Otros nombres' DictionaryEntry = 'Clientes_LISTA_NOMBRES' + end + item + Name = 'LOPD' + DataType = datSmallInt end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] @@ -295,14 +306,14 @@ inherited DataModuleClientes: TDataModuleClientes LocalDataStreamer = Bin2DataStreamer LogicalName = 'Clientes' IndexDefs = <> - Left = 296 - Top = 168 + Left = 360 + Top = 144 end object ds_Clientes: TDADataSource DataSet = tbl_Clientes.Dataset DataTable = tbl_Clientes - Left = 296 - Top = 232 + Left = 360 + Top = 200 end object tbl_ClientesDescuentos: TDAMemDataTable RemoteUpdatesOptions = [] diff --git a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas index cff7254..10a885b 100644 --- a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas +++ b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas @@ -9,22 +9,22 @@ 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_DarEmpresasContacto = '{472CACD6-0E6A-41FE-9ED2-537C64ACA52C}'; - RID_PersonalContacto = '{E4677356-21EF-4ED1-8CB8-6E007EDC4768}'; - RID_DarTiendaDeUsuario = '{F51C8AFF-D2D5-4027-B7F1-4F2F18EE55DA}'; - RID_SubCuentasContacto = '{7386C05F-4BB8-4D5D-9840-421780DC9022}'; - RID_Contactos = '{904DED01-45A4-45B9-BD55-F4259DD90889}'; - RID_GruposCliente = '{6A6AF3F2-8FBC-40EE-BF53-F4FD0E8CD717}'; - RID_DatosBancarios = '{A5772889-F9BD-4947-8932-6F7537464FCA}'; - RID_ContactosDirecciones = '{1B5F181A-13BF-46E9-BAAE-0A86D07849F7}'; - RID_Clientes = '{517433C7-D932-4116-A80B-5F3FEF6C70AA}'; - RID_Proveedores = '{4A22961C-9423-43DF-A93F-46B2BD116C1B}'; - RID_Vendedores = '{1CBABDE6-D012-4FB9-A474-9258FCA38D25}'; - RID_DireccionesContacto = '{1E9A1687-E932-46C5-A964-59E06D2ADC6C}'; - RID_ClientesDescuentos = '{596AA9EC-5E5B-4049-BB5C-BA3375D822AB}'; - RID_ProcedenciasCliente = '{BD34109C-D29B-4E5B-8B19-BA583DF88C1A}'; - RID_GruposProveedor = '{24E55CF0-80E1-4754-87E4-440DFCDE8732}'; - RID_Contactos_Refresh = '{41366B21-52A6-4C32-82C7-A20158D2DDFC}'; + RID_DarEmpresasContacto = '{3DF020EA-5271-4506-A1E1-F56352A27564}'; + RID_PersonalContacto = '{B221E6A5-B945-4498-8360-54479172953F}'; + RID_DarTiendaDeUsuario = '{A507F3BA-5BD6-4615-BCD9-0E8FA9B7B28D}'; + RID_SubCuentasContacto = '{2F2E5BA1-C6F2-4DE4-B3B8-FC421C4EC640}'; + RID_Contactos = '{B536C491-082B-47EF-8C8D-A82F6D9D2D7C}'; + RID_GruposCliente = '{F12B9E93-476B-443E-BA2A-E268B2AAB12A}'; + RID_DatosBancarios = '{8E22C403-5181-4D0E-AC75-62491E2695A5}'; + RID_ContactosDirecciones = '{4953A4FB-07F9-4CE0-AD1C-B8CA384B81C5}'; + RID_Clientes = '{3D2718CC-26C4-4683-8E64-50146634CF04}'; + RID_Proveedores = '{05805FA0-E5E3-4EC6-B8E3-DC041BEAC9ED}'; + RID_Vendedores = '{18390BFA-6F9F-406E-958A-368A48B81814}'; + RID_DireccionesContacto = '{D2B45D83-5CEB-4853-9DA1-B5DB4D63F6E6}'; + RID_ClientesDescuentos = '{1A4C6382-E235-4EFC-A1D8-3C5EF966789E}'; + RID_ProcedenciasCliente = '{6722E249-E263-41B7-8CC6-9E0A7DD69150}'; + RID_GruposProveedor = '{D49F5735-A212-4160-95AC-404229DB30B3}'; + RID_Contactos_Refresh = '{39F8AB3C-6980-4652-8789-416699B21C34}'; { Data table names } nme_DarEmpresasContacto = 'DarEmpresasContacto'; @@ -253,6 +253,7 @@ const fld_ClientesVENCIMIENTO_FACTURAS_2 = 'VENCIMIENTO_FACTURAS_2'; fld_ClientesVENCIMIENTO_FACTURAS_3 = 'VENCIMIENTO_FACTURAS_3'; fld_ClientesLISTA_NOMBRES = 'LISTA_NOMBRES'; + fld_ClientesLOPD = 'LOPD'; { Clientes field indexes } idx_ClientesID = 0; @@ -297,6 +298,7 @@ const idx_ClientesVENCIMIENTO_FACTURAS_2 = 39; idx_ClientesVENCIMIENTO_FACTURAS_3 = 40; idx_ClientesLISTA_NOMBRES = 41; + idx_ClientesLOPD = 42; { Proveedores fields } fld_ProveedoresID = 'ID'; @@ -561,7 +563,7 @@ const type { IDarEmpresasContacto } IDarEmpresasContacto = interface(IDAStronglyTypedDataTable) - ['{8BB5E061-F364-4E04-9A15-3AF7CD963D9A}'] + ['{2E2E4717-0BCC-461F-839E-80397D21C23A}'] { Property getters and setters } function GetID_EMPRESAValue: Integer; procedure SetID_EMPRESAValue(const aValue: Integer); @@ -596,7 +598,7 @@ type { IPersonalContacto } IPersonalContacto = interface(IDAStronglyTypedDataTable) - ['{751C15E3-B72F-45A3-ACA6-EE5536294AB2}'] + ['{00FE2269-4B38-48BD-9F45-BE565B31B409}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -739,7 +741,7 @@ type { IDarTiendaDeUsuario } IDarTiendaDeUsuario = interface(IDAStronglyTypedDataTable) - ['{3FA2CF6E-3BD5-4061-8939-28C8FF90948F}'] + ['{D726985D-63CF-489E-8A97-B57952508077}'] { Property getters and setters } function GetID_TIENDAValue: Integer; procedure SetID_TIENDAValue(const aValue: Integer); @@ -774,7 +776,7 @@ type { ISubCuentasContacto } ISubCuentasContacto = interface(IDAStronglyTypedDataTable) - ['{9B286C57-728E-4B5D-B2B5-155391D6FFFD}'] + ['{C57E3BB1-04B7-4935-A1AB-8A2CE30E9ADD}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -869,7 +871,7 @@ type { IContactos } IContactos = interface(IDAStronglyTypedDataTable) - ['{069DC5F3-C775-4E5D-8F1B-0AB17E4A0D95}'] + ['{1F3CED53-7D09-4F9B-9670-297FEC5EF955}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1192,7 +1194,7 @@ type { IGruposCliente } IGruposCliente = interface(IDAStronglyTypedDataTable) - ['{ABBC4C99-5BB7-4AF5-A0E8-AC0330A292DB}'] + ['{2CF68BC2-220D-41B1-AF60-0626AF7B96A7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1239,7 +1241,7 @@ type { IDatosBancarios } IDatosBancarios = interface(IDAStronglyTypedDataTable) - ['{E86958FB-3553-4826-92AD-E05BB763F327}'] + ['{C38C692C-1EF7-4F83-8BA5-0C525A1C11A2}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1370,7 +1372,7 @@ type { IContactosDirecciones } IContactosDirecciones = interface(IDAStronglyTypedDataTable) - ['{7B0624ED-DAFE-4E73-8133-20B2F470DF6D}'] + ['{AAB1CE82-6232-4383-B55F-2E8589777974}'] { Property getters and setters } function GetID_CONTACTOValue: Integer; procedure SetID_CONTACTOValue(const aValue: Integer); @@ -1549,7 +1551,7 @@ type { IClientes } IClientes = interface(IDAStronglyTypedDataTable) - ['{16982591-D076-457A-A0CF-96642B3A2A21}'] + ['{A854EE5D-EBD2-4F66-AAA6-2E9C17111EAB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1718,6 +1720,10 @@ type procedure SetLISTA_NOMBRESValue(const aValue: String); function GetLISTA_NOMBRESIsNull: Boolean; procedure SetLISTA_NOMBRESIsNull(const aValue: Boolean); + function GetLOPDValue: SmallInt; + procedure SetLOPDValue(const aValue: SmallInt); + function GetLOPDIsNull: Boolean; + procedure SetLOPDIsNull(const aValue: Boolean); { Properties } @@ -1805,6 +1811,8 @@ type property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; property LISTA_NOMBRES: String read GetLISTA_NOMBRESValue write SetLISTA_NOMBRESValue; property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull; + property LOPD: SmallInt read GetLOPDValue write SetLOPDValue; + property LOPDIsNull: Boolean read GetLOPDIsNull write SetLOPDIsNull; end; { TClientesDataTableRules } @@ -1981,6 +1989,10 @@ type procedure SetLISTA_NOMBRESValue(const aValue: String); virtual; function GetLISTA_NOMBRESIsNull: Boolean; virtual; procedure SetLISTA_NOMBRESIsNull(const aValue: Boolean); virtual; + function GetLOPDValue: SmallInt; virtual; + procedure SetLOPDValue(const aValue: SmallInt); virtual; + function GetLOPDIsNull: Boolean; virtual; + procedure SetLOPDIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -2067,6 +2079,8 @@ type property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; property LISTA_NOMBRES: String read GetLISTA_NOMBRESValue write SetLISTA_NOMBRESValue; property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull; + property LOPD: SmallInt read GetLOPDValue write SetLOPDValue; + property LOPDIsNull: Boolean read GetLOPDIsNull write SetLOPDIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -2076,7 +2090,7 @@ type { IProveedores } IProveedores = interface(IDAStronglyTypedDataTable) - ['{6F8A315F-FC5F-44A3-AC1E-1179292FD039}'] + ['{89BA2688-D5D1-4D42-B4B2-11A450981F9E}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2603,7 +2617,7 @@ type { IVendedores } IVendedores = interface(IDAStronglyTypedDataTable) - ['{CFAFE9D4-4031-4014-A6A2-8666FD35CBF0}'] + ['{E64C6B17-5C91-42EE-AFC3-DB0E5AABA127}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2950,7 +2964,7 @@ type { IDireccionesContacto } IDireccionesContacto = interface(IDAStronglyTypedDataTable) - ['{C823E331-ED12-4669-B813-1C1F53612042}'] + ['{34A2A481-6FDF-417E-B69D-DCBC4E92361C}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3177,7 +3191,7 @@ type { IClientesDescuentos } IClientesDescuentos = interface(IDAStronglyTypedDataTable) - ['{55FA6AE2-4570-49F3-8C7C-8AA2FB3E1ABA}'] + ['{AEEAE1C7-A76E-4548-BE51-685D0B162D85}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3260,7 +3274,7 @@ type { IProcedenciasCliente } IProcedenciasCliente = interface(IDAStronglyTypedDataTable) - ['{45E13CDC-38AE-4866-8BF1-3DEDEC2C0A0A}'] + ['{C32557E0-EF58-48C4-9E8D-348E2CDF9459}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3307,7 +3321,7 @@ type { IGruposProveedor } IGruposProveedor = interface(IDAStronglyTypedDataTable) - ['{931D5150-8A05-4D86-890A-45F275BEE459}'] + ['{F4F95064-571E-44D1-A3D7-09DE82F63131}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3354,7 +3368,7 @@ type { IContactos_Refresh } IContactos_Refresh = interface(IDAStronglyTypedDataTable) - ['{47929F64-100A-45C5-A6CD-2A57178A1818}'] + ['{7B22CEBA-9A1F-41F0-8C22-E9CE518F9220}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -6041,6 +6055,27 @@ begin DataTable.Fields[idx_ClientesLISTA_NOMBRES].AsVariant := Null; end; +function TClientesDataTableRules.GetLOPDValue: SmallInt; +begin + result := DataTable.Fields[idx_ClientesLOPD].AsSmallInt; +end; + +procedure TClientesDataTableRules.SetLOPDValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_ClientesLOPD].AsSmallInt := aValue; +end; + +function TClientesDataTableRules.GetLOPDIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesLOPD].IsNull; +end; + +procedure TClientesDataTableRules.SetLOPDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesLOPD].AsVariant := Null; +end; + { TProveedoresDataTableRules } constructor TProveedoresDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas index 01ffb2e..6ff5386 100644 --- a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas +++ b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas @@ -9,27 +9,27 @@ 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_DarEmpresasContactoDelta = '{CA69F10E-9B4E-4274-90F7-56E33D84418F}'; - RID_PersonalContactoDelta = '{A14FBDB3-92F5-40ED-986A-D4461994FB85}'; - RID_DarTiendaDeUsuarioDelta = '{5481F88A-73AA-4432-89D7-22FC3C3F3AE1}'; - RID_SubCuentasContactoDelta = '{8DA04B44-EFAA-423F-AA30-ECCCDB94CFD1}'; - RID_ContactosDelta = '{DC868481-1C6B-408A-B9D9-86DD141BEFD9}'; - RID_GruposClienteDelta = '{47223648-73F6-483B-971C-00C1AC17E65F}'; - RID_DatosBancariosDelta = '{777B1DE9-1D9B-4127-97C6-D605FDA37D0B}'; - RID_ContactosDireccionesDelta = '{9C86AA9E-70BA-40CE-B5A5-38CF4A3B0735}'; - RID_ClientesDelta = '{D7F24E5E-CD4A-4BC2-B98C-E0B8AA57835A}'; - RID_ProveedoresDelta = '{D73D96B2-53E6-477D-82CB-B2A69AEEF86B}'; - RID_VendedoresDelta = '{C12214F4-2ED0-4099-AECB-945D42A72EDC}'; - RID_DireccionesContactoDelta = '{CFF3C192-A3B8-43FF-9F98-B29B4C4447BC}'; - RID_ClientesDescuentosDelta = '{56F5AE71-33E1-4D3B-AE18-8C1F47582366}'; - RID_ProcedenciasClienteDelta = '{47DFCD94-B340-485F-90B1-C9E217F3810D}'; - RID_GruposProveedorDelta = '{7DBF3455-38E2-45DE-BABC-280D7B6309AF}'; - RID_Contactos_RefreshDelta = '{7A25AA92-54F4-4D92-AD08-3382DDC351B6}'; + RID_DarEmpresasContactoDelta = '{8F89EA13-4300-4EF1-A765-B9F16B4D2F54}'; + RID_PersonalContactoDelta = '{8A8E62CB-05B7-468D-A8FA-1E0F7F020323}'; + RID_DarTiendaDeUsuarioDelta = '{C88504ED-116B-41EA-BFBB-6386B6B97166}'; + RID_SubCuentasContactoDelta = '{1E23A929-7818-4A84-9827-F44C026095BE}'; + RID_ContactosDelta = '{0A499049-0836-49EA-A0E8-48EFBC087814}'; + RID_GruposClienteDelta = '{DDC372FC-D1E5-4560-80DC-371EADCD7154}'; + RID_DatosBancariosDelta = '{1A23BE03-1CF1-425F-8508-2EA9F5EBFCE2}'; + RID_ContactosDireccionesDelta = '{A8A43023-CFC3-44E5-9C0C-0C11E6110F1E}'; + RID_ClientesDelta = '{3C5E5FFE-B6D2-45C5-AFFA-FB11993BF73A}'; + RID_ProveedoresDelta = '{933D6182-B6DB-40E9-BA65-D4DDA0FF63E4}'; + RID_VendedoresDelta = '{670CF45E-35ED-496D-ACB7-02E24F7EF991}'; + RID_DireccionesContactoDelta = '{110EC6A6-BC18-4C1D-A82C-B08E23345CCB}'; + RID_ClientesDescuentosDelta = '{4C4BEB48-604A-437D-9B23-77022C3B6C1F}'; + RID_ProcedenciasClienteDelta = '{EAF868C1-3667-4C24-A1A5-DE46896D0125}'; + RID_GruposProveedorDelta = '{37A333B0-4BB7-484E-B6AF-4A088F43EBFF}'; + RID_Contactos_RefreshDelta = '{214CA371-4CD0-44C9-BFD3-1888CA6C33D1}'; type { IDarEmpresasContactoDelta } IDarEmpresasContactoDelta = interface(IDarEmpresasContacto) - ['{CA69F10E-9B4E-4274-90F7-56E33D84418F}'] + ['{8F89EA13-4300-4EF1-A765-B9F16B4D2F54}'] { Property getters and setters } function GetOldID_EMPRESAValue : Integer; @@ -63,7 +63,7 @@ type { IPersonalContactoDelta } IPersonalContactoDelta = interface(IPersonalContacto) - ['{A14FBDB3-92F5-40ED-986A-D4461994FB85}'] + ['{8A8E62CB-05B7-468D-A8FA-1E0F7F020323}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -205,7 +205,7 @@ type { IDarTiendaDeUsuarioDelta } IDarTiendaDeUsuarioDelta = interface(IDarTiendaDeUsuario) - ['{5481F88A-73AA-4432-89D7-22FC3C3F3AE1}'] + ['{C88504ED-116B-41EA-BFBB-6386B6B97166}'] { Property getters and setters } function GetOldID_TIENDAValue : Integer; @@ -239,7 +239,7 @@ type { ISubCuentasContactoDelta } ISubCuentasContactoDelta = interface(ISubCuentasContacto) - ['{8DA04B44-EFAA-423F-AA30-ECCCDB94CFD1}'] + ['{1E23A929-7818-4A84-9827-F44C026095BE}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldREF_SUBCUENTAValue : String; @@ -333,7 +333,7 @@ type { IContactosDelta } IContactosDelta = interface(IContactos) - ['{DC868481-1C6B-408A-B9D9-86DD141BEFD9}'] + ['{0A499049-0836-49EA-A0E8-48EFBC087814}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -656,7 +656,7 @@ type { IGruposClienteDelta } IGruposClienteDelta = interface(IGruposCliente) - ['{47223648-73F6-483B-971C-00C1AC17E65F}'] + ['{DDC372FC-D1E5-4560-80DC-371EADCD7154}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -702,7 +702,7 @@ type { IDatosBancariosDelta } IDatosBancariosDelta = interface(IDatosBancarios) - ['{777B1DE9-1D9B-4127-97C6-D605FDA37D0B}'] + ['{1A23BE03-1CF1-425F-8508-2EA9F5EBFCE2}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -832,7 +832,7 @@ type { IContactosDireccionesDelta } IContactosDireccionesDelta = interface(IContactosDirecciones) - ['{9C86AA9E-70BA-40CE-B5A5-38CF4A3B0735}'] + ['{A8A43023-CFC3-44E5-9C0C-0C11E6110F1E}'] { Property getters and setters } function GetOldID_CONTACTOValue : Integer; function GetOldID_DIRECCIONValue : Integer; @@ -1010,7 +1010,7 @@ type { IClientesDelta } IClientesDelta = interface(IClientes) - ['{D7F24E5E-CD4A-4BC2-B98C-E0B8AA57835A}'] + ['{3C5E5FFE-B6D2-45C5-AFFA-FB11993BF73A}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -1054,6 +1054,7 @@ type function GetOldVENCIMIENTO_FACTURAS_2Value : Integer; function GetOldVENCIMIENTO_FACTURAS_3Value : Integer; function GetOldLISTA_NOMBRESValue : String; + function GetOldLOPDValue : SmallInt; { Properties } property OldID : Integer read GetOldIDValue; @@ -1098,6 +1099,7 @@ type property OldVENCIMIENTO_FACTURAS_2 : Integer read GetOldVENCIMIENTO_FACTURAS_2Value; property OldVENCIMIENTO_FACTURAS_3 : Integer read GetOldVENCIMIENTO_FACTURAS_3Value; property OldLISTA_NOMBRES : String read GetOldLISTA_NOMBRESValue; + property OldLOPD : SmallInt read GetOldLOPDValue; end; { TClientesBusinessProcessorRules } @@ -1358,6 +1360,12 @@ type function GetOldLISTA_NOMBRESIsNull: Boolean; virtual; procedure SetLISTA_NOMBRESValue(const aValue: String); virtual; procedure SetLISTA_NOMBRESIsNull(const aValue: Boolean); virtual; + function GetLOPDValue: SmallInt; virtual; + function GetLOPDIsNull: Boolean; virtual; + function GetOldLOPDValue: SmallInt; virtual; + function GetOldLOPDIsNull: Boolean; virtual; + procedure SetLOPDValue(const aValue: SmallInt); virtual; + procedure SetLOPDIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -1528,6 +1536,10 @@ type property LISTA_NOMBRESIsNull : Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull; property OldLISTA_NOMBRES : String read GetOldLISTA_NOMBRESValue; property OldLISTA_NOMBRESIsNull : Boolean read GetOldLISTA_NOMBRESIsNull; + property LOPD : SmallInt read GetLOPDValue write SetLOPDValue; + property LOPDIsNull : Boolean read GetLOPDIsNull write SetLOPDIsNull; + property OldLOPD : SmallInt read GetOldLOPDValue; + property OldLOPDIsNull : Boolean read GetOldLOPDIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -1537,7 +1549,7 @@ type { IProveedoresDelta } IProveedoresDelta = interface(IProveedores) - ['{D73D96B2-53E6-477D-82CB-B2A69AEEF86B}'] + ['{933D6182-B6DB-40E9-BA65-D4DDA0FF63E4}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -2064,7 +2076,7 @@ type { IVendedoresDelta } IVendedoresDelta = interface(IVendedores) - ['{C12214F4-2ED0-4099-AECB-945D42A72EDC}'] + ['{670CF45E-35ED-496D-ACB7-02E24F7EF991}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -2411,7 +2423,7 @@ type { IDireccionesContactoDelta } IDireccionesContactoDelta = interface(IDireccionesContacto) - ['{CFF3C192-A3B8-43FF-9F98-B29B4C4447BC}'] + ['{110EC6A6-BC18-4C1D-A82C-B08E23345CCB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -2638,7 +2650,7 @@ type { IClientesDescuentosDelta } IClientesDescuentosDelta = interface(IClientesDescuentos) - ['{56F5AE71-33E1-4D3B-AE18-8C1F47582366}'] + ['{4C4BEB48-604A-437D-9B23-77022C3B6C1F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CLIENTEValue : Integer; @@ -2720,7 +2732,7 @@ type { IProcedenciasClienteDelta } IProcedenciasClienteDelta = interface(IProcedenciasCliente) - ['{47DFCD94-B340-485F-90B1-C9E217F3810D}'] + ['{EAF868C1-3667-4C24-A1A5-DE46896D0125}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -2766,7 +2778,7 @@ type { IGruposProveedorDelta } IGruposProveedorDelta = interface(IGruposProveedor) - ['{7DBF3455-38E2-45DE-BABC-280D7B6309AF}'] + ['{37A333B0-4BB7-484E-B6AF-4A088F43EBFF}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -2812,7 +2824,7 @@ type { IContactos_RefreshDelta } IContactos_RefreshDelta = interface(IContactos_Refresh) - ['{7A25AA92-54F4-4D92-AD08-3382DDC351B6}'] + ['{214CA371-4CD0-44C9-BFD3-1888CA6C33D1}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldNIF_CIFValue : String; @@ -6592,6 +6604,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesLISTA_NOMBRES] := Null; end; +function TClientesBusinessProcessorRules.GetLOPDValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesLOPD]; +end; + +function TClientesBusinessProcessorRules.GetLOPDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesLOPD]); +end; + +function TClientesBusinessProcessorRules.GetOldLOPDValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesLOPD]; +end; + +function TClientesBusinessProcessorRules.GetOldLOPDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesLOPD]); +end; + +procedure TClientesBusinessProcessorRules.SetLOPDValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesLOPD] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetLOPDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesLOPD] := Null; +end; + { TProveedoresBusinessProcessorRules } constructor TProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Contactos/Model/uBizClientesServer.pas b/Source/Modulos/Contactos/Model/uBizClientesServer.pas index 2671cf6..20bcc7c 100644 --- a/Source/Modulos/Contactos/Model/uBizClientesServer.pas +++ b/Source/Modulos/Contactos/Model/uBizClientesServer.pas @@ -181,6 +181,8 @@ begin ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + ParamByName('LOPD').Value := aChange.NewValueByName[fld_ClientesLOPD]; + Execute; end; @@ -234,6 +236,8 @@ begin ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + ParamByName('LOPD').Value := aChange.NewValueByName[fld_ClientesLOPD]; + Execute; end; diff --git a/Source/Modulos/Contactos/Model/uBizContactos.pas b/Source/Modulos/Contactos/Model/uBizContactos.pas index addcc16..a96aea6 100644 --- a/Source/Modulos/Contactos/Model/uBizContactos.pas +++ b/Source/Modulos/Contactos/Model/uBizContactos.pas @@ -84,6 +84,9 @@ type function GetTIENDA_WEBValue: Integer; procedure SetTIENDA_WEBValue(const aValue: Integer); + function GetLOPDValue: Integer; + procedure SetLOPDValue(const aValue: Integer); + function GetDescuentos: IBizClienteDescuentos; procedure SetDescuentos(Value: IBizClienteDescuentos); property Descuentos: IBizClienteDescuentos read GetDescuentos write SetDescuentos; @@ -101,6 +104,7 @@ type property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property LOPD: Integer read GetLOPDValue write SetLOPDValue; function GetSubCuentas: IBizSubCuentasContacto; procedure SetSubCuentas(const Value: IBizSubCuentasContacto); @@ -306,6 +310,9 @@ type function GetSubCuentas: IBizSubCuentasContacto; procedure SetSubCuentas(const Value: IBizSubCuentasContacto); + function GetLOPDValue: Integer; + procedure SetLOPDValue(const aValue: Integer); + public procedure IniciarValoresContactoNuevo; override; constructor Create(aDataTable: TDADataTable); override; @@ -327,6 +334,7 @@ type property SubCuentas : IBizSubCuentasContacto read GetSubCuentas write SetSubCuentas; property IGNORAR_CONTABILIDAD: Integer read GetIgnorar_Contabilidad write SetIgnorar_Contabilidad; property TIENE_SUBCUENTA: Integer read GetTiene_SubCuenta write SetTiene_Subcuenta; + property LOPD: Integer read GetLOPDValue write SetLOPDValue; end; @@ -593,6 +601,11 @@ begin result := DataTable.Fields[idx_ClientesIGNORAR_CONTABILIDAD].AsInteger; end; +function TBizCliente.GetLOPDValue: Integer; +begin + result := DataTable.Fields[idx_ClientesLOPD].AsInteger; +end; + function TBizCliente.GetMOTIVO_BLOQUEOValue: String; begin result := DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString; @@ -639,6 +652,11 @@ begin DataTable.Fields[idx_ClientesIGNORAR_CONTABILIDAD].AsInteger := Value; end; +procedure TBizCliente.SetLOPDValue(const aValue: Integer); +begin + DataTable.Fields[idx_ClientesLOPD].AsInteger := aValue; +end; + procedure TBizCliente.SetMOTIVO_BLOQUEOValue(const aValue: String); begin DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString := aValue; @@ -740,6 +758,7 @@ begin inherited; ID_CATEGORIA := CATEGORIA_CLIENTE; BLOQUEADO := 0; + LOPD := 0; RECARGO_EQUIVALENCIA := CLIENTE_RECARGO_EQUIVALENCIA; REGIMEN_IVA := AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Clientes.RegimenIVA', CLIENTE_REGIMEN_IVA); diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm index 07d4dcc..af2e862 100644 --- a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm @@ -975,6 +975,10 @@ object srvContactos: TsrvContactos item DatasetField = 'LISTA_NOMBRES' TableField = 'LISTA_NOMBRES' + end + item + DatasetField = 'LOPD' + TableField = 'LOPD' end> end> Name = 'Clientes' @@ -1214,6 +1218,10 @@ object srvContactos: TsrvContactos DataType = datString Size = 255 DictionaryEntry = 'Clientes_LISTA_NOMBRES' + end + item + Name = 'LOPD' + DataType = datSmallInt end> end item @@ -2982,70 +2990,98 @@ object srvContactos: TsrvContactos Params = < item Name = 'ID_CLIENTE' + DataType = datInteger Value = '' end item Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 Value = '' end item Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt Value = '' end item Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 Value = '' end item Name = 'BLOQUEADO' + DataType = datSmallInt Value = '' end item Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 Value = '' end item Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 Value = '' end item Name = 'ID_TIPO_IVA' + DataType = datInteger Value = '' end item Name = 'ID_FORMA_PAGO' + DataType = datInteger Value = '' end item Name = 'TIENDA_WEB' + DataType = datSmallInt Value = '' end item Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 Value = '' end item Name = 'IGNORAR_CONTABILIDAD' + DataType = datInteger Value = '' end item Name = 'PROCEDENCIA_CLIENTE' + DataType = datString + Size = 255 Value = '' end item Name = 'TIENE_SUBCUENTA' + DataType = datInteger Value = '' end item Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datInteger Value = '' end item Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datInteger Value = '' end item Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datInteger + Value = '' + end + item + Name = 'LOPD' + DataType = datSmallInt Value = '' end> Statements = < @@ -3058,12 +3094,12 @@ object srvContactos: TsrvContactos 'UEO, REGIMEN_IVA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB,'#10' C' + 'ODIGO_ASIGNADO, IGNORAR_CONTABILIDAD, PROCEDENCIA_CLIENTE, TIENE' + '_SUBCUENTA,'#10' VENCIMIENTO_FACTURAS_1, VENCIMIENTO_FACTURAS_2,' + - ' VENCIMIENTO_FACTURAS_3)'#10' VALUES'#10' (:ID_CLIENTE, :GRUPO_CLIEN' + - 'TE, :RECARGO_EQUIVALENCIA, :NOMBRE_COMERCIAL, :BLOQUEADO,'#10' :' + - 'MOTIVO_BLOQUEO, :REGIMEN_IVA, :ID_TIPO_IVA, :ID_FORMA_PAGO, :TIE' + - 'NDA_WEB,'#10' :CODIGO_ASIGNADO, :IGNORAR_CONTABILIDAD, :PROCEDEN' + - 'CIA_CLIENTE, :TIENE_SUBCUENTA,'#10' :VENCIMIENTO_FACTURAS_1, :VE' + - 'NCIMIENTO_FACTURAS_2, :VENCIMIENTO_FACTURAS_3)'#10 + ' VENCIMIENTO_FACTURAS_3, LOPD)'#10' VALUES'#10' (:ID_CLIENTE, :GRUPO' + + '_CLIENTE, :RECARGO_EQUIVALENCIA, :NOMBRE_COMERCIAL, :BLOQUEADO,'#10 + + ' :MOTIVO_BLOQUEO, :REGIMEN_IVA, :ID_TIPO_IVA, :ID_FORMA_PAGO' + + ', :TIENDA_WEB,'#10' :CODIGO_ASIGNADO, :IGNORAR_CONTABILIDAD, :PR' + + 'OCEDENCIA_CLIENTE, :TIENE_SUBCUENTA,'#10' :VENCIMIENTO_FACTURAS_' + + '1, :VENCIMIENTO_FACTURAS_2, :VENCIMIENTO_FACTURAS_3, :LOPD)'#10 StatementType = stSQL ColumnMappings = <> end> @@ -3093,70 +3129,98 @@ object srvContactos: TsrvContactos Params = < item Name = 'ID_CLIENTE' + DataType = datInteger Value = '' end item Name = 'GRUPO_CLIENTE' + DataType = datString + Size = 255 Value = '' end item Name = 'MOTIVO_BLOQUEO' + DataType = datString + Size = 255 Value = '' end item Name = 'RECARGO_EQUIVALENCIA' + DataType = datSmallInt Value = '' end item Name = 'NOMBRE_COMERCIAL' + DataType = datString + Size = 255 Value = '' end item Name = 'BLOQUEADO' + DataType = datSmallInt Value = '' end item Name = 'REGIMEN_IVA' + DataType = datString + Size = 255 Value = '' end item Name = 'ID_TIPO_IVA' + DataType = datInteger Value = '' end item Name = 'ID_FORMA_PAGO' + DataType = datInteger Value = '' end item Name = 'TIENDA_WEB' + DataType = datSmallInt Value = '' end item Name = 'CODIGO_ASIGNADO' + DataType = datString + Size = 255 Value = '' end item Name = 'IGNORAR_CONTABILIDAD' + DataType = datInteger Value = '' end item Name = 'TIENE_SUBCUENTA' + DataType = datInteger Value = '' end item Name = 'PROCEDENCIA_CLIENTE' + DataType = datString + Size = 255 Value = '' end item Name = 'VENCIMIENTO_FACTURAS_1' + DataType = datInteger Value = '' end item Name = 'VENCIMIENTO_FACTURAS_2' + DataType = datInteger Value = '' end item Name = 'VENCIMIENTO_FACTURAS_3' + DataType = datInteger + Value = '' + end + item + Name = 'LOPD' + DataType = datSmallInt Value = '' end item @@ -3179,7 +3243,8 @@ object srvContactos: TsrvContactos ','#10' PROCEDENCIA_CLIENTE = :PROCEDENCIA_CLIENTE,'#10' VENCIMIENT' + 'O_FACTURAS_1 = :VENCIMIENTO_FACTURAS_1,'#10' VENCIMIENTO_FACTURAS' + '_2 = :VENCIMIENTO_FACTURAS_2,'#10' VENCIMIENTO_FACTURAS_3 = :VENC' + - 'IMIENTO_FACTURAS_3'#10' WHERE'#10' (ID_CLIENTE = :OLD_ID_CLIENTE)'#10 + 'IMIENTO_FACTURAS_3,'#10' LOPD = :LOPD'#10' WHERE'#10' (ID_CLIENTE = :' + + 'OLD_ID_CLIENTE)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm index cf09405..95c461e 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.dfm +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -57,6 +57,17 @@ inherited fEditorClientes: TfEditorClientes inherited tbxMenu: TTBXToolbar ExplicitWidth = 786 end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + Visible = True + ExplicitLeft = 275 + ExplicitWidth = 67 + object TBXItem38: TTBXItem + Action = actLOPD + DisplayMode = nbdmImageAndText + end + end end inherited StatusBar: TJvStatusBar Top = 500 @@ -120,15 +131,27 @@ inherited fEditorClientes: TfEditorClientes Width = 240 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 564 + Left = 344 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 564 + ExplicitLeft = 344 ExplicitWidth = 121 Width = 121 end + inherited edtFecha2FinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFecha2IniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 786 @@ -180,6 +203,13 @@ inherited fEditorClientes: TfEditorClientes ImageIndex = 23 OnExecute = actGruposClienteExecute end + object actLOPD: TAction + Category = 'Acciones' + Caption = 'GDPR' + ImageIndex = 24 + OnExecute = actLOPDExecute + OnUpdate = actLOPDUpdate + end end inherited SmallImages: TPngImageList [5] PngImages = < @@ -723,6 +753,29 @@ inherited fEditorClientes: TfEditorClientes 00000049454E44AE426082} Name = 'PngImage23' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA + 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929 + CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0 + 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915 + EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF + B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED + FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E + 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B + 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2 + E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B + C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7 + CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5 + 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80 + 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91 + A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E + 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000 + 49454E44AE426082} + Name = 'PngImage24' + Background = clWindow end> Bitmap = {} end diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas index b7bcd1c..4f5ba49 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.pas +++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas @@ -21,7 +21,11 @@ type actGruposCliente: TAction; JsListaContactosNoEliminados: TJSDialog; frViewClientes1: TfrViewClientes; + actLOPD: TAction; + TBXItem38: TTBXItem; procedure actGruposClienteExecute(Sender: TObject); + procedure actLOPDExecute(Sender: TObject); + procedure actLOPDUpdate(Sender: TObject); protected procedure ImprimirInterno; override; procedure PrevisualizarInterno; override; @@ -59,6 +63,42 @@ begin end; end; +procedure TfEditorClientes.actLOPDExecute(Sender: TObject); +var + AClientes: IBizCliente; + AListaClientesNoModificados: TStringList; + i: integer; + +begin + inherited; + + ViewGrid.SaveGridStatus; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); + AClientes := (Controller as IClientesController).ExtraerSeleccionados(Contactos) as IBizCliente; + finally + ViewGrid.RestoreGridStatus; + end; + + (Controller as IClientesController).AsignarLOPD(AClientes); + + if (AClientes.DataTable.RecordCount > 0) then + RefrescarInterno; +end; + +procedure TfEditorClientes.actLOPDUpdate(Sender: TObject); +begin + inherited; + + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and ViewGrid.esSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; + +end; + constructor TfEditorClientes.Create(AOwner: TComponent); begin inherited; diff --git a/Source/Modulos/Contactos/Views/uEditorContactos.dfm b/Source/Modulos/Contactos/Views/uEditorContactos.dfm index 1870c0b..357b021 100644 --- a/Source/Modulos/Contactos/Views/uEditorContactos.dfm +++ b/Source/Modulos/Contactos/Views/uEditorContactos.dfm @@ -2,6 +2,8 @@ inherited fEditorContactos: TfEditorContactos Left = 285 Top = 448 Caption = 'Lista de contactos' + ExplicitWidth = 320 + ExplicitHeight = 240 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader diff --git a/Source/Modulos/Contactos/Views/uViewClientes.dfm b/Source/Modulos/Contactos/Views/uViewClientes.dfm index 996445f..1a54884 100644 --- a/Source/Modulos/Contactos/Views/uViewClientes.dfm +++ b/Source/Modulos/Contactos/Views/uViewClientes.dfm @@ -15,15 +15,24 @@ inherited frViewClientes: TfrViewClientes Kind = skCount Column = cxGridViewNIF_CIF end> - object cxGridViewBLOQUEADO: TcxGridDBColumn [1] - DataBinding.FieldName = 'BLOQUEADO' - PropertiesClassName = 'TcxTextEditProperties' - Visible = False - BestFitMaxWidth = 22 - MinWidth = 22 + object cxGridViewLOPD: TcxGridDBColumn [1] + Caption = 'GDPR' + DataBinding.FieldName = 'LOPD' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Images = PngImageList + Properties.Items = < + item + Value = 0 + end + item + ImageIndex = 3 + Value = 1 + end> + BestFitMaxWidth = 40 + MinWidth = 40 Options.HorzSizing = False VisibleForCustomization = False - Width = 22 + Width = 40 end object cxGridViewTiendaWeb: TcxGridDBColumn [2] Caption = 'Acceso a tienda web' @@ -104,15 +113,27 @@ inherited frViewClientes: TfrViewClientes Width = 217 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 271 + Left = 321 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 271 + ExplicitLeft = 321 ExplicitWidth = 427 Width = 427 end + inherited edtFecha2FinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFecha2IniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 633 @@ -560,6 +581,29 @@ inherited frViewClientes: TfrViewClientes 97FDD7DBF8AFCF7740E00D20BA266C3A0000000049454E44AE426082} Name = 'PngImage2' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000001DA4944415478DA + 63FCFFFF3F032580912C5DF2F33964B539E3DF7DF8F1956403380CE7C85B5929 + CFFAF99ED7FCFCED9BE124192060B7D8D6CE5279E99B876C42674FFC0CFEF9C0 + 7A27D10628FBAF0FB030915F74E7EA6FE6F387FF87FD7A6AB195E83090F55915 + EEE7A23BE7FCD9CFAC170EFF4EFDF6C07A31D18128E1BE3CC8DB597BE1A3BBBF + B98EECFA91FBFDBEF574A0F07FA20C10B09B67EBE366B8E3CDF37F9C47F77CED + FC7CD3AE125D0DC400B3897C9CCCBCEADFD9182F331C4CFC010E6DCB39F29E0E + 3A07599939E477AE7FBFFBE3CF4BBE0C77F27F621820EAB848DFDC447931372B + 9FE68E5DF7577F3C73368E414588D9C6496BB3AA92B8CBDECD9FDEBC7CF9D3F2 + E71DE7BBD85CC928EAB438C4C7556F3A0B1B8BC8B1BD9FFFDE7B753F4C41994B + C3CA48B1E5F09ECFFFEF3F7D19F3FB5AD0725CDE047B41276243A09D85FAAAA7 + CFBFB11CDEFBEA8EA79F98E4C3FBBFB8CF9F7BBDE5EB453F3FE440C31E060CF5 + 4C4ED9F63B6565845D5EBEFEF29F11287AE9C4AF2FAFBF3D32FF753EFE3ABE80 + 86C7028FF5429B101F83FDCF5F7F66797697E1FFCDDB6FA7FFBAE69F4D289A91 + A2B19EC539C7E1C49BC7EC46F71EBDD9FFF9DFD338868B994F4930808181D76E + 413EF33F56D90F0F5ED4323C29FE4E4833080000904EC47A3EA3126900000000 + 49454E44AE426082} + Name = 'PngImage3' + Background = clWindow end> Left = 64 Top = 48 diff --git a/Source/Modulos/Contactos/Views/uViewClientes.pas b/Source/Modulos/Contactos/Views/uViewClientes.pas index bf7c42a..1d1c8c7 100644 --- a/Source/Modulos/Contactos/Views/uViewClientes.pas +++ b/Source/Modulos/Contactos/Views/uViewClientes.pas @@ -23,7 +23,7 @@ type TfrViewClientes = class(TfrViewContactos, IViewClientes) cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn; - cxGridViewBLOQUEADO: TcxGridDBColumn; + cxGridViewLOPD: TcxGridDBColumn; cxGridViewTiendaWeb: TcxGridDBColumn; cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; cxGridViewFECHA_ALTA: TcxGridDBColumn; @@ -52,7 +52,7 @@ begin R := AViewInfo.ContentBounds; ACanvas.FillRect(R); if (cxGridView.DataController.DisplayTexts[AViewInfo.GridRecord.RecordIndex, - cxGridViewBLOQUEADO.Index] = '1') then + cxGridViewLOPD.Index] = '1') then ACanvas.DrawImage(PngImageList, R.Left + 2, R.Top + 2, 2) else ACanvas.DrawImage(PngImageList, R.Left + 2, R.Top + 2, 1); diff --git a/Source/Modulos/Contactos/Views/uViewContacto.dfm b/Source/Modulos/Contactos/Views/uViewContacto.dfm index f9eba4b..0d17742 100644 --- a/Source/Modulos/Contactos/Views/uViewContacto.dfm +++ b/Source/Modulos/Contactos/Views/uViewContacto.dfm @@ -610,7 +610,6 @@ inherited frViewContacto: TfrViewContacto end object dxLayoutControlContactoItem9: TdxLayoutItem Caption = 'Tlf.2:' - Visible = False Control = eTlfParticular ControlOptions.ShowBorder = False end diff --git a/Source/Modulos/Contactos/Views/uViewContactos.dfm b/Source/Modulos/Contactos/Views/uViewContactos.dfm index bed8ad6..66de21b 100644 --- a/Source/Modulos/Contactos/Views/uViewContactos.dfm +++ b/Source/Modulos/Contactos/Views/uViewContactos.dfm @@ -66,19 +66,20 @@ inherited frViewContactos: TfrViewContactos Width = 40 end object cxGridViewTELEFONO_1: TcxGridDBColumn - Caption = 'Tlf. trabajo' + Caption = 'Tlf. 1' DataBinding.FieldName = 'TELEFONO_1' BestFitMaxWidth = 70 Width = 70 end object cxGridViewTELEFONO_2: TcxGridDBColumn - Caption = 'Tlf. particular' + Caption = 'Tlf. 2' DataBinding.FieldName = 'TELEFONO_2' Visible = False BestFitMaxWidth = 70 Width = 70 end object cxGridViewMOVIL_1: TcxGridDBColumn + Caption = 'Tlf. 3' DataBinding.FieldName = 'MOVIL_1' BestFitMaxWidth = 70 Width = 70 diff --git a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj index ef076c1..f6de847 100644 --- a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj +++ b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj @@ -23,6 +23,7 @@ + @@ -321,14 +322,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas index 3229157..beba6bf 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas @@ -859,9 +859,7 @@ begin ACadena := AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_CALIDADES_COCINA); if (ACadena <> '') then AContrato.CALIDADES.Add(ACadena); - (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA ', False, AContrato.Detalles); - (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, AContrato.Detalles); - (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR ', False, AContrato.Detalles); + (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA ', true, AContrato.Detalles); end; teArmario: begin @@ -891,7 +889,6 @@ begin if (ACadena <> '') then AContrato.CALIDADES.Add(ACadena); (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_B, 'MUEBLE DE BAÑO Nº ', true, AContrato.Detalles); - (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, AContrato.Detalles); end; teElectrodomestico: begin diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas index e3b2018..2966124 100644 --- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas +++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas @@ -3,7 +3,7 @@ unit schContratosClienteClient_Intf; interface uses - Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; const { Data table rules ids @@ -279,7 +279,7 @@ type end; { TValoresDataTableRules } - TValoresDataTableRules = class(TDADataTableRules, IValores) + TValoresDataTableRules = class(TIntfObjectDADataTableRules, IValores) private protected { Property getters and setters } @@ -338,7 +338,7 @@ type end; { TPropiedadesDataTableRules } - TPropiedadesDataTableRules = class(TDADataTableRules, IPropiedades) + TPropiedadesDataTableRules = class(TIntfObjectDADataTableRules, IPropiedades) private protected { Property getters and setters } @@ -385,7 +385,7 @@ type end; { TListaAnosContratosDataTableRules } - TListaAnosContratosDataTableRules = class(TDADataTableRules, IListaAnosContratos) + TListaAnosContratosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosContratos) private protected { Property getters and setters } @@ -504,7 +504,7 @@ type end; { TContratosClienteBeneficiosDataTableRules } - TContratosClienteBeneficiosDataTableRules = class(TDADataTableRules, IContratosClienteBeneficios) + TContratosClienteBeneficiosDataTableRules = class(TIntfObjectDADataTableRules, IContratosClienteBeneficios) private protected { Property getters and setters } @@ -929,7 +929,7 @@ type end; { TContratosClienteDataTableRules } - TContratosClienteDataTableRules = class(TDADataTableRules, IContratosCliente) + TContratosClienteDataTableRules = class(TIntfObjectDADataTableRules, IContratosCliente) private f_FORMA_PAGO: IROStrings; f_PLAZO_ENTREGA: IROStrings; @@ -1315,7 +1315,7 @@ type end; { TTiposCapitulosDataTableRules } - TTiposCapitulosDataTableRules = class(TDADataTableRules, ITiposCapitulos) + TTiposCapitulosDataTableRules = class(TIntfObjectDADataTableRules, ITiposCapitulos) private protected { Property getters and setters } @@ -1476,7 +1476,7 @@ type end; { TContratosCliente_DetallesDataTableRules } - TContratosCliente_DetallesDataTableRules = class(TDADataTableRules, IContratosCliente_Detalles) + TContratosCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IContratosCliente_Detalles) private protected { Property getters and setters } diff --git a/Source/Modulos/Contratos de cliente/Model/uBizDetallesContratoCliente.pas b/Source/Modulos/Contratos de cliente/Model/uBizDetallesContratoCliente.pas index 9070ee9..ee9d656 100644 --- a/Source/Modulos/Contratos de cliente/Model/uBizDetallesContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Model/uBizDetallesContratoCliente.pas @@ -40,6 +40,7 @@ end; procedure TBizDetallesContratoCliente.OnNewRecord(Sender: TDADataTable); begin inherited; + CANTIDAD := 1; VISIBLE := 1; VISIBLE2 := 1; end; diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm index db98b70..1b1018e 100644 --- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm +++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm @@ -204,8 +204,9 @@ object RptContratosCliente: TRptContratosCliente 'IENTE.MOVIL,'#10' V_CONTRATOS_CLIENTE.IMPORTE_IVA, V_CONTRATOS_CL' + 'IENTE.IMPORTE_TOTAL,'#10' V_CONTRATOS_CLIENTE.PERSONA_CONTACTO,'#10' ' + ' V_CONTRATOS_CLIENTE.VENDEDOR,'#10' V_CONTRATOS_CLIENTE.TIPO_CO' + - 'NTRATO,'#10' V_CONTRATOS_CLIENTE.CONDICIONES'#10'FROM'#10' V_CONTRATOS' + - '_CLIENTE'#10'WHERE'#10' V_CONTRATOS_CLIENTE.ID = :ID'#10 + 'NTRATO,'#10' V_CONTRATOS_CLIENTE.CONDICIONES,'#10' V_CONTRATOS_CLI' + + 'ENTE.LOPD'#10'FROM'#10' V_CONTRATOS_CLIENTE'#10'WHERE'#10' V_CONTRATOS_CLI' + + 'ENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -335,14 +336,14 @@ object RptContratosCliente: TRptContratosCliente item DatasetField = 'CALIDADES' TableField = 'CALIDADES' + end + item + DatasetField = 'LOPD' + TableField = 'LOPD' end> end> Name = 'Informe_Cabecera' Fields = < - item - Name = 'CALIDADES' - DataType = datMemo - end item Name = 'ID' DataType = datInteger @@ -372,6 +373,10 @@ object RptContratosCliente: TRptContratosCliente Name = 'OBSERVACIONES' DataType = datMemo end + item + Name = 'CALIDADES' + DataType = datMemo + end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -479,6 +484,10 @@ object RptContratosCliente: TRptContratosCliente item Name = 'CONDICIONES' DataType = datMemo + end + item + Name = 'LOPD' + DataType = datSmallInt end> ReadOnly = True end @@ -1082,6 +1091,10 @@ object RptContratosCliente: TRptContratosCliente Name = 'OBSERVACIONES' DataType = datMemo end + item + Name = 'CALIDADES' + DataType = datMemo + end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -1189,6 +1202,10 @@ object RptContratosCliente: TRptContratosCliente item Name = 'CONDICIONES' DataType = datMemo + end + item + Name = 'LOPD' + DataType = datSmallInt end> Params = < item diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm index 7b58ad9..c0c6ae6 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm @@ -2583,12 +2583,12 @@ inherited fEditorContratosCliente: TfEditorContratosCliente Instruction.Icon = tdiCustom CustomButtons = < item - Caption = 'Previsualizar el contrato/s seleccionado/s' + Caption = 'Previsualizar el presupuesto/s seleccionado/s' Value = 100 Default = True end item - Caption = 'Previsualizar la lista de contratos actual' + Caption = 'Previsualizar la lista de presupuestos actual' Value = 200 end> ButtonBar.Buttons = [cbCancel] @@ -2894,12 +2894,12 @@ inherited fEditorContratosCliente: TfEditorContratosCliente Instruction.Icon = tdiCustom CustomButtons = < item - Caption = 'Imprimir el contrato/s seleccionado/s' + Caption = 'Imprimir el presupuesto/s seleccionado/s' Value = 100 Default = True end item - Caption = 'Imprimir la lista de contratos actual' + Caption = 'Imprimir la lista de presupuestos actual' Value = 200 end> ButtonBar.Buttons = [cbCancel] diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm index f1960d7..f08bbd7 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm @@ -4,8 +4,9 @@ inherited frViewContratosCliente: TfrViewContratosCliente ExplicitWidth = 903 ExplicitHeight = 525 inherited cxGrid: TcxGrid + Top = 130 Width = 903 - Height = 397 + Height = 369 RootLevelOptions.DetailTabsPosition = dtpTop OnActiveTabChanged = cxGridActiveTabChanged ExplicitWidth = 903 @@ -172,40 +173,71 @@ inherited frViewContratosCliente: TfrViewContratosCliente end inherited frViewFiltroBase1: TfrViewFiltroBase Width = 903 + Height = 130 ExplicitWidth = 903 + ExplicitHeight = 130 inherited TBXDockablePanel1: TTBXDockablePanel ExplicitWidth = 903 inherited dxLayoutControl1: TdxLayoutControl Width = 903 + Height = 100 ExplicitWidth = 903 inherited txtFiltroTodo: TcxTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 806 - Width = 806 end inherited edtFechaIniFiltro: TcxDateEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 285 - Width = 285 + ExplicitWidth = 200 + Width = 200 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 389 + Left = 333 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 389 - ExplicitWidth = 504 - Width = 504 + ExplicitLeft = 333 + end + inherited edtFecha2FinFiltro: TcxDateEdit + Left = 333 + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 333 + ExplicitWidth = 200 + Width = 200 + end + inherited edtFecha2IniFiltro: TcxDateEdit + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 200 + Width = 200 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group4: TdxLayoutGroup + Enabled = True + Visible = True + inherited dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Entre fecha decisi'#243'n:' + end + end + end end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Top = 100 Width = 903 ExplicitWidth = 903 inherited tbxBotones: TTBXToolbar @@ -214,14 +246,6 @@ inherited frViewContratosCliente: TfrViewContratosCliente end end end - inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList - Left = 56 - end - inherited ActionList1: TActionList - inherited actQuitarFiltro: TAction - OnExecute = frViewFiltroBase1actQuitarFiltroExecute - end - end end inherited pnlAgrupaciones: TTBXDockablePanel Top = 499 diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas index 538a51f..4dadc7c 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas @@ -120,10 +120,13 @@ procedure TfrViewContratosCliente.AnadirFiltroFechas; var Columna: TcxGridDBColumn; Fecha1, Fecha2: Variant; + FechaDecision1, FechaDecision2: Variant; FFiltro : TcxFilterCriteriaItemList; begin Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + FechaDecision1 := frViewFiltroBase1.edtFecha2IniFiltro.EditValue; + FechaDecision2 := frViewFiltroBase1.edtFecha2FinFiltro.EditValue; if not VarIsNull(Fecha1) and not VarIsNull(Fecha2) then @@ -134,6 +137,17 @@ begin Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_CONTRATO'); FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); end; + + if not VarIsNull(FechaDecision1) + and not VarIsNull(FechaDecision2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_DECISION'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([FechaDecision1, FechaDecision2]), VarToStr(FechaDecision1) + ' and ' + VarToStr(FechaDecision2)); + end; + end; procedure TfrViewContratosCliente.AnadirFiltroSituaciones; diff --git a/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.dfm index bab3f51..330cc18 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.dfm @@ -61,6 +61,7 @@ inherited frViewDetallesContratoCliente: TfrViewDetallesContratoCliente end inherited TBXDock1: TTBXDock inherited TBXToolbar1: TTBXToolbar + DockPos = 0 object TBXSubmenuItem1: TTBXSubmenuItem [0] Caption = 'A'#241'adir cap'#237'tulo' DisplayMode = nbdmImageAndText @@ -74,6 +75,9 @@ inherited frViewDetallesContratoCliente: TfrViewDetallesContratoCliente end object TBXSeparatorItem10: TTBXSeparatorItem end + object TBXItem23: TTBXItem + Action = actCapituloEncimeras + end object TBXItem19: TTBXItem Action = actCapituloElectrodomesticos Caption = 'Cap'#237'tulo de electrodom'#233'sticos' @@ -232,6 +236,11 @@ inherited frViewDetallesContratoCliente: TfrViewDetallesContratoCliente Caption = 'Cap'#237'tulo de obra' OnExecute = actCapituloObraExecute end + object actCapituloEncimeras: TAction + Category = 'Operaciones' + Caption = 'Cap'#237'tulo de encimeras' + OnExecute = actCapituloEncimerasExecute + end end inherited cxStyleRepository: TcxStyleRepository inherited cxStyle_IMPORTETOTAL: TcxStyle diff --git a/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.pas b/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.pas index a9e923f..75e6df8 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uViewDetallesContratoCliente.pas @@ -58,6 +58,8 @@ type actCapituloObra: TAction; TBXItem22: TTBXItem; cxLookupComboBox2: TcxLookupComboBox; + actCapituloEncimeras: TAction; + TBXItem23: TTBXItem; procedure actAsignarDescuentoExecute(Sender: TObject); procedure actAsignarDescuentoUpdate(Sender: TObject); procedure CustomViewShow(Sender: TObject); @@ -77,6 +79,7 @@ type procedure CustomViewDestroy(Sender: TObject); procedure actCapituloObraExecute(Sender: TObject); procedure cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject); + procedure actCapituloEncimerasExecute(Sender: TObject); private procedure AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean = false); @@ -183,9 +186,7 @@ end; procedure TfrViewDetallesContratoCliente.actCapituloCocinaExecute(Sender: TObject); begin - AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA '); - AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True); - AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR '); + AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA ', true); end; procedure TfrViewDetallesContratoCliente.actCapituloElectrodomesticosExecute(Sender: TObject); @@ -193,6 +194,13 @@ begin AnadirCapitulo(TIPO_CAPITULO_E, 'ELECTRODOMÉSTICOS ', true); end; +procedure TfrViewDetallesContratoCliente.actCapituloEncimerasExecute( + Sender: TObject); +begin + inherited; + AnadirCapitulo(TIPO_CAPITULO_V, 'ENCIMERAS ', true); +end; + procedure TfrViewDetallesContratoCliente.actCapituloImportesExecute(Sender: TObject); begin AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', true); diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 0880735..095a7de 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -1051,12 +1051,15 @@ begin if not Assigned(AFactura) then raise Exception.Create ('Factura no asignado: EsModificable'); +{ if (AFactura.SITUACION <> CTE_PENDIENTE) then begin Result := False; AComentario := 'La factura esta parcial o totalmente pagada, por lo que no puede ser modificada'; end - else if (AFactura.ESTADO_EJERCICIO = CTE_CERRADO) then + else +} + if (AFactura.ESTADO_EJERCICIO = CTE_CERRADO) then begin Result := False; AComentario := 'La factura tiene un asiento asociado en la parte contable cuyo ejercicio esta cerrado, por lo que no puede ser modificada'; diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm index e2617f3..675cf91 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm @@ -139,32 +139,44 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente end inherited edtlNombre: TcxDBTextEdit DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitWidth = 276 Width = 276 end inherited edtNIFCIF: TcxDBTextEdit DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitWidth = 276 Width = 276 end inherited edtCalle: TcxDBTextEdit DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitWidth = 276 Width = 276 end inherited edtPoblacion: TcxDBTextEdit DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitWidth = 158 Width = 158 end inherited edtProvincia: TcxDBTextEdit DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitWidth = 276 Width = 276 end inherited edtCodigoPostal: TcxDBTextEdit Left = 244 DataBinding.DataSource = dsDataTable + Enabled = True + Properties.ReadOnly = False ExplicitLeft = 244 end inherited Button3: TBitBtn diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas index 9f9cd4a..d233568 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas @@ -104,7 +104,8 @@ begin inherited; if (Sender as TAction).Enabled then (Sender as TAction).Enabled := (FFactura.SITUACION = 'PENDIENTE') and - (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR); + ((AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR) + or (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA)) end; constructor TfEditorFacturaCliente.Create(AOwner: TComponent); diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm index 9d39778..71a75f8 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -80,11 +80,15 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Left = 431 Visible = True ExplicitLeft = 431 - ExplicitWidth = 83 + ExplicitWidth = 195 object TBXItem42: TTBXItem Action = actCambiarSituacion DisplayMode = nbdmImageAndText end + object TBXItem43: TTBXItem + Action = actVerPresupuesto + DisplayMode = nbdmImageAndText + end object TBXSeparatorItem17: TTBXSeparatorItem end object TBXItem40: TTBXItem @@ -217,19 +221,27 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 144 - Width = 144 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 301 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 301 ExplicitWidth = 263 Width = 263 end + inherited edtFecha2FinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFecha2IniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 640 @@ -318,6 +330,13 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Visible = False OnExecute = actCambiarSituacionExecute end + object actVerPresupuesto: TAction + Category = 'Archivo' + Caption = 'Ver presupuesto' + ImageIndex = 27 + OnExecute = actVerPresupuestoExecute + OnUpdate = actVerPresupuestoUpdate + end end inherited SmallImages: TPngImageList [5] PngImages = < @@ -1084,6 +1103,26 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente AE426082} Name = 'PngImage26' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001774944415478DA + 63FCFFFF3FC384055BFF3390010A12BC1919610600394469FAF3F71FC3EF3F7F + 192CBCB3192EEE99856A80C35E4B14C5079C8F836964F1ED368718662EDFC530 + 7FC9464C03F0815FBFFF826D06D10BD7EDC36E00BA0BB0815586BB18966D3A84 + DB0098B341E01F50EECF9F7F709B034F3B312CD3DDC1B06ADB11FC06C05CB2CB + EE0883DB211BB8CD61E7DD18166A6E6558BFEB387E03D06DFEFDE70F981F75D9 + 8361AEEA2686CDFB4EE136609FD33106A77D56605BD79BEE033B1B044036C75F + F76698AEB88161E7A133B80D00391BDDE69FBFFE30FC028AA5DFF567E8975CCD + 70F0D4454C0372623D195C0E58A384F862ED6D0CB157BDC0EC2972EB18721E05 + 317489AE643876EE32A601E9916E605BFEFCFE07B639E2A23BC37CF52D60B1DF + BF21B8F0792843ABE03286D397AE611A9018EA0CD70CF202CC6674D0C0BB98E1 + C2B59B9806C40638C23583FC8D6CF36F688C80F0BF7FFF192EDDB8856940848F + 2DC38A2D8789CE89180680044805200300115980F04CC063740000000049454E + 44AE426082} + Name = 'PngImage27' + Background = clWindow end> Left = 395 Bitmap = {} @@ -1914,10 +1953,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Caption = '-' end object Cambiarlasituacin1: TMenuItem [9] - Caption = 'Cambiar la situaci'#243'n' - Hint = - 'Cambiar la situaci'#243'n de la factura seleccionada (Pendiente/Pagad' + - 'a)' + Action = actCambiarSituacion end end object JsNuevaFacturaDialog: TJSDialog diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas index 69d9aaa..12bdab8 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -41,6 +41,8 @@ type TBXItem42: TTBXItem; TBXSeparatorItem17: TTBXSeparatorItem; JsListaFacturasNoModificadas: TJSDialog; + actVerPresupuesto: TAction; + TBXItem43: TTBXItem; procedure FormShow(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actNuevaFacturaExecute(Sender: TObject); @@ -50,6 +52,8 @@ type procedure actEnviarMailUpdate(Sender: TObject); procedure actEnviarMailExecute(Sender: TObject); procedure actCambiarSituacionExecute(Sender: TObject); + procedure actVerPresupuestoExecute(Sender: TObject); + procedure actVerPresupuestoUpdate(Sender: TObject); private FFacturas: IBizFacturaCliente; @@ -157,7 +161,8 @@ begin inherited; if (Sender as TAction).Enabled then (Sender as TAction).Enabled := (FFacturas.SITUACION = 'PENDIENTE') and - (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR); + ((AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR) + or (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA)) end; procedure TfEditorFacturasCliente.actEnviarMailExecute(Sender: TObject); @@ -244,6 +249,18 @@ begin end; end; +procedure TfEditorFacturasCliente.actVerPresupuestoExecute(Sender: TObject); +begin + inherited; +// +end; + +procedure TfEditorFacturasCliente.actVerPresupuestoUpdate(Sender: TObject); +begin + inherited; +// +end; + constructor TfEditorFacturasCliente.Create(AOwner: TComponent); begin inherited; diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm index 6874657..6589c27 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm @@ -110,9 +110,9 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor ExplicitHeight = 545 inherited cxGrid: TcxGrid Width = 640 - Height = 417 + Height = 389 ExplicitWidth = 640 - ExplicitHeight = 417 + ExplicitHeight = 389 inherited cxGridView: TcxGridDBTableView DataController.Summary.DefaultGroupSummaryItems = < item @@ -180,26 +180,32 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 543 - Width = 543 + ExplicitWidth = 457 + Width = 457 end inherited edtFechaIniFiltro: TcxDateEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 263 - Width = 263 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 367 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 367 - ExplicitWidth = 263 - Width = 263 + end + inherited edtFecha2FinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFecha2IniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -1844,15 +1850,6 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor inherited N2: TMenuItem Visible = False end - object N4: TMenuItem [8] - Caption = '-' - end - object Cambiarlasituacin1: TMenuItem [9] - Caption = 'Cambiar la situaci'#243'n' - Hint = - 'Cambiar la situaci'#243'n de la factura seleccionada (Pendiente/Pagad' + - 'a)' - end end object JsNuevaFacturaDialog: TJSDialog Content.Strings = ( diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas index 70e6769..6667cd4 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas @@ -17,8 +17,6 @@ uses type TfEditorFacturasProveedor = class(TfEditorGridBase, IEditorFacturasProveedor) - Cambiarlasituacin1: TMenuItem; - N4: TMenuItem; JsNuevaFacturaDialog: TJSDialog; JsListaFacturasGeneradas: TJSDialog; frViewFacturasProveedor1: TfrViewFacturasProveedor; diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm index f4aa861..49f7c24 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm @@ -1,15 +1,17 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor - Width = 531 - Height = 432 - ExplicitWidth = 531 - ExplicitHeight = 432 + Width = 955 + Height = 604 + ExplicitWidth = 955 + ExplicitHeight = 604 inherited cxGrid: TcxGrid - Width = 531 - Height = 304 + Top = 130 + Width = 955 + Height = 448 RootLevelOptions.DetailTabsPosition = dtpTop OnActiveTabChanged = cxGridActiveTabChanged - ExplicitWidth = 531 - ExplicitHeight = 304 + ExplicitTop = 130 + ExplicitWidth = 955 + ExplicitHeight = 448 inherited cxGridView: TcxGridDBTableView DataController.KeyFieldNames = 'ID' DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded] @@ -191,61 +193,95 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor end end inherited frViewFiltroBase1: TfrViewFiltroBase - Width = 531 - ExplicitWidth = 531 + Width = 955 + Height = 130 + ExplicitWidth = 955 + ExplicitHeight = 130 inherited TBXDockablePanel1: TTBXDockablePanel - ExplicitWidth = 531 + ExplicitWidth = 955 + ExplicitHeight = 130 inherited dxLayoutControl1: TdxLayoutControl - Width = 531 - ExplicitWidth = 531 + Width = 955 + Height = 100 + ExplicitWidth = 955 + ExplicitHeight = 100 inherited txtFiltroTodo: TcxTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 434 - Width = 434 end inherited edtFechaIniFiltro: TcxDateEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 130 - Width = 130 + ExplicitWidth = 200 + Width = 200 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 234 + Left = 311 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 234 - ExplicitWidth = 287 - Width = 287 + ExplicitLeft = 311 + end + inherited edtFecha2FinFiltro: TcxDateEdit + Left = 311 + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 311 + ExplicitWidth = 200 + Width = 200 + end + inherited edtFecha2IniFiltro: TcxDateEdit + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 200 + Width = 200 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group4: TdxLayoutGroup + Enabled = True + Visible = True + inherited dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Entre fecha vto:' + end + end + end end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 531 - ExplicitWidth = 531 + Top = 100 + Width = 955 + ExplicitTop = 100 + ExplicitWidth = 955 inherited tbxBotones: TTBXToolbar - Width = 521 - ExplicitWidth = 521 + Width = 945 + ExplicitWidth = 945 end end end end inherited pnlAgrupaciones: TTBXDockablePanel - Top = 406 + Top = 578 Visible = True - ExplicitTop = 406 - ExplicitWidth = 531 + ExplicitTop = 578 + ExplicitWidth = 955 inherited TBXAlignmentPanel1: TTBXAlignmentPanel - Width = 531 - ExplicitWidth = 531 + Width = 955 + ExplicitWidth = 955 inherited TBXToolbar1: TTBXToolbar - Width = 521 - ExplicitWidth = 521 + Width = 945 + ExplicitWidth = 945 object TBXSeparatorItem2: TTBXSeparatorItem end object TBXItem3: TTBXItem @@ -674,7 +710,7 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor Background = clWindow end> Left = 56 - Top = 48 + Top = 16 Bitmap = {} end end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas index ac4c8f1..602f04b 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas @@ -137,20 +137,35 @@ procedure TfrViewFacturasProveedor.AnadirFiltroFechas; var Columna: TcxGridDBColumn; Fecha1, Fecha2: Variant; + FechaVto1, FechaVto2: Variant; FFiltro : TcxFilterCriteriaItemList; begin Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + FechaVto1 := frViewFiltroBase1.edtFecha2IniFiltro.EditValue; + FechaVto2 := frViewFiltroBase1.edtFecha2FinFiltro.EditValue; + if not VarIsNull(Fecha1) and not VarIsNull(Fecha2) then begin cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; FFiltro := AddFilterGrid(fboAnd); - Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_VENCIMIENTO'); + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_FACTURA'); FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); end; + + if not VarIsNull(FechaVto1) + and not VarIsNull(FechaVto2) then + begin + cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; + FFiltro := AddFilterGrid(fboAnd); + + Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_VENCIMIENTO'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([FechaVto1, FechaVto2]), VarToStr(FechaVto1) + ' and ' + VarToStr(FechaVto2)); + end; + end; procedure TfrViewFacturasProveedor.AnadirFiltroSituaciones; diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj index e2b645b..d574659 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj @@ -38,13 +38,13 @@ MainSource - - - - - - - + + + + + + +
fEditorInformeBase
TForm diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm index 1aed920..766f104 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeBase.dfm @@ -30,16 +30,18 @@ inherited fEditorInformeBase: TfEditorInformeBase end object TBXMultiDockIzquierdo: TTBXMultiDock [3] Left = 0 - Top = 116 + Top = 102 Width = 7 - Height = 506 + Height = 520 Position = dpLeft + ExplicitTop = 116 + ExplicitHeight = 506 end object TBXMultiDockDerecho: TTBXMultiDock [4] Left = 447 - Top = 116 + Top = 102 Width = 340 - Height = 506 + Height = 520 Position = dpRight object pnlParametros: TTBXDockablePanel Left = 0 @@ -60,16 +62,16 @@ inherited fEditorInformeBase: TfEditorInformeBase Left = 0 Top = 0 Width = 336 - Height = 467 + Height = 482 Align = alClient TabOrder = 0 TabStop = False AutoContentSizes = [acsWidth, acsHeight] LookAndFeel = dxLayoutOfficeLookAndFeel1 - ExplicitHeight = 105 + ExplicitHeight = 106 object TBXButton1: TTBXButton Left = 11 - Top = 432 + Top = 447 Width = 121 Height = 24 Action = actRefrescar diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm index 0d34348..7f0fa8f 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClientePendientesReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 895 + ExplicitTop = 75 ExplicitWidth = 895 inherited Image1: TImage Left = 868 @@ -21,7 +22,7 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas ExplicitWidth = 895 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,28 +37,29 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas ExplicitWidth = 895 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 709 - ExplicitHeight = 709 + Height = 723 + ExplicitTop = 102 + ExplicitHeight = 723 end inherited TBXMultiDockDerecho: TTBXMultiDock Left = 535 Width = 360 - Height = 709 + Height = 723 ExplicitLeft = 535 ExplicitWidth = 360 - ExplicitHeight = 709 + ExplicitHeight = 723 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 693 + ExplicitHeight = 707 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 670 + Height = 685 ExplicitWidth = 356 - ExplicitHeight = 670 + ExplicitHeight = 685 inline frViewFiltroClientes1: TfrViewFiltroClientes [0] Left = 11 - Top = 282 + Top = 288 Width = 335 Height = 180 HelpContext = 160 @@ -74,7 +76,7 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas TabOrder = 2 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 282 + ExplicitTop = 288 ExplicitWidth = 335 ExplicitHeight = 180 inherited dxLayoutControl1: TdxLayoutControl @@ -109,9 +111,11 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas end inherited TBXButton1: TTBXButton [1] Left = 22 - Top = 630 + Top = 645 + Width = 121 ExplicitLeft = 22 - ExplicitTop = 630 + ExplicitTop = 645 + ExplicitWidth = 121 end inline frViewPeriodoFechas1: TfrViewPeriodoFechas Left = 11 @@ -152,22 +156,33 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas Width = 429 end inherited edtFechaVenIni: TcxDateEdit + Enabled = False ExplicitWidth = 529 Width = 529 end inherited edtFechaVenFin: TcxDateEdit + Enabled = False ExplicitWidth = 531 Width = 531 end inherited cbPeriodo2: TcxComboBox + Enabled = False ExplicitWidth = 598 Width = 598 end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Enabled = False + Visible = False + end + end + end end end inline frViewFiltroImportes1: TfrViewFiltroImportes Left = 11 - Top = 478 + Top = 489 Width = 335 Height = 120 Align = alClient @@ -183,7 +198,7 @@ inherited fEditorInformeFacturasClientePendientesReport: TfEditorInformeFacturas TabOrder = 3 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 478 + ExplicitTop = 489 ExplicitWidth = 335 ExplicitHeight = 120 inherited dxLayoutControl1: TdxLayoutControl diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm index 60bb433..971b05b 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeFacturasClienteReport: TfEditorInformeFacturasClienteRep TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 895 + ExplicitTop = 75 ExplicitWidth = 895 inherited Image1: TImage Left = 868 @@ -21,7 +22,7 @@ inherited fEditorInformeFacturasClienteReport: TfEditorInformeFacturasClienteRep ExplicitWidth = 895 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,28 +37,31 @@ inherited fEditorInformeFacturasClienteReport: TfEditorInformeFacturasClienteRep ExplicitWidth = 895 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 691 - ExplicitHeight = 691 + Height = 705 + ExplicitTop = 102 + ExplicitHeight = 705 end inherited TBXMultiDockDerecho: TTBXMultiDock Left = 535 Width = 360 - Height = 691 + Height = 705 ExplicitLeft = 535 ExplicitWidth = 360 - ExplicitHeight = 691 + ExplicitHeight = 705 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 675 + ExplicitHeight = 689 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 652 + Height = 667 ExplicitWidth = 356 - ExplicitHeight = 652 + ExplicitHeight = 667 inherited TBXButton1: TTBXButton - Top = 617 - ExplicitTop = 617 + Top = 632 + Width = 121 + ExplicitTop = 632 + ExplicitWidth = 121 end inline frViewPeriodoFechas1: TfrViewPeriodoFechas [1] Left = 11 @@ -100,17 +104,28 @@ inherited fEditorInformeFacturasClienteReport: TfEditorInformeFacturasClienteRep Width = 429 end inherited edtFechaVenIni: TcxDateEdit + Enabled = False ExplicitWidth = 529 Width = 529 end inherited edtFechaVenFin: TcxDateEdit + Enabled = False ExplicitWidth = 531 Width = 531 end inherited cbPeriodo2: TcxComboBox + Enabled = False ExplicitWidth = 598 Width = 598 end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Enabled = False + Visible = False + end + end + end end end inline frViewFiltroImportes1: TfrViewFiltroImportes diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm index fc93af9..7b773c4 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAClientesReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 950 + ExplicitTop = 75 ExplicitWidth = 950 inherited Image1: TImage Left = 923 @@ -21,7 +22,7 @@ inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport ExplicitWidth = 950 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,29 +37,30 @@ inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport ExplicitWidth = 950 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 661 - ExplicitHeight = 661 + Height = 675 + ExplicitTop = 102 + ExplicitHeight = 675 end inherited TBXMultiDockDerecho: TTBXMultiDock Left = 590 Width = 360 - Height = 661 + Height = 675 ExplicitLeft = 590 ExplicitWidth = 360 - ExplicitHeight = 661 + ExplicitHeight = 675 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 645 + ExplicitHeight = 659 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 622 + Height = 637 ExplicitWidth = 356 - ExplicitHeight = 622 + ExplicitHeight = 637 inherited TBXButton1: TTBXButton - Top = 589 + Top = 602 Width = 121 - ExplicitTop = 589 + ExplicitTop = 602 ExplicitWidth = 121 end inline frViewFiltroClientes1: TfrViewFiltroClientes [1] @@ -136,8 +138,8 @@ inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport inherited dxLayoutControl1: TdxLayoutControl Width = 334 Height = 265 - ExplicitWidth = 291 - ExplicitHeight = 260 + ExplicitWidth = 334 + ExplicitHeight = 265 inherited edtFechaIni: TcxDateEdit ExplicitWidth = 360 Width = 360 @@ -151,17 +153,28 @@ inherited fEditorInformeIVAClientesReport: TfEditorInformeIVAClientesReport Width = 429 end inherited edtFechaVenIni: TcxDateEdit + Enabled = False ExplicitWidth = 529 Width = 529 end inherited edtFechaVenFin: TcxDateEdit + Enabled = False ExplicitWidth = 531 Width = 531 end inherited cbPeriodo2: TcxComboBox + Enabled = False ExplicitWidth = 598 Width = 598 end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Enabled = False + Visible = False + end + end + end end end inline frViewFiltroImportes1: TfrViewFiltroImportes diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm index bef2aaa..455b6b5 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeIVAProveedoresReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 895 + ExplicitTop = 75 ExplicitWidth = 895 inherited Image1: TImage Left = 868 @@ -21,7 +22,7 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor ExplicitWidth = 895 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,35 +37,37 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor ExplicitWidth = 895 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 520 - ExplicitHeight = 520 + Height = 534 + ExplicitTop = 102 + ExplicitHeight = 534 end inherited TBXMultiDockDerecho: TTBXMultiDock - Left = 675 + Left = 535 Width = 360 - Height = 708 - ExplicitLeft = 675 + Height = 534 + ExplicitLeft = 535 + ExplicitTop = 102 ExplicitWidth = 360 - ExplicitHeight = 708 + ExplicitHeight = 534 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 692 + ExplicitHeight = 518 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 669 + Height = 496 ExplicitWidth = 356 - ExplicitHeight = 669 + ExplicitHeight = 496 inline frViewFiltroProveedores1: TfrViewFiltroProveedores [0] Left = 11 - Top = 284 + Top = 205 Width = 451 Height = 173 Align = alTop TabOrder = 2 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 284 + ExplicitTop = 205 inherited dxLayoutControl1: TdxLayoutControl inherited rbTodosProveedores: TRadioButton Width = 195 @@ -93,9 +96,11 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor end inherited TBXButton1: TTBXButton [1] Left = 22 - Top = 629 + Top = 456 + Width = 121 ExplicitLeft = 22 - ExplicitTop = 629 + ExplicitTop = 456 + ExplicitWidth = 121 end inline frViewPeriodoFechas1: TfrViewPeriodoFechas Left = 11 @@ -136,22 +141,33 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor Width = 429 end inherited edtFechaVenIni: TcxDateEdit + Enabled = False ExplicitWidth = 529 Width = 529 end inherited edtFechaVenFin: TcxDateEdit + Enabled = False ExplicitWidth = 531 Width = 531 end inherited cbPeriodo2: TcxComboBox + Enabled = False ExplicitWidth = 598 Width = 598 end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group3: TdxLayoutGroup + inherited dxLayoutControl1Group2: TdxLayoutGroup + Enabled = False + Visible = False + end + end + end end end inline frViewFiltroImportes1: TfrViewFiltroImportes Left = 11 - Top = 475 + Top = 341 Width = 335 Height = 120 Align = alClient @@ -167,7 +183,7 @@ inherited fEditorInformeIVAProveedoresReport: TfEditorInformeIVAProveedoresRepor TabOrder = 3 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 475 + ExplicitTop = 341 ExplicitWidth = 335 ExplicitHeight = 120 inherited dxLayoutControl1: TdxLayoutControl diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm index 6d310e6..7902739 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 895 + ExplicitTop = 75 ExplicitWidth = 895 inherited Image1: TImage Left = 868 @@ -21,7 +22,7 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP ExplicitWidth = 895 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,35 +37,36 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP ExplicitWidth = 895 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 520 - ExplicitHeight = 520 + Height = 534 + ExplicitTop = 102 + ExplicitHeight = 534 end inherited TBXMultiDockDerecho: TTBXMultiDock - Left = 675 + Left = 535 Width = 360 - Height = 708 - ExplicitLeft = 675 + Height = 534 + ExplicitLeft = 535 ExplicitWidth = 360 - ExplicitHeight = 708 + ExplicitHeight = 534 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 692 + ExplicitHeight = 518 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 669 + Height = 496 ExplicitWidth = 356 - ExplicitHeight = 669 + ExplicitHeight = 496 inline frViewFiltroProveedores1: TfrViewFiltroProveedores [0] Left = 11 - Top = 284 + Top = 262 Width = 451 Height = 173 Align = alTop TabOrder = 2 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 284 + ExplicitTop = 262 inherited dxLayoutControl1: TdxLayoutControl inherited rbTodosProveedores: TRadioButton Width = 195 @@ -93,9 +95,9 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP end inherited TBXButton1: TTBXButton [1] Left = 22 - Top = 629 + Top = 456 ExplicitLeft = 22 - ExplicitTop = 629 + ExplicitTop = 456 end inline frViewPeriodoFechas1: TfrViewPeriodoFechas Left = 11 @@ -149,43 +151,6 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP end end end - inline frViewFiltroImportes1: TfrViewFiltroImportes - Left = 11 - Top = 475 - Width = 335 - Height = 120 - Align = alClient - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentBackground = False - ParentColor = False - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitLeft = 11 - ExplicitTop = 475 - ExplicitWidth = 335 - ExplicitHeight = 120 - inherited dxLayoutControl1: TdxLayoutControl - Width = 335 - Height = 120 - ExplicitWidth = 335 - ExplicitHeight = 120 - inherited cbxDesglosado: TCheckBox - Width = 298 - ParentColor = False - ExplicitWidth = 298 - end - inherited eImporte: TcxSpinEdit - ExplicitWidth = 142 - Width = 142 - end - end - end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited dxLayoutControlGroupRefrescar: TdxLayoutGroup ShowCaption = True @@ -210,14 +175,6 @@ inherited fEditorInformeRecibosProvPendientesReport: TfEditorInformeRecibosProvP Control = frViewFiltroProveedores1 ControlOptions.ShowBorder = False end - object dxLayoutControl1Item1: TdxLayoutItem - AutoAligns = [aaHorizontal] - AlignVert = avClient - Caption = 'Importes:' - ShowCaption = False - Control = frViewFiltroImportes1 - ControlOptions.ShowBorder = False - end end end end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas index 289a718..d9ec995 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProvPendientesReport.pas @@ -21,7 +21,6 @@ type TfEditorInformeRecibosProvPendientesReport = class(TfEditorInformeBase, IEditorInformeRecibosProvPendientesReport) TBXItem58: TTBXItem; frViewPeriodoFechas1: TfrViewPeriodoFechas; - frViewFiltroImportes1: TfrViewFiltroImportes; frViewFiltroProveedores1: TfrViewFiltroProveedores; procedure actRefrescarExecute(Sender: TObject); private @@ -78,7 +77,7 @@ end; function TfEditorInformeRecibosProvPendientesReport.GetDesglosadoProveedor: Boolean; begin - if frViewFiltroImportes1.cbxDesglosado.Enabled then + if frViewFiltroProveedores1.cbxDesglosado.Enabled then Result := frViewFiltroProveedores1.cbxDesglosado.Checked else Result := False; @@ -114,9 +113,10 @@ end; function TfEditorInformeRecibosProvPendientesReport.GetImporteMinimo: Currency; begin - if frViewFiltroImportes1.eImporte.Enabled then +{ if frViewFiltroImportes1.eImporte.Enabled then Result := frViewFiltroImportes1.eImporte.Value else +} Result := 0; end; diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm index 02c62b4..24931eb 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.dfm @@ -8,6 +8,7 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 895 + ExplicitTop = 75 ExplicitWidth = 895 inherited Image1: TImage Left = 868 @@ -21,7 +22,7 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR ExplicitWidth = 895 end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 678 + ExplicitWidth = 591 object TBXItem58: TTBXItem [0] Action = actRefrescar DisplayMode = nbdmImageAndText @@ -36,36 +37,39 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR ExplicitWidth = 895 end inherited TBXMultiDockIzquierdo: TTBXMultiDock - Height = 520 - ExplicitHeight = 520 + Height = 534 + ExplicitTop = 102 + ExplicitHeight = 534 end inherited TBXMultiDockDerecho: TTBXMultiDock - Left = 675 + Left = 535 Width = 360 - Height = 708 - ExplicitLeft = 675 + Height = 534 + ExplicitLeft = 535 ExplicitWidth = 360 - ExplicitHeight = 708 + ExplicitHeight = 534 inherited pnlParametros: TTBXDockablePanel DockedWidth = 356 ExplicitWidth = 360 - ExplicitHeight = 692 + ExplicitHeight = 518 inherited dxLayoutControl1: TdxLayoutControl Width = 356 - Height = 669 + Height = 496 ExplicitWidth = 356 - ExplicitHeight = 669 + ExplicitHeight = 496 inline frViewFiltroProveedores1: TfrViewFiltroProveedores [0] Left = 11 - Top = 284 + Top = 262 Width = 451 Height = 173 Align = alTop TabOrder = 2 ReadOnly = False ExplicitLeft = 11 - ExplicitTop = 284 + ExplicitTop = 262 inherited dxLayoutControl1: TdxLayoutControl + ExplicitWidth = 334 + ExplicitHeight = 169 inherited rbTodosProveedores: TRadioButton Width = 195 ParentColor = False @@ -93,9 +97,9 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR end inherited TBXButton1: TTBXButton [1] Left = 22 - Top = 629 + Top = 456 ExplicitLeft = 22 - ExplicitTop = 629 + ExplicitTop = 456 end inline frViewPeriodoFechas1: TfrViewPeriodoFechas Left = 11 @@ -121,8 +125,8 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR inherited dxLayoutControl1: TdxLayoutControl Width = 335 Height = 250 - ExplicitWidth = 335 - ExplicitHeight = 250 + ExplicitWidth = 334 + ExplicitHeight = 245 inherited edtFechaIni: TcxDateEdit ExplicitWidth = 360 Width = 360 @@ -149,43 +153,6 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR end end end - inline frViewFiltroImportes1: TfrViewFiltroImportes - Left = 11 - Top = 475 - Width = 335 - Height = 120 - Align = alClient - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - ParentBackground = False - ParentColor = False - ParentFont = False - TabOrder = 3 - ReadOnly = False - ExplicitLeft = 11 - ExplicitTop = 475 - ExplicitWidth = 335 - ExplicitHeight = 120 - inherited dxLayoutControl1: TdxLayoutControl - Width = 335 - Height = 120 - ExplicitWidth = 335 - ExplicitHeight = 120 - inherited cbxDesglosado: TCheckBox - Width = 298 - ParentColor = False - ExplicitWidth = 298 - end - inherited eImporte: TcxSpinEdit - ExplicitWidth = 142 - Width = 142 - end - end - end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited dxLayoutControlGroupRefrescar: TdxLayoutGroup ShowCaption = True @@ -210,14 +177,6 @@ inherited fEditorInformeRecibosProveedorReport: TfEditorInformeRecibosProveedorR Control = frViewFiltroProveedores1 ControlOptions.ShowBorder = False end - object dxLayoutControl1Item1: TdxLayoutItem - AutoAligns = [aaHorizontal] - AlignVert = avClient - Caption = 'Importes:' - ShowCaption = False - Control = frViewFiltroImportes1 - ControlOptions.ShowBorder = False - end end end end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas index 9026d0c..a934ee0 100644 --- a/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas +++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeRecibosProveedorReport.pas @@ -21,7 +21,6 @@ type TfEditorInformeRecibosProveedorReport = class(TfEditorInformeBase, IEditorInformeRecibosProveedorReport) TBXItem58: TTBXItem; frViewPeriodoFechas1: TfrViewPeriodoFechas; - frViewFiltroImportes1: TfrViewFiltroImportes; frViewFiltroProveedores1: TfrViewFiltroProveedores; procedure actRefrescarExecute(Sender: TObject); private @@ -78,7 +77,7 @@ end; function TfEditorInformeRecibosProveedorReport.GetDesglosadoProveedor: Boolean; begin - if frViewFiltroImportes1.cbxDesglosado.Enabled then + if frViewFiltroProveedores1.cbxDesglosado.Enabled then Result := frViewFiltroProveedores1.cbxDesglosado.Checked else Result := False; @@ -114,9 +113,11 @@ end; function TfEditorInformeRecibosProveedorReport.GetImporteMinimo: Currency; begin +{ if frViewFiltroImportes1.eImporte.Enabled then Result := frViewFiltroImportes1.eImporte.Value else +} Result := 0; end; diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm index 94d2ca2..a314025 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -12,6 +12,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited JvNavPanelHeader: TJvNavPanelHeader Width = 848 Caption = 'Nuevo presupuesto de cliente' + ExplicitTop = 49 ExplicitWidth = 848 inherited Image1: TImage Left = 821 @@ -129,7 +130,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Width = 848 ExplicitWidth = 848 inherited tbxMain: TTBXToolbar - ExplicitWidth = 634 + ExplicitWidth = 488 inherited TBXItem2: TTBXItem Visible = False end @@ -176,17 +177,18 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited pgPaginas: TPageControl Width = 842 - Height = 433 + Height = 442 ActivePage = pagDocumentos TabOrder = 1 OnChanging = pgPaginasChanging + ExplicitTop = 109 ExplicitWidth = 842 - ExplicitHeight = 433 + ExplicitHeight = 442 inherited pagGeneral: TTabSheet ExplicitLeft = 4 ExplicitTop = 24 ExplicitWidth = 834 - ExplicitHeight = 289 + ExplicitHeight = 414 end object pagContenido: TTabSheet Caption = 'Contenido' @@ -195,7 +197,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 0 Top = 0 Width = 834 - Height = 405 + Height = 414 Align = alClient BiDiMode = bdLeftToRight Font.Charset = DEFAULT_CHARSET @@ -208,7 +210,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 834 - ExplicitHeight = 405 + ExplicitHeight = 414 inherited ToolBar1: TToolBar Width = 834 Height = 24 @@ -238,67 +240,67 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitWidth = 58 end inherited UpDown1: TUpDown - Left = 571 + Left = 587 Top = 0 - ExplicitLeft = 571 + ExplicitLeft = 587 ExplicitTop = 0 end inherited ToolButton13: TToolButton - Left = 588 + Left = 604 Top = 0 - ExplicitLeft = 588 + ExplicitLeft = 604 ExplicitTop = 0 end inherited ToolButton6: TToolButton - Left = 596 + Left = 612 Top = 0 - ExplicitLeft = 596 + ExplicitLeft = 612 ExplicitTop = 0 end inherited ToolButton7: TToolButton - Left = 630 + Left = 646 Top = 0 - ExplicitLeft = 630 + ExplicitLeft = 646 ExplicitTop = 0 end inherited ToolButton8: TToolButton - Left = 664 + Left = 680 Top = 0 - ExplicitLeft = 664 + ExplicitLeft = 680 ExplicitTop = 0 end inherited ToolButton12: TToolButton - Left = 698 + Left = 714 Top = 0 - ExplicitLeft = 698 + ExplicitLeft = 714 ExplicitTop = 0 end inherited ToolButton9: TToolButton - Left = 706 + Left = 722 Top = 0 - ExplicitLeft = 706 + ExplicitLeft = 722 ExplicitTop = 0 end inherited ToolButton10: TToolButton - Left = 740 + Left = 756 Top = 0 - ExplicitLeft = 740 + ExplicitLeft = 756 ExplicitTop = 0 end inherited ToolButton11: TToolButton - Left = 774 + Left = 790 Top = 0 - ExplicitLeft = 774 + ExplicitLeft = 790 ExplicitTop = 0 end end inherited cxGrid: TcxGrid - Top = 53 + Top = 50 Width = 834 - Height = 352 - ExplicitTop = 53 + Height = 364 + ExplicitTop = 50 ExplicitWidth = 834 - ExplicitHeight = 352 + ExplicitHeight = 364 end inherited TBXDock1: TTBXDock Top = 24 @@ -306,7 +308,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitTop = 24 ExplicitWidth = 834 inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 834 + ExplicitWidth = 665 end end inherited cxLookupComboBox1: TcxLookupComboBox @@ -327,7 +329,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 0 Top = 0 Width = 834 - Height = 405 + Height = 414 Align = alClient TabOrder = 0 TabStop = False @@ -374,7 +376,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 0 Top = 0 Width = 834 - Height = 405 + Height = 414 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -385,7 +387,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 834 - ExplicitHeight = 405 + ExplicitHeight = 414 inherited pnlSup: TPanel Width = 834 ExplicitWidth = 834 @@ -395,13 +397,13 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited GroupBox1: TGroupBox Width = 834 - Height = 377 + Height = 386 ExplicitWidth = 834 - ExplicitHeight = 377 + ExplicitHeight = 386 inherited eIncidencias: TcxDBMemo ExplicitWidth = 830 - ExplicitHeight = 360 - Height = 360 + ExplicitHeight = 369 + Height = 369 Width = 830 end end @@ -415,7 +417,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 0 Top = 0 Width = 834 - Height = 405 + Height = 414 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -426,17 +428,16 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 834 - ExplicitHeight = 405 + ExplicitHeight = 414 inherited TBXDock: TTBXDock Width = 834 ExplicitWidth = 834 end inherited ListView1: TListView Width = 834 - Height = 376 - ExplicitTop = 29 + Height = 391 ExplicitWidth = 834 - ExplicitHeight = 376 + ExplicitHeight = 391 end inherited EditorActionList: TActionList Left = 8 @@ -447,6 +448,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited PnlComentario: TPanel Width = 848 + ExplicitTop = 76 ExplicitWidth = 848 inherited lbComentario: TLabel Width = 838 @@ -475,18 +477,16 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente LookAndFeel = dxLayoutOfficeLookAndFeel1 ExplicitWidth = 848 inherited Bevel3: TBevel - Left = 352 + Left = 310 Top = 57 - Height = 122 - ExplicitLeft = 352 + ExplicitLeft = 310 ExplicitTop = 57 - ExplicitHeight = 122 end inherited Bevel4: TBevel - Left = 464 + Left = 422 Top = 88 Width = 342 - ExplicitLeft = 464 + ExplicitLeft = 422 ExplicitTop = 88 ExplicitWidth = 342 end @@ -494,26 +494,20 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Top = 84 Style.IsFontAssigned = True ExplicitTop = 84 - ExplicitWidth = 93 - Width = 93 end inherited ImporteIVA: TcxDBCurrencyEdit - Left = 535 + Left = 493 Top = 108 Style.IsFontAssigned = True - ExplicitLeft = 535 + ExplicitLeft = 493 ExplicitTop = 108 - ExplicitWidth = 137 - Width = 137 end inherited ImporteTotal: TcxDBCurrencyEdit - Left = 465 + Left = 423 Top = 162 Style.IsFontAssigned = True - ExplicitLeft = 465 + ExplicitLeft = 423 ExplicitTop = 162 - ExplicitWidth = 137 - Width = 137 end inherited edtDescuento: TcxDBSpinEdit Top = 84 @@ -521,69 +515,57 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitTop = 84 end inherited edtIVA: TcxDBSpinEdit - Left = 464 + Left = 422 Top = 108 Style.IsFontAssigned = True - ExplicitLeft = 464 + ExplicitLeft = 422 ExplicitTop = 108 end inherited ImporteBase: TcxDBCurrencyEdit - Left = 464 + Left = 422 Top = 57 Style.IsFontAssigned = True - ExplicitLeft = 464 + ExplicitLeft = 422 ExplicitTop = 57 - ExplicitWidth = 92 - Width = 92 end inherited edtRE: TcxDBSpinEdit - Left = 464 + Left = 422 Top = 135 Style.IsFontAssigned = True - ExplicitLeft = 464 + ExplicitLeft = 422 ExplicitTop = 135 end inherited ImporteRE: TcxDBCurrencyEdit - Left = 535 + Left = 493 Top = 135 Style.IsFontAssigned = True - ExplicitLeft = 535 + ExplicitLeft = 493 ExplicitTop = 135 - ExplicitWidth = 56 - Width = 56 end inherited eImporteNeto: TcxDBCurrencyEdit Top = 57 Style.IsFontAssigned = True ExplicitTop = 57 - ExplicitWidth = 147 - Width = 147 end inherited ePorte: TcxDBCurrencyEdit Top = 111 Style.IsFontAssigned = True ExplicitTop = 111 - ExplicitWidth = 147 - Width = 147 end inherited eIVA: TcxDBLookupComboBox Top = 138 ExplicitTop = 138 - ExplicitWidth = 81 - Width = 81 end inherited bTiposIVA: TButton - Left = 204 + Left = 162 Top = 138 OnClick = frViewTotales1bTiposIVAClick - ExplicitLeft = 204 + ExplicitLeft = 162 ExplicitTop = 138 end inherited cbRecargoEquivalencia: TcxDBCheckBox Top = 165 ExplicitTop = 165 - ExplicitWidth = 219 - Width = 219 end inherited cbValorado: TcxDBCheckBox Left = 11 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm index 5ef218f..bd67135 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm @@ -6,8 +6,9 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente ExplicitWidth = 903 ExplicitHeight = 525 inherited cxGrid: TcxGrid + Top = 130 Width = 903 - Height = 397 + Height = 369 RootLevelOptions.DetailTabsPosition = dtpTop OnActiveTabChanged = cxGridActiveTabChanged ExplicitWidth = 903 @@ -146,28 +147,71 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente end inherited frViewFiltroBase1: TfrViewFiltroBase Width = 903 + Height = 130 ExplicitWidth = 903 + ExplicitHeight = 130 inherited TBXDockablePanel1: TTBXDockablePanel ExplicitWidth = 903 inherited dxLayoutControl1: TdxLayoutControl Width = 903 + Height = 100 ExplicitWidth = 903 inherited txtFiltroTodo: TcxTextEdit - ExplicitWidth = 806 - Width = 806 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' end inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 285 - Width = 285 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 200 + Width = 200 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 389 - ExplicitLeft = 389 - ExplicitWidth = 504 - Width = 504 + Left = 333 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 333 + end + inherited edtFecha2FinFiltro: TcxDateEdit + Left = 333 + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 333 + ExplicitWidth = 200 + Width = 200 + end + inherited edtFecha2IniFiltro: TcxDateEdit + Enabled = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 200 + Width = 200 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + inherited dxLayoutControl1Group4: TdxLayoutGroup + Enabled = True + Visible = True + inherited dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Entre fecha decisi'#243'n:' + end + end + end end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Top = 100 Width = 903 ExplicitWidth = 903 inherited tbxBotones: TTBXToolbar @@ -176,14 +220,6 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente end end end - inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList - Left = 56 - end - inherited ActionList1: TActionList - inherited actQuitarFiltro: TAction - OnExecute = frViewFiltroBase1actQuitarFiltroExecute - end - end end inherited pnlAgrupaciones: TTBXDockablePanel Top = 499 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas index fbe48bc..014fa0e 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas @@ -147,11 +147,15 @@ procedure TfrViewPresupuestosCliente.AnadirFiltroFechas; var Columna: TcxGridDBColumn; Fecha1, Fecha2: Variant; + FechaDecision1, FechaDecision2: Variant; FFiltro : TcxFilterCriteriaItemList; begin Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; + FechaDecision1 := frViewFiltroBase1.edtFecha2IniFiltro.EditValue; + FechaDecision2 := frViewFiltroBase1.edtFecha2FinFiltro.EditValue; + if not VarIsNull(Fecha1) and not VarIsNull(Fecha2) then begin diff --git a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas index 4494e8c..efb3b66 100644 --- a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas @@ -35,8 +35,19 @@ type procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDProveedores: TIntegerArray; + FListaNombresProveedores: TStringList; + FImporteMinimo: Currency; + FDesglosado : Boolean; + procedure _GenerarRecibo(const ID : Integer); function _GenerarInforme(const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const ImporteMinimo: Currency): Binary; + procedure IniciarParametrosInforme; public function GenerarRecibo(const ListaID : TIntegerArray): Binary; @@ -77,6 +88,19 @@ function TRptRecibosCliente.GenerarInformeListadoRecibos( var ATipoInforme: String; begin + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDClientes; + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE if Desglosado then @@ -97,6 +121,20 @@ var ATipoInforme: String; begin + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FImporteMinimo := ImporteMinimo; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDClientes; + + if tbl_InformeListadoRecibos.Active then tbl_InformeListadoRecibos.Active := False; @@ -136,6 +174,57 @@ begin end; end; +procedure TRptRecibosCliente.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try +{ + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + // Filtrar el informe por fechas de vencimiento + if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then + begin + ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if (FImporteMinimo > 0) then + begin + ACadena := Format('Facturas con importe superior a %m', [FImporteMinimo]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then + begin + RecuperarNombresProveedores; + ACadena := FListaNombresProveedores.Text; + end + else begin + ACadena := 'Todos los proveedores'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; +} + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + function TRptRecibosCliente._GenerarInforme(const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; FechaVenFin: Variant; @@ -150,7 +239,6 @@ begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try - if tbl_InformeListadoRecibos.Active then tbl_InformeListadoRecibos.Active := False; diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm index 663e223..04da435 100644 --- a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm @@ -194,7 +194,7 @@ object RptRecibosProveedor: TRptRecibosProveedor Top = 158 end object frxReport: TfrxReport - Version = '4.3' + Version = '4.8.11' DotMatrixReport = False EngineOptions.DoublePass = True IniFile = '\Software\Fast Reports' @@ -212,39 +212,6 @@ object RptRecibosProveedor: TRptRecibosProveedor ReportOptions.VersionMinor = '13' ReportOptions.VersionRelease = '1' ScriptLanguage = 'PascalScript' - ScriptText.Strings = ( - 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' - 'var' - ' Cadena: String;' - 'begin' - ' DatosEmpresa.Lines.Clear;' - ' DatosEmpresa.Lines.Add();' - ' DatosEmpresa.Lines.Add();' - '' - ' Cadena := '#39#39';' - ' if ( <> '#39#39') then' - ' Cadena := '#39'TLF: '#39' + ;' - ' if ( <> '#39#39') then' - ' Cadena := Cadena + '#39' FAX: '#39' + ;' - ' DatosEmpresa.Lines.Add(Cadena);' - '' - ' Cadena := '#39#39';' - ' if ( <> '#39#39') then' - ' Cadena := ;' - ' if ( <> '#39#39') then' - - ' Cadena := Cadena + '#39' '#39' + ;' - ' if ( <> '#39#39') then' - - ' Cadena := Cadena + '#39' - '#39' + ;' - ' DatosEmpresa.Lines.Add(Cadena);' - 'end;' - '' - 'begin' - '' - 'end.') ShowProgress = False StoreInDFM = False Left = 169 @@ -308,8 +275,6 @@ object RptRecibosProveedor: TRptRecibosProveedor RemoteFetchEnabled = False LocalSchema = schReport LocalDataStreamer = Bin2DataStreamer - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'InformeListadoRecibos' IndexDefs = <> Left = 360 @@ -325,6 +290,7 @@ object RptRecibosProveedor: TRptRecibosProveedor UserName = 'frxDBInformeListadoRecibos' CloseDataSource = True DataSource = DADSInformeListadoRecibos + BCDToCurrency = False Left = 360 Top = 16 end diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas index 92a2680..1704d1e 100644 --- a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas @@ -29,7 +29,21 @@ type procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; - function _GenerarInforme(const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const ImporteMinimo: Currency): Binary; + FIdEmpresa: Integer; + FFechaInicio: Variant; + FFechaFin: Variant; + FFechaVenInicio: Variant; + FFechaVenFin: Variant; + FListaIDProveedores: TIntegerArray; + FListaNombresProveedores: TStringList; + FSoloPendientes: Boolean; + FDesglosado : Boolean; + + procedure PrepararTablaInforme(ATabla: TDAMemDataTable); + procedure IniciarParametrosInforme; + procedure RecuperarNombresProveedores; + function _GenerarInforme(const TipoInforme: String): Binary; + public function GenerarInformeListadoRecibos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoRecibosPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; @@ -40,7 +54,8 @@ implementation {$R *.dfm} uses - uSistemaFunc, uDataModuleServer, schRecibosProveedorClient_Intf; + uROServer, uSistemaFunc, uDataModuleServer, DataAbstract4_Intf, schRecibosProveedorClient_Intf; + const rptInformeListadoRecibosProveedorDesglosado = 'InformeListadoRecibosProveedorDesglosado.fr3'; @@ -67,7 +82,31 @@ function TRptRecibosProveedor.GenerarInformeListadoRecibos( const ImporteMinimo: Currency): Binary; var ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FSoloPendientes:= false; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + if tbl_InformeListadoRecibos.Active then + tbl_InformeListadoRecibos.Active := False; + + PrepararTablaInforme(tbl_InformeListadoRecibos); //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR if Desglosado then @@ -75,7 +114,15 @@ begin else ATipoInforme := rptInformeListadoRecibosProveedor; - Result := _GenerarInforme(ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, ImporteMinimo); + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibos.Active := True; + + Result := _GenerarInforme(ATipoInforme); + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; end; function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes( @@ -84,24 +131,32 @@ function TRptRecibosProveedor.GenerarInformeListadoRecibosPendientes( const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; var - Condicion: TDAWhereExpression; ATipoInforme: String; + AStream: TMemoryStream; begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := FechaInicio; + FFechaFin := FechaFin; + FFechaVenInicio := FechaVenInicio; + FFechaVenFin := FechaVenFin; + FSoloPendientes:= True; + FDesglosado := Desglosado; + + if Assigned(FListaIDProveedores) then + FListaIDProveedores.Free; + FListaIDProveedores := ListaIDProveedores; + + if tbl_InformeListadoRecibos.Active then tbl_InformeListadoRecibos.Active := False; - // Filtrar el informe por situacion - with tbl_InformeListadoRecibos.DynamicWhere do - begin - // (ID_EMPRESA >= ID) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant('PAGADO', datString), dboNotEqual); - if IsEmpty then - Expression := Condicion - else - Expression := NewBinaryExpression(Expression, Condicion, dboAnd); - end; - + PrepararTablaInforme(tbl_InformeListadoRecibos); //DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR if Desglosado then @@ -109,33 +164,66 @@ begin else ATipoInforme := rptInformeListadoRecibosProvPendientes; - Result := _GenerarInforme(ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, ImporteMinimo); + //Finalmente se abren las tablas del informe + tbl_InformeListadoRecibos.Active := True; + + Result := _GenerarInforme(ATipoInforme); end; -function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String; - const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; - const FechaVenInicio, FechaVenFin: Variant; - const ListaIDProveedores: TIntegerArray; - const ImporteMinimo: Currency): Binary; +procedure TRptRecibosProveedor.IniciarParametrosInforme; +var + ATextos : TStringList; + ACadena : String; +begin + ATextos := TStringList.Create; + + try + if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then + ACadena := Format('Fechas de emision desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) + else + ACadena := 'Sin rango de fechas'; + ATextos.Add(ACadena); + ACadena := ''; + + // Filtrar el informe por fechas de vencimiento + if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then + begin + ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]); + ATextos.Add(ACadena); + ACadena := ''; + end; + + if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then + begin + RecuperarNombresProveedores; + ACadena := FListaNombresProveedores.Text; + end + else begin + ACadena := 'Todos los proveedores'; + if FDesglosado then + ACadena := ACadena + ' (desglosados)' + end; + + ATextos.Add(ACadena); + ACadena := ''; + + frxReport.Variables.Variables['TextoParametros'] := ATextos.Text; + finally + FreeAndNil(ATextos); + end; +end; + +procedure TRptRecibosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable); var Condicion: TDAWhereExpression; i: Integer; - AInforme: Variant; begin - Result := Binary.Create; - FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" - - try - - if tbl_InformeListadoRecibos.Active then - tbl_InformeListadoRecibos.Active := False; - // Filtrar el informe por empresa - with tbl_InformeListadoRecibos.DynamicWhere do + with ATabla.DynamicWhere do begin // (ID_EMPRESA >= ID) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(IdEmpresa, datInteger), dboEqual); + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual); if IsEmpty then Expression := Condicion else @@ -143,14 +231,14 @@ begin end; // Filtrar el informe por fechas - if not VarIsNull(FechaInicio) - and not VarIsNull(FechaFin) then + if not VarIsNull(FFechaInicio) + and not VarIsNull(FFechaFin) then begin - with tbl_InformeListadoRecibos.DynamicWhere do + with ATabla.DynamicWhere do begin // (FECHA_INICIO between FECHA_FIN) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaInicio, datDateTime), dboGreaterOrEqual); - Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_EMISION), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); if IsEmpty then Expression := Condicion else @@ -159,14 +247,14 @@ begin end; // Filtrar el informe por fechas de vencimiento - if not VarIsNull(FechaVenInicio) - and not VarIsNull(FechaVenFin) then + if not VarIsNull(FFechaVenInicio) + and not VarIsNull(FFechaVenFin) then begin - with tbl_InformeListadoRecibos.DynamicWhere do + with ATabla.DynamicWhere do begin // (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FechaVenInicio, datDateTime), dboGreaterOrEqual); - Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual); + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_RecibosProveedorFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd); if IsEmpty then Expression := Condicion else @@ -175,15 +263,15 @@ begin end; // Filtrar el informe por proveedor - if Assigned(ListaIDProveedores) then + if Assigned(FListaIDProveedores) then begin - with tbl_InformeListadoRecibos.DynamicWhere do + with ATabla.DynamicWhere do begin - for i := 0 to ListaIDProveedores.Count - 1 do + for i := 0 to FListaIDProveedores.Count - 1 do begin // (ID_PROVEEDOR = ID) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(ListaIDProveedores.Items[i], datInteger), dboEqual); + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID_PROVEEDOR), NewConstant(FListaIDProveedores.Items[i], datInteger), dboEqual); if IsEmpty then Expression := Condicion else @@ -192,36 +280,127 @@ begin end; end; - // Filtrar el informe por importe minimo - if (ImporteMinimo > 0) then + // Filtrar el informe por solo recibos pendientes + if FSoloPendientes then begin - with tbl_InformeListadoRecibos.DynamicWhere do + // Filtrar el informe por situacion + with ATabla.DynamicWhere do begin - // (IMPORTE_TOTAL > ImporteMinimo) - Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorIMPORTE_TOTAL), NewConstant(ImporteMinimo, datCurrency), dboGreaterOrEqual); + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorSITUACION), NewConstant('PAGADO', datString), dboNotEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; end; +end; - tbl_InformeListadoRecibos.Active := True; +procedure TRptRecibosProveedor.RecuperarNombresProveedores; +var + AContactosService : IsrvContactos; + Intf : IInterface; + AClientID : TGUID; - AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa)); - if VarIsNull(AInforme) then - raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + ATableNameArray: StringArray; + ATableRequestInfoArray: TableRequestInfoArray; + ATableRequestInfo: TableRequestInfoV5; + AStream: TMemoryStream; + ADataTable: TDAMemDataTable; + i: Integer; + AWhereBuilder : TDAWhereBuilder; + ACondicion : TDAWhereExpression; +begin + CreateGUID(AClientID); - frxReport.LoadFromFile(AInforme, True); - frxReport.Variables.Variables['FechaInicio'] := FechaInicio; - frxReport.Variables.Variables['FechaFin'] := FechaFin; + GetClassFactory('srvContactos').CreateInstance(AClientID, Intf); - frxReport.PrepareReport(False); - frxReport.PreviewPages.SaveToStream(Result); + if Assigned(Intf) then + begin + AContactosService := Intf as IsrvContactos; - finally - FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + ATableNameArray := StringArray.Create; + ATableRequestInfoArray := TableRequestInfoArray.Create; + AWhereBuilder := TDAWhereBuilder.Create; + try + ATableNameArray.Add('Proveedores'); + ATableRequestInfo := TableRequestInfoV5.Create; + + with ATableRequestInfo do + begin + IncludeSchema := True; + MaxRecords := -1; + UserFilter := ''; + + AWhereBuilder.Clear; + with AWhereBuilder do + for i := 0 to FListaIDProveedores.Count - 1 do + begin + ACondicion := NewBinaryExpression( + NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDProveedores[i], datInteger), dboEqual), + NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual), + dboAnd); + + if not AWhereBuilder.IsEmpty then + Expression := NewBinaryExpression(Expression, ACondicion, dboOr) + else + Expression := ACondicion; + end; + + WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression); + end; + + try + ATableRequestInfoArray.Add(ATableRequestInfo); + AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray); + if Assigned(AStream) then + begin + ADataTable := TDAMemDataTable.Create(nil); + try + ADataTable.Name := 'Proveedores'; + ADataTable.LocalDataStreamer := Bin2DataStreamer; + ADataTable.RemoteFetchEnabled := False; + Bin2DataStreamer.ReadDataset(AStream, ADataTable, True); + + ADataTable.Open; + FListaNombresProveedores.Clear; + for i := 0 to ADataTable.RecordCount - 1 do + begin + FListaNombresProveedores.Add(ADataTable.FieldByName('NOMBRE').AsString); + ADataTable.Next; + end; + + finally + FreeANDNil(ADataTable); + end; + end; + except + on e: Exception do + dmServer.EscribirLog(e.Message); + end; + finally + FreeANDNIL(ATableRequestInfoArray); + FreeANDNIL(ATableNameArray); + FreeANDNIL(AWhereBuilder); + end; end; end; +function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String): Binary; +var + AInforme: Variant; +begin + Result := Binary.Create; + + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntTostr(FIdEmpresa)); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); + IniciarParametrosInforme; + + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); +end; + end. diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index db15ff9..6d9f0d5 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -119,8 +119,6 @@ uses schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', uRptListadosContactos_Server in '..\Modulos\Contactos\Reports\uRptListadosContactos_Server.pas' {RptListadosContactos: TDataModule}, uRptPedidosProveedor_Server in '..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas' {RptPedidosProveedor: TDataModule}, - schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', - schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas', schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', @@ -138,7 +136,9 @@ uses schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas', schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas', schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', - schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas'; + schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas', + schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', + schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index f8b104a..f183fe8 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,299 +1,298 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - - - Delphi.Personality - - -FalseTrueFalseTrueFalse2000FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.0.0.0FactuGES v2(Servidor)2.0.0.0martes, 17 de diciembre de 2019 11:31 - - File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found - FactuGES_Server.dpr - - - - - MainSource - - - - - -
srvEjercicios
- TDataAbstractService -
- - - -
srvEmpresas
- TDARemoteService -
- -
srvProvinciasPoblaciones
- TRORemoteDataModule -
- - - - - - - - - - - -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - - - - -
RptComisiones
- TDataModule -
- -
srvComisiones
- TDataAbstractService -
- - - - -
srvContabilidad
- TDataAbstractService -
- - - - - - - -
RptListadosContactos
- TDataModule -
- -
srvContactos
- TDARemoteService -
- - - - -
RptContratosCliente
-
- -
srvContratosCliente
- TDataAbstractService -
- - - - -
RptFacturasCliente
- TDataModule -
- -
srvFacturasCliente
- TDataAbstractService -
- - - - -
RptFacturasProveedor
- TDataModule -
- -
srvFacturasProveedor
- TDataAbstractService -
- - - - - - - -
srvGestorDocumentos
- TDataAbstractService -
- -
srvGestorInformes
- TDataAbstractService -
- - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
RptPedidosProveedor
- TDataModule -
- -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
-
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - - - -
RptRecibosCliente
- TDataModule -
- -
srvRecibosCliente
- TDataAbstractService -
- - - - - -
RptRecibosProveedor
- TDataModule -
- -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvReferencias
- TDataAbstractService -
- - - - -
srvRemesasCliente
- TDataAbstractService -
- - - - -
srvRemesasProveedor
- TDataAbstractService -
- - - - - - -
srvUnidadesMedida
- TDataAbstractService -
- - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + + + Delphi.Personality + + + FalseTrueFalseTrueFalse2020FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.0.2.0FactuGES v2(Servidor)2.0.2.0jueves, 27 de febrero de 2020 16:27 + File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found + FactuGES_Server.dpr + + + + + MainSource + + + + + +
srvEjercicios
+ TDataAbstractService +
+ + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones
+ TRORemoteDataModule +
+ + + + + + + + + + + +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + + + + +
RptComisiones
+ TDataModule +
+ +
srvComisiones
+ TDataAbstractService +
+ + + + +
srvContabilidad
+ TDataAbstractService +
+ + + + + + + +
RptListadosContactos
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + + +
RptContratosCliente
+
+ +
srvContratosCliente
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + + + + + +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
RptPedidosProveedor
+ TDataModule +
+ +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + + + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + +