From 730d467c6b53cc784f96c01e3c0aa9c020a4a161 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 26 Dec 2007 15:49:51 +0000 Subject: [PATCH] =?UTF-8?q?Cambio=20de=20la=20logica=20de=20pedidos=20de?= =?UTF-8?q?=20proveedor=20y=20albaranes=20de=20proveedor,=20para=20que=20s?= =?UTF-8?q?e=20pueda=20asociar=20un=20almacen=20como=20destino=20ademas=20?= =?UTF-8?q?de=20una=20direcci=C3=B3n=20libre=20o=20incluso=20las=20dos=20c?= =?UTF-8?q?osas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@202 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- Source/Base/Utiles/uDataTableUtils.pas | 223 +++--------------- Source/Cliente/FactuGES.bdsproj | 4 +- Source/Cliente/FactuGES.rc | 6 +- Source/Cliente/FactuGES.res | Bin 172140 -> 172140 bytes .../AlbaranesProveedor_Group.bdsgroup | 3 +- .../uAlbaranesProveedorController.pas | 18 ++ .../Reports/uRptAlbaranesProveedor_Server.dfm | 68 ++++-- .../Reports/uRptAlbaranesProveedor_Server.pas | 2 +- .../Views/uEditorAlbaranProveedor.dfm | 2 +- .../Views/uViewAlbaranDevProveedor.dfm | 45 ++-- .../Views/uViewAlbaranProveedor.dfm | 14 -- .../uViewDireccionEntregaAlbaranProv.dfm | 130 +++++----- .../uViewDireccionEntregaAlbaranProv.pas | 132 +++++------ .../uPedidosProveedorController.pas | 17 ++ .../PedidosProveedor_Group.bdsgroup | 3 +- .../Reports/uRptPedidosProveedor_Server.dfm | 66 ++++-- .../Reports/uRptPedidosProveedor_Server.pas | 2 +- .../Views/uViewDireccionEntregaPedidoProv.dfm | 86 ++++--- .../Views/uViewDireccionEntregaPedidoProv.pas | 137 +++++------ Source/Servidor/FactuGES_Server.bdsproj | 17 +- Source/Servidor/FactuGES_Server.drc | 196 +++++++-------- Source/Servidor/FactuGES_Server.rc | 2 +- Source/Servidor/FactuGES_Server.res | Bin 23208 -> 23496 bytes Source/Servidor/uDataModuleServer.dfm | 6 +- 24 files changed, 560 insertions(+), 619 deletions(-) diff --git a/Source/Base/Utiles/uDataTableUtils.pas b/Source/Base/Utiles/uDataTableUtils.pas index 76e67f34..21b2c0e4 100644 --- a/Source/Base/Utiles/uDataTableUtils.pas +++ b/Source/Base/Utiles/uDataTableUtils.pas @@ -3,7 +3,7 @@ unit uDataTableUtils; interface uses - uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta, uDAMemDataTable; + uDACDSDataTable, uDADataTable, uDAInterfaces; const ID_NULO = -9000; @@ -19,19 +19,9 @@ function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; procedure ConectarTabla (ATarget: TDADataTable); procedure DesconectarTabla (ATarget: TDADataTable); -procedure CopyDataTableDA5(ASource : TDADataTable; ATarget: TDADataTable; - const OnlySelectedRows : Boolean = False); - -procedure CopyDataTableDA3(ASource : TDADataTable; ATarget : TDADataTable; - const OnlySelectedRows : Boolean = False); - procedure CloneDataTable(const ASource : TDACDSDataTable; var ATarget : TDACDSDataTable; - RemoteUpdate: Boolean = True); overload; - -function CloneDataTable(const ASource : TDAMemDataTable; - RemoteUpdate: Boolean = True): TDAMemDataTable; overload; - + RemoteUpdate: Boolean = True); procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; Const WithKey: Boolean = False); @@ -39,6 +29,9 @@ procedure DuplicarRegistros(ASource : TDADataTable; ATarget : TDADataTable; AModo : TModoDuplicarRegistros; APermitirRepetidos: Boolean = True; Const WithDeltas: Boolean = True; Const WithKey: Boolean = False); +procedure CopyDataTable(ASource : TDADataTable; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); + procedure DeleteAllTable(const ADataTable : TDADataTable); function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; @@ -55,84 +48,7 @@ implementation uses Classes, DB, uDAClasses, SysUtils, uDABINAdapter, uROTypes, cxControls, - Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer; - - -procedure CopyDataTableDA5(ASource : TDADataTable; - ATarget: TDADataTable; - const OnlySelectedRows : Boolean); -var - AStream : Binary; - AStream2 : Binary; - AFilter : String; - AFiltered : Boolean; - AObj : ISeleccionable; - i : Integer; -begin - AFilter := ''; - AFiltered := False; - - if not Assigned(ASource) then - raise Exception.Create ('No se ha asignado la tabla de origen (CopyDataTable)'); - - if not Assigned(ATarget) then - raise Exception.Create ('No se ha asignado la tabla de destino (CopyDataTable)'); - - if not ATarget.Active then - ATarget.Active := True; - - if OnlySelectedRows then - begin - if not Supports(ASource, ISeleccionable, aObj) then - raise Exception.Create('El origen de datos no soporta la interfaz ISeleccionable (CopyDataTable)'); - - if ASource.Filtered then - begin - AFiltered := True; - AFilter := ASource.Filter; - ASource.Filtered := False; - end; - - ASource.Filter := ''; - if ASource.Active then - ASource.Close; - - for i := 0 to AObj.SelectedRecords.Count - 1 do - begin - if (i > 0) then - ASource.Filter := ASource.Filter + ' or '; - ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(AObj.SelectedRecords.Items[i]) + ')'; - end; - - ASource.Filtered := True; - end; - - if not ASource.Active then - ASource.Open; - - AStream := Binary.Create; - DesconectarTabla(ATarget); - try - ASource.SaveToStream(AStream); - AStream2 := AStream.Clone; - -// ShowMessage(AStream.ToReadableString); - ATarget.LoadFromStream(AStream2); ///->>>>>>>>>>>>>>>>>>>>>>>>>>ERRORRRR - finally - FreeAndNil(AStream); - ConectarTabla(ATarget); - // Dejar el filtro de la tabla origen como estaba - if OnlySelectedRows then - begin - ASource.Filtered := False; - ASource.Filter := AFilter; - if AFiltered then - ASource.Filtered := True; - end; - end; -end; - - + Dialogs, Variants, uDBSelectionListUtils, uROClasses; function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; begin @@ -185,11 +101,10 @@ var i : integer; begin bCambiado := False; - if Assigned(ADataTable) and (ADataTable.Active) then begin - bCambiado :=(ADataTable.State = dsEdit) or - (ADataTable.HasDelta and DeltaValuesAreDifferent(ADataTable.Delta)); + bCambiado := (ADataTable.State = dsEdit) or + DeltaValuesAreDifferent(ADataTable.Delta); if (not bCambiado) then begin @@ -198,8 +113,7 @@ begin begin bCambiado := bCambiado or ((TDADataTable(dtDetails.Items[i])).State in dsEditModes) or - ((TDADataTable(dtDetails.Items[i])).HasDelta and - DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta)); + DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta); if bCambiado then Break; end; @@ -214,81 +128,6 @@ begin ADataTable.ClearRows; end; - -function CloneDataTable(const ASource : TDAMemDataTable; - RemoteUpdate: Boolean = True): TDAMemDataTable; -var - i : Integer; - ATarget : TDAMemDataTable; -begin - if not Assigned(ASource) then - raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); - - ATarget := TDAMemDataTable.Create(NIL); - with ATarget do - begin - - { ATENCIÓN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -------------------------------------------------------------------- - DA5 tiene un fallo en el cual las tablas definidas como detalle no - tienen asociados los eventos internos before... y after... por lo - que los campos AutoInc no funcionan (no pone el -1, -2...). - La forma de arreglarlo es llamar a DisableEventHandlers/EnableEventHandlers - que realiza la asociación de los eventos. - } - ATarget.DisableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!! - - - try - if not Assigned(ASource.RemoteDataAdapter) then - raise Exception.Create('No está asignado RemoteDataAdapter (' + ASource.Name + ')'); - - LogicalName := ASource.LogicalName; - CustomAttributes.Assign(ASource.CustomAttributes); - Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; - Params.AssignParamCollection(ASource.Params); - - RemoteDataAdapter := ASource.RemoteDataAdapter; - - Randomize; - Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); - - BusinessRulesID := ASource.BusinessRulesID; - - with MasterParamsMappings do - for i := 0 to ASource.MasterParamsMappings.Count - 1 do - Add(ASource.MasterParamsMappings.Strings[i]); - - with MasterRequestMappings do - for i := 0 to ASource.MasterRequestMappings.Count - 1 do - Add(ASource.MasterRequestMappings.Strings[i]); - - MasterMappingMode := ASource.MasterMappingMode; - - MasterFields := ASource.MasterFields; - MasterOptions := ASource.MasterOptions; - - DetailFields := ASource.DetailFields; - DetailOptions := ASource.DetailOptions; - - RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; - StreamingOptions := ASource.StreamingOptions; - RemoteFetchEnabled := ASource.RemoteFetchEnabled; - finally - ATarget.EnableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!!!!!!! - end; - end; - - if not RemoteUpdate then - begin - ATarget.LogChanges := False; - ATarget.RemoteFetchEnabled := False; - end; - - Result := ATarget; -end; - - procedure CloneDataTable(const ASource : TDACDSDataTable; var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); var @@ -296,17 +135,10 @@ var begin with ATarget do begin - // ****** Inicio migración DA 5 - {RemoteService := ASource.GetRemoteService; - Adapter := ASource.GetAdapter;} + RemoteService := ASource.GetRemoteService; + Adapter := ASource.GetAdapter; - if not Assigned(ASource.RemoteDataAdapter) then - raise Exception.Create('No está asignado RemoteDataAdapter (' + ASource.Name + ')'); - - RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); - // ****** Fin migración DA 5 - - BusinessRulesID := ASource.BusinessRulesID; + //BusinessRulesID := ASource.BusinessRulesID; Randomize; Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); LogicalName := ASource.LogicalName; @@ -316,8 +148,6 @@ begin if Assigned(ASource.LocalSchema) then LocalSchema := ASource.LocalSchema else begin - // ****** Inicio migración DA 5 - { with SchemaCall do begin MethodName := ASource.SchemaCall.MethodName; @@ -332,13 +162,9 @@ begin end; end; end; - } - // ****** Fin migración DA 5 ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema; end; - // ****** Inicio migración DA 5 - { with DataUpdateCall do begin MethodName := ASource.DataUpdateCall.MethodName; @@ -385,8 +211,6 @@ begin end; end; end; - } - // ****** Fin migración DA 5 with MasterParamsMappings do for i := 0 to ASource.MasterParamsMappings.Count - 1 do @@ -415,6 +239,7 @@ begin ATarget.RemoteFetchEnabled := False; end; end; + function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; var @@ -426,7 +251,16 @@ begin begin for x := 0 to (aDelta.LoggedFieldCount-1) do begin - OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + if aDelta.LoggedFieldTypes[x] <> datBlob then + begin + try + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + except + // Capturar cualquier tipo de excepción de conversión de tipos + on E: EVariantTypeCastError do + OldNewAreDifferent := True; + end; + end; if OldNewAreDifferent then Break; // Abandon iteration at the first difference between old and new. @@ -439,7 +273,7 @@ begin end; -procedure CopyDataTableDA3(ASource : TDADataTable; ATarget : TDADataTable; +procedure CopyDataTable(ASource : TDADataTable; ATarget : TDADataTable; const OnlySelectedRows : Boolean = False); var DABin: Binary; @@ -480,7 +314,6 @@ begin DABin := Binary.Create; DAAdapter := TDABINAdapter.Create(nil); - try ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor @@ -489,11 +322,12 @@ begin ASource.Open; ASource.First; + DAAdapter.Initialize(DABin, aiWrite); DAAdapter.WriteDataset(DABin, ASource, [woRows]); + DAAdapter.Initialize(DABin, aiReadFromBeginning); DAAdapter.ReadDataset(DABin, ATarget); DAAdapter.Finalize; - ATarget.RemoteFetchEnabled := True; // "Conectamos" la tabla del servidor otra vez // Dejar el filtro de la tabla origen como estaba @@ -627,14 +461,14 @@ begin if Assigned(ADetail) then begin // ¡¡¡¡¡ MUY IMPORTANTE !!!!!!!!!!!!!!!!!! - //ADetail.DataTable.DisableEventHandlers; + ADetail.DataTable.DisableEventHandlers; try ADetail.DataTable.MasterSource := AMasterDataSource; finally { Hay que activar los eventos porque dejan de funcionar las reglas de negocio al establecer la relación maestro-detalle. (Fallo de Data Abstract 3) } - //ADetail.DataTable.EnableEventHandlers; + ADetail.DataTable.EnableEventHandlers; end; end; end; @@ -667,4 +501,5 @@ begin end; end; + end. diff --git a/Source/Cliente/FactuGES.bdsproj b/Source/Cliente/FactuGES.bdsproj index e7ebb3a9..49fbff4c 100644 --- a/Source/Cliente/FactuGES.bdsproj +++ b/Source/Cliente/FactuGES.bdsproj @@ -149,7 +149,7 @@ False 2 3 - 7 + 8 0 False False @@ -162,7 +162,7 @@ Rodax Software S.L. - 2.3.7.0 + 2.3.8.0 FactuGES diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index 666038d8..32d7d18d 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "c:\Codigo Luis Leon\Source\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 2,3,6,0 -PRODUCTVERSION 2,3,6,0 +FILEVERSION 2,3,7,0 +PRODUCTVERSION 2,3,7,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -13,7 +13,7 @@ BEGIN BLOCK "0C0A04E4" BEGIN VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "2.3.6.0\0" + VALUE "FileVersion", "2.3.7.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductVersion", "2.3.6.0\0" END diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index ee5b9de562f618e828c384b02a3ec026a1ea2ba4..8ccdbe9316f7b0c35fd285d6f8c5e2212fae8344 100644 GIT binary patch delta 36 scmaEJfa}cxu7(!IElgtbI5`-Y8JHLt7&xZO&tv+^Xt7;%K2ta&0NWi3LjV8( delta 36 scmaEJfa}cxu7(!IElgtbIN2GP8JHLt7}%%F&tv+^Xue%^K2ta&0NU~jKmY&$ diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup index 3074cdce..a39b4057 100644 --- a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup @@ -22,7 +22,8 @@ Plugin\AlbaranesProveedor_plugin.bdsproj ..\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.bdsproj ..\..\Cliente\FactuGES.bdsproj - DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedProv_AlbProv_relation.bpl FactuGES.exe + ..\..\Servidor\FactuGES_Server.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedProv_AlbProv_relation.bpl FactuGES.exe FactuGES_Server.exe diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas index 4ea3c3a6..1881e915 100644 --- a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas +++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas @@ -54,6 +54,8 @@ type procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false); procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false); + + procedure Limpiardireccion(AAlbaran: IBizAlbaranProveedor); end; TAlbaranesProveedorController = class(TObservador, IAlbaranesProveedorController) @@ -119,6 +121,8 @@ type procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false); procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false); + + procedure Limpiardireccion(AAlbaran: IBizAlbaranProveedor); end; implementation @@ -958,6 +962,20 @@ begin end; end; +procedure TAlbaranesProveedorController.Limpiardireccion(AAlbaran: IBizAlbaranProveedor); +begin + if Assigned(AAlbaran) then + begin + AAlbaran.Edit; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCALLE).AsVariant := null; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPOBLACION).AsVariant := null; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPROVINCIA).AsVariant := null; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCODIGO_POSTAL).AsVariant := null; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPERSONA_CONTACTO).AsVariant := null; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorTELEFONO).AsVariant := null; + end; +end; + function TAlbaranesProveedorController.Nuevo: IBizAlbaranProveedor; var AAlbaran : IBizAlbaranProveedor; diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm index 1b7f47b8..e3cd9737 100644 --- a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm @@ -105,20 +105,48 @@ object RptAlbaranesProveedor: TRptAlbaranesProveedor 'PRESA,'#10' V_ALBARANES_PROVEEDOR.ID_PROVEEDOR,'#10' V_ALBARANES_PROVE' + 'EDOR.NOMBRE,'#10' V_ALBARANES_PROVEEDOR.FECHA_ALBARAN,'#10' V_ALBARANE' + 'S_PROVEEDOR.REFERENCIA,'#10' V_ALBARANES_PROVEEDOR.ID_PEDIDO,'#10' V_A' + - 'LBARANES_PROVEEDOR.REF_PED_PROVEEDOR,'#10' V_ALBARANES_PROVEEDOR.CO' + - 'DIGO_POSTAL,'#10' V_ALBARANES_PROVEEDOR.POBLACION,'#10' V_ALBARANES_PR' + - 'OVEEDOR.PROVINCIA,'#10' V_ALBARANES_PROVEEDOR.PERSONA_CONTACTO,'#10' V' + - '_ALBARANES_PROVEEDOR.TELEFONO,'#10' V_ALBARANES_PROVEEDOR.CALLE,'#10' ' + - 'V_ALBARANES_PROVEEDOR.OBSERVACIONES,'#10' V_ALBARANES_PROVEEDOR.IMP' + - 'ORTE_TOTAL,'#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NO' + - 'MBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS RAZON_SOCIAL_' + - 'EMPRESA,'#10' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPRESA,'#10' EMPRESAS' + - '.FAX AS FAX_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1_EMPRESA,'#10' EM' + - 'PRESAS.EMAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGI' + - 'NA_WEB_EMPRESA'#10'FROM'#10' V_ALBARANES_PROVEEDOR'#10' LEFT OUTER JOIN ' + - 'V_PROVEEDORES ON (V_PROVEEDORES.ID = V_ALBARANES_PROVEEDOR.ID_PR' + - 'OVEEDOR)'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_ALBARANE' + - 'S_PROVEEDOR.ID_EMPRESA)'#10'WHERE V_ALBARANES_PROVEEDOR.ID = :ID' + 'LBARANES_PROVEEDOR.REF_PED_PROVEEDOR,'#10' '#10' CASE WHEN (ALMACENES.' + + 'ID > 0)'#10' THEN CASE WHEN V_ALBARANES_PROVEEDOR.CALLE i' + + 's null'#10' THEN ALMACENES.NOMBRE'#10' E' + + 'ND'#10' END AS NOMBRE_ALMACEN,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' ' + + ' THEN CASE WHEN V_ALBARANES_PROVEEDOR.CALLE is null'#10' ' + + ' THEN ALMACENES.CALLE'#10' ELSE V_ALBARAN' + + 'ES_PROVEEDOR.CALLE'#10' END'#10' ELSE V_ALBAR' + + 'ANES_PROVEEDOR.CALLE'#10' END as CALLE,'#10' '#10' CASE WHEN (ALMACENES.I' + + 'D > 0)'#10' THEN CASE WHEN V_ALBARANES_PROVEEDOR.CALLE is' + + ' null'#10' THEN ALMACENES.CODIGO_POSTAL'#10' ' + + ' ELSE V_ALBARANES_PROVEEDOR.CODIGO_POSTAL'#10' E' + + 'ND'#10' ELSE V_ALBARANES_PROVEEDOR.CODIGO_POSTAL'#10' END as' + + ' CODIGO_POSTAL,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN' + + ' CASE WHEN V_ALBARANES_PROVEEDOR.CALLE is null'#10' ' + + 'THEN ALMACENES.POBLACION'#10' ELSE V_ALBARANES_PROVE' + + 'EDOR.POBLACION'#10' END'#10' ELSE V_ALBARANES' + + '_PROVEEDOR.POBLACION'#10' END as POBLACION,'#10#10' CASE WHEN (ALMACENES' + + '.ID > 0)'#10' THEN CASE WHEN V_ALBARANES_PROVEEDOR.CALLE ' + + 'is null'#10' THEN ALMACENES.PROVINCIA'#10' ' + + ' ELSE V_ALBARANES_PROVEEDOR.PROVINCIA'#10' END'#10' ' + + ' ELSE V_ALBARANES_PROVEEDOR.PROVINCIA'#10' END as PROVINCIA' + + ','#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN CASE WHEN V_A' + + 'LBARANES_PROVEEDOR.CALLE is null'#10' THEN ALMACENES' + + '.PERSONA_CONTACTO'#10' ELSE V_ALBARANES_PROVEEDOR.PE' + + 'RSONA_CONTACTO'#10' END'#10' ELSE V_ALBARANES' + + '_PROVEEDOR.PERSONA_CONTACTO'#10' END as PERSONA_CONTACTO,'#10#10' CASE W' + + 'HEN (ALMACENES.ID > 0)'#10' THEN CASE WHEN V_ALBARANES_PR' + + 'OVEEDOR.CALLE is null'#10' THEN ALMACENES.TELEFONO'#10' ' + + ' ELSE V_ALBARANES_PROVEEDOR.TELEFONO'#10' ' + + ' END'#10' ELSE V_ALBARANES_PROVEEDOR.TELEFONO'#10' END a' + + 's TELEFONO,'#10#10' V_ALBARANES_PROVEEDOR.OBSERVACIONES,'#10' V_ALBARANE' + + 'S_PROVEEDOR.IMPORTE_TOTAL,'#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA' + + ','#10' EMPRESAS.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL A' + + 'S RAZON_SOCIAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPR' + + 'ESA,'#10' EMPRESAS.FAX AS FAX_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_' + + '1_EMPRESA,'#10' EMPRESAS.EMAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAG' + + 'INA_WEB AS PAGINA_WEB_EMPRESA'#10'FROM'#10' V_ALBARANES_PROVEEDOR'#10' L' + + 'EFT OUTER JOIN V_PROVEEDORES ON (V_PROVEEDORES.ID = V_ALBARANES_' + + 'PROVEEDOR.ID_PROVEEDOR)'#10' LEFT OUTER JOIN ALMACENES ON (ALMACENE' + + 'S.ID = V_ALBARANES_PROVEEDOR.ID_ALMACEN)'#10' LEFT OUTER JOIN EMPRE' + + 'SAS ON (EMPRESAS.ID = V_ALBARANES_PROVEEDOR.ID_EMPRESA)'#10'WHERE V_' + + 'ALBARANES_PROVEEDOR.ID = :ID' StatementType = stSQL ColumnMappings = < item @@ -310,6 +338,18 @@ object RptAlbaranesProveedor: TRptAlbaranesProveedor Lookup = False LookupCache = False end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end item Name = 'NOMBRE' DataType = datString diff --git a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas index 92a56823..71101cf1 100644 --- a/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas @@ -25,9 +25,9 @@ type frxChartObject1: TfrxChartObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; schReport: TDASchema; DataDictionary: TDADataDictionary; - frxReport: TfrxReport; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm index a743f2f2..d49f9b96 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm @@ -6,7 +6,7 @@ inherited fEditorAlbaranProveedor: TfEditorAlbaranProveedor ClientWidth = 765 OnClose = CustomEditorClose ExplicitWidth = 773 - ExplicitHeight = 653 + ExplicitHeight = 646 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm index 1d97ed99..ac68d610 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm @@ -23,7 +23,10 @@ inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor Width = 143 end inherited frViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor + Width = 350 + ExplicitWidth = 350 inherited dxLayoutControl1: TdxLayoutControl + Width = 350 inherited edtlNombre: TcxDBTextEdit ExplicitWidth = 224 Width = 224 @@ -54,23 +57,15 @@ inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor inherited dxLayoutControl1: TdxLayoutControl Width = 445 Height = 175 - inherited rdxDestino1: TRadioButton - Width = 255 - ExplicitWidth = 255 - end - inherited rdxDestino2: TRadioButton - Width = 287 - ExplicitWidth = 287 - end inherited cbLista: TcxDBLookupComboBox ExplicitWidth = 425 Width = 425 end inherited bModificar: TBitBtn - Left = 109 - Top = 109 - ExplicitLeft = 109 - ExplicitTop = 109 + Left = 268 + Top = 117 + ExplicitLeft = 268 + ExplicitTop = 117 end inherited txtDireccion: TStaticText Width = 549 @@ -78,13 +73,15 @@ inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor ExplicitWidth = 549 ExplicitHeight = 110 end + inherited cxLista: TcxCheckBox + ExplicitWidth = 566 + Width = 566 + end + inherited cxOtro: TcxCheckBox + ExplicitWidth = 566 + Width = 566 + end inherited dxLayoutGroup1: TdxLayoutGroup - inherited dxLayoutItem1: TdxLayoutItem - Visible = False - end - inherited dxLayoutControl1Item2: TdxLayoutItem - Visible = False - end inherited dxLayoutControl1Item4: TdxLayoutItem Visible = False end @@ -107,16 +104,16 @@ inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor Width = 69 end inherited eRefFactura: TcxDBTextEdit - ExplicitWidth = 172 - Width = 172 + ExplicitWidth = 330 + Width = 330 end inherited eReferenciaProveedor: TcxDBTextEdit - ExplicitWidth = 172 - Width = 172 + ExplicitWidth = 330 + Width = 330 end inherited eReferenciaFacturaProveedor: TcxDBTextEdit - ExplicitWidth = 172 - Width = 172 + ExplicitWidth = 330 + Width = 330 end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited dxLayoutControl1Group6: TdxLayoutGroup diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm index 08bbfa22..2ad38a37 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm @@ -120,12 +120,6 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor Left = 239 ExplicitLeft = 239 end - inherited Button1: TBitBtn - OnClick = frViewProveedorAlbaranButton1Click - end - inherited Button2: TBitBtn - OnClick = frViewProveedorAlbaranButton2Click - end inherited Button3: TBitBtn Left = 123 ExplicitLeft = 123 @@ -169,14 +163,6 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor Height = 175 ExplicitWidth = 445 ExplicitHeight = 175 - inherited rdxDestino1: TRadioButton - Width = 255 - ExplicitWidth = 255 - end - inherited rdxDestino2: TRadioButton - Width = 287 - ExplicitWidth = 287 - end inherited cbLista: TcxDBLookupComboBox ExplicitWidth = 425 Width = 425 diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm index bbfafb4d..16335b28 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm @@ -1,42 +1,23 @@ inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv - Width = 569 - Height = 225 - ExplicitWidth = 569 - ExplicitHeight = 225 + Width = 586 + Height = 301 + ExplicitWidth = 586 + ExplicitHeight = 301 object dxLayoutControl1: TdxLayoutControl Left = 0 Top = 0 - Width = 569 - Height = 225 + Width = 586 + Height = 301 Align = alClient ParentBackground = True TabOrder = 0 AutoContentSizes = [acsWidth, acsHeight] DesignSize = ( - 569 - 225) - object rdxDestino1: TRadioButton - Left = 10 - Top = 10 - Width = 255 - Height = 17 - Action = actLista - Caption = 'Recibir el albar'#225'n en el almac'#233'n:' - TabOrder = 0 - TabStop = True - end - object rdxDestino2: TRadioButton - Left = 10 - Top = 60 - Width = 287 - Height = 17 - Action = actOtro - Caption = 'Recibir el albar'#225'n en esta otra direcci'#243'n:' - TabOrder = 2 - end + 586 + 301) object cbLista: TcxDBLookupComboBox Left = 25 - Top = 33 + Top = 37 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'ID_ALMACEN' DataBinding.DataSource = dsAlbaran @@ -63,11 +44,11 @@ inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True TabOrder = 1 - Width = 425 + Width = 551 end object bModificar: TBitBtn - Left = 431 - Top = 190 + Left = 448 + Top = 266 Width = 128 Height = 25 Caption = 'Modificar la direcci'#243'n...' @@ -75,24 +56,70 @@ inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv OnClick = bModificarClick end object txtDireccion: TStaticText - Left = 10 - Top = 83 - Width = 549 - Height = 110 + Left = 25 + Top = 91 + Width = 551 + Height = 177 AutoSize = False BevelKind = bkFlat TabOrder = 3 OnDblClick = txtDireccionDblClick end + object cxLista: TcxCheckBox + Left = 10 + Top = 10 + Caption = 'Recibir el albar'#225'n en el almac'#233'n:' + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + State = cbsChecked + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 566 + end + object cxOtro: TcxCheckBox + Left = 10 + Top = 64 + Caption = 'Recibir el albar'#225'n en el almac'#233'n:' + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + State = cbsChecked + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 566 + end object dxLayoutGroup1: TdxLayoutGroup ShowCaption = False Hidden = True ShowBorder = False - object dxLayoutItem1: TdxLayoutItem - Caption = 'New Item' + object dxLayoutControl1Item4: TdxLayoutItem ShowCaption = False - Control = rdxDestino1 - ControlOptions.AutoColor = True + Control = cxLista ControlOptions.ShowBorder = False end object dxLayoutControl1Item3: TdxLayoutItem @@ -102,16 +129,16 @@ inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv Control = cbLista ControlOptions.ShowBorder = False end - object dxLayoutControl1Item2: TdxLayoutItem - Caption = 'New Item' + object dxLayoutControl1Item6: TdxLayoutItem ShowCaption = False - Control = rdxDestino2 - ControlOptions.AutoColor = True + Control = cxOtro ControlOptions.ShowBorder = False end - object dxLayoutControl1Item4: TdxLayoutItem + object dxLayoutControl1Item5: TdxLayoutItem AutoAligns = [aaHorizontal] AlignVert = avClient + Caption = 'StaticText1' + Offsets.Left = 15 ShowCaption = False Control = txtDireccion ControlOptions.AutoColor = True @@ -128,26 +155,23 @@ inherited frViewDireccionEntregaAlbaranProv: TfrViewDireccionEntregaAlbaranProv end end object ActionList1: TActionList - Left = 40 + Left = 80 Top = 16 object actLista: TAction - Caption = 'Recibir el pedido en el almac'#233'n:' - Checked = True - GroupIndex = 1 + Caption = 'Recibir el albar'#195#161'n en el almac'#233'n:' OnExecute = actListaExecute end object actOtro: TAction - Caption = 'Recibir el pedido en esta otra direcci'#243'n:' - GroupIndex = 1 + Caption = 'Recibir el albar'#195#161'n en esta otra direcci'#243'n:' OnExecute = actOtroExecute end end object dsAlbaran: TDADataSource - Left = 8 - Top = 16 + Left = 40 + Top = 8 end object dsAlmacenes: TDADataSource Left = 8 - Top = 48 + Top = 40 end end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas index 1b9fb5db..7ba9676f 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas @@ -8,7 +8,7 @@ uses cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uBizAlmacenes, uAlmacenesController, uAlbaranesProveedorController, - Buttons; + Buttons, cxCheckBox; type IViewDireccionEntregaAlbaranProv = interface(IViewBase) @@ -20,13 +20,11 @@ type TfrViewDireccionEntregaAlbaranProv = class(TfrViewBase, IViewDireccionEntregaAlbaranProv) dxLayoutControl1: TdxLayoutControl; - rdxDestino1: TRadioButton; - rdxDestino2: TRadioButton; + cxLista: TcxCheckBox; + cxOtro: TcxCheckBox; cbLista: TcxDBLookupComboBox; dxLayoutGroup1: TdxLayoutGroup; - dxLayoutItem1: TdxLayoutItem; dxLayoutControl1Item3: TdxLayoutItem; - dxLayoutControl1Item2: TdxLayoutItem; ActionList1: TActionList; actLista: TAction; actOtro: TAction; @@ -38,7 +36,6 @@ type txtDireccion: TStaticText; procedure actListaExecute(Sender: TObject); procedure actOtroExecute(Sender: TObject); - procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure bModificarClick(Sender: TObject); procedure txtDireccionDblClick(Sender: TObject); protected @@ -48,7 +45,7 @@ type FController : IAlbaranesProveedorController; function GetAlbaranProveedor: IBizAlbaranProveedor; procedure SetAlbaranProveedor(const Value: IBizAlbaranProveedor); - procedure CambioDireccionAlmacen; + procedure LimpiarDireccionEntrega; procedure RefrescarDireccion; procedure SetReadOnly(Value: Boolean); override; @@ -66,25 +63,40 @@ uses procedure TfrViewDireccionEntregaAlbaranProv.actListaExecute(Sender: TObject); begin - actLista.Checked := True; - RefrescarDireccion; -end; - -procedure TfrViewDireccionEntregaAlbaranProv.actOtroExecute(Sender: TObject); -begin - actOtro.Checked := True; -// memDireccion.Enabled := True; - - if Assigned(FAlbaran) then + if cxLista.Checked then begin - FController.VerDireccionEntrega(FAlbaran); + cbLista.Enabled := True; + cbLista.DroppedDown := True; + end + else + begin + cbLista.Enabled := False; + cbLista.Text := ''; - if (FAlbaran.ID_ALMACEN > 0) then + if Assigned(FAlbaran) and (FAlbaran.ID_ALMACEN > 0) then begin FAlbaran.Edit; FAlbaran.ID_ALMACEN := 0; end; end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.actOtroExecute(Sender: TObject); +begin + if cxOtro.Checked then + begin + if Assigned(FAlbaran) then + FController.VerDireccionEntrega(FAlbaran); + txtDireccion.Enabled := True; + bModificar.Enabled := True; + end + else + begin + txtDireccion.Enabled := False; + bModificar.Enabled := False; + LimpiarDireccionEntrega; + end; + RefrescarDireccion; end; @@ -94,30 +106,10 @@ begin actOtro.Execute; end; -procedure TfrViewDireccionEntregaAlbaranProv.CambioDireccionAlmacen; +procedure TfrViewDireccionEntregaAlbaranProv.LimpiarDireccionEntrega; begin - if Assigned(FAlbaran) - and Assigned(FAlmacenes) then - begin - FAlbaran.Edit; - FAlbaran.CALLE := FAlmacenes.CALLE; - FAlbaran.POBLACION := FAlmacenes.POBLACION; - FAlbaran.POBLACION := FAlmacenes.POBLACION; - FAlbaran.PROVINCIA := FAlmacenes.PROVINCIA; - FAlbaran.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; - FAlbaran.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; - FAlbaran.TELEFONO := FAlmacenes.TELEFONO; - RefrescarDireccion; - end; -end; - -procedure TfrViewDireccionEntregaAlbaranProv.cbListaPropertiesValidate( - Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); -begin - if Assigned(FAlbaran) and Assigned(FAlmacenes) - and (FAlbaran.ID_ALMACEN <> FAlmacenes.ID) then - CambioDireccionAlmacen; + FController.LimpiarDireccion(FAlbaran); + RefrescarDireccion; end; constructor TfrViewDireccionEntregaAlbaranProv.Create(AOwner: TComponent); @@ -149,54 +141,52 @@ begin txtDireccion.Caption := ''; if Assigned(FAlbaran) then begin - if (actOtro.Checked) then - begin - cbLista.Enabled := False; - cbLista.Text := ''; - txtDireccion.Enabled := True; - txtDireccion.Caption := FAlbaran.CALLE; - txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.CODIGO_POSTAL + ' ' + FAlbaran.POBLACION; - txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.PROVINCIA; - bModificar.Enabled := True; - end - else begin - txtDireccion.Enabled := False; - bModificar.Enabled := False; - cbLista.Enabled := True; - cbLista.DroppedDown := True; - end; + txtDireccion.Enabled := True; + txtDireccion.Caption := FAlbaran.CALLE; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.CODIGO_POSTAL + ' ' + FAlbaran.POBLACION; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FAlbaran.PROVINCIA; end; end; procedure TfrViewDireccionEntregaAlbaranProv.SetAlbaranProveedor(const Value: IBizAlbaranProveedor); begin - cbLista.Properties.OnValidate := NIL; dsAlbaran.DataTable := nil; FAlbaran := Value; if Assigned(FAlbaran) then begin dsAlbaran.DataTable := FAlbaran.DataTable; - cbLista.Properties.OnValidate := cbListaPropertiesValidate; { Para poder inicializar con el almacén por defecto en el caso de un - almacén nuevo, antes hay que comprobar que la dirección alternativa + albarán nuevo, antes hay que comprobar que la dirección alternativa está vacia porque puede ser que el albarán se haya generado automáticamente a partir de un pedido a proveedor con una dirección que no es un almacén. } + actLista.Checked := True; + actOtro.Checked := True; if (FAlbaran.EsNuevo) and - ((Length(FAlbaran.CALLE) = 0) and - (Length(FAlbaran.CODIGO_POSTAL) = 0) and - (Length(FAlbaran.POBLACION) = 0) and - (Length(FAlbaran.PROVINCIA) = 0)) then - CambioDireccionAlmacen + ((Length(FAlbaran.CALLE) = 0) and + (Length(FAlbaran.CODIGO_POSTAL) = 0) and + (Length(FAlbaran.POBLACION) = 0) and + (Length(FAlbaran.PROVINCIA) = 0)) then + begin + LimpiarDireccionEntrega; + actOtro.Checked := False; + end else - if (FAlbaran.ID_ALMACEN < 1) then - actOtro.Checked := True; + begin + if (FAlbaran.ID_ALMACEN <= 0) then + actLista.Checked := False; - RefrescarDireccion; + if (Length(FAlbaran.CALLE) = 0) then + actOtro.Checked := False; + end; end; + + RefrescarDireccion; + cxLista.Action := actLista; + cxOtro.Action := actOtro; end; procedure TfrViewDireccionEntregaAlbaranProv.SetReadOnly(Value: Boolean); @@ -204,8 +194,8 @@ begin inherited; if ReadOnly then begin - rdxDestino1.Enabled := False; - rdxDestino2.Enabled := False; + cxLista.Enabled := False; + cxOtro.Enabled := False; end; end; diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas index 6cd138cc..d4b12889 100644 --- a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas @@ -48,6 +48,7 @@ type function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; procedure RecuperarProveedor(APedido: IBizPedidoProveedor); + procedure Limpiardireccion(APedido: IBizPedidoProveedor); end; TPedidosProveedorController = class(TObservador, IPedidosProveedorController) @@ -111,6 +112,8 @@ type function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor; function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; + + procedure Limpiardireccion(APedido: IBizPedidoProveedor); end; implementation @@ -717,6 +720,20 @@ begin end; end; +procedure TPedidosProveedorController.Limpiardireccion(APedido: IBizPedidoProveedor); +begin + if Assigned(APedido) then + begin + APedido.Edit; + APedido.DataTable.FieldByName(fld_PedidosProveedorCALLE).AsVariant := null; + APedido.DataTable.FieldByName(fld_PedidosProveedorPOBLACION).AsVariant := null; + APedido.DataTable.FieldByName(fld_PedidosProveedorPROVINCIA).AsVariant := null; + APedido.DataTable.FieldByName(fld_PedidosProveedorCODIGO_POSTAL).AsVariant := null; + APedido.DataTable.FieldByName(fld_PedidosProveedorPERSONA_CONTACTO).AsVariant := null; + APedido.DataTable.FieldByName(fld_PedidosProveedorTELEFONO).AsVariant := null; + end; +end; + function TPedidosProveedorController.Nuevo: IBizPedidoProveedor; var APedido : IBizPedidoProveedor; diff --git a/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup index 3475bb1e..2fbd8571 100644 --- a/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup +++ b/Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup @@ -21,7 +21,8 @@ Views\PedidosProveedor_view.bdsproj Plugin\PedidosProveedor_plugin.bdsproj ..\..\Cliente\FactuGES.bdsproj - DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl FactuGES.exe + ..\..\Servidor\FactuGES_Server.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl FactuGES.exe FactuGES_Server.exe diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm index 06082a60..aac07404 100644 --- a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm @@ -104,30 +104,46 @@ object RptPedidosProveedor: TRptPedidosProveedor 'SELECT'#10' V_PEDIDOS_PROVEEDOR.ID,'#10' V_PEDIDOS_PROVEEDOR.ID_EMPRES' + 'A,'#10' V_PEDIDOS_PROVEEDOR.REFERENCIA,'#10' V_PEDIDOS_PROVEEDOR.FECHA' + '_PEDIDO,'#10' V_PEDIDOS_PROVEEDOR.OBSERVACIONES,'#10' V_PROVEEDORES.NO' + - 'MBRE,'#10' V_PROVEEDORES.FAX,'#10' ALMACENES.NOMBRE AS NOMBRE_ALMACEN,' + - #10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN ALMACENES.CALL' + - 'E'#10' ELSE V_PEDIDOS_PROVEEDOR.CALLE'#10' END as CALLE,'#10#10' ' + - 'CASE WHEN (ALMACENES.ID > 0)'#10' THEN ALMACENES.POBLACIO' + - 'N'#10' ELSE V_PEDIDOS_PROVEEDOR.POBLACION'#10' END as POBLAC' + - 'ION,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN ALMACENES.' + - 'PROVINCIA'#10' ELSE V_PEDIDOS_PROVEEDOR.PROVINCIA'#10' END a' + - 's PROVINCIA,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN AL' + - 'MACENES.CODIGO_POSTAL'#10' ELSE V_PEDIDOS_PROVEEDOR.CODIG' + - 'O_POSTAL'#10' END as CODIGO_POSTAL,'#10#10' CASE WHEN (ALMACENES.ID > 0)' + - #10' THEN ALMACENES.PERSONA_CONTACTO'#10' ELSE V_' + - 'PEDIDOS_PROVEEDOR.PERSONA_CONTACTO'#10' END as PERSONA_CONTACTO,'#10#10' ' + - ' CASE WHEN (ALMACENES.ID > 0)'#10' THEN ALMACENES.TELEFON' + - 'O'#10' ELSE V_PEDIDOS_PROVEEDOR.TELEFONO'#10' END as TELEFON' + - 'O,'#10#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NOMBRE AS ' + - 'NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS RAZON_SOCIAL_EMPRESA,' + - #10' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPRESA,'#10' EMPRESAS.FAX AS ' + - 'FAX_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1_EMPRESA,'#10' EMPRESAS.E' + - 'MAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGINA_WEB_E' + - 'MPRESA'#10'FROM'#10' V_PEDIDOS_PROVEEDOR'#10' LEFT OUTER JOIN V_PROVEEDORE' + - 'S ON (V_PROVEEDORES.ID = V_PEDIDOS_PROVEEDOR.ID_PROVEEDOR)'#10' LEF' + - 'T OUTER JOIN ALMACENES ON (ALMACENES.ID = V_PEDIDOS_PROVEEDOR.ID' + - '_ALMACEN)'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_PEDIDOS' + - '_PROVEEDOR.ID_EMPRESA)'#10'WHERE V_PEDIDOS_PROVEEDOR.ID = :ID' + 'MBRE,'#10' V_PROVEEDORES.FAX,'#10' CASE WHEN (ALMACENES.ID > 0)'#10' ' + + ' THEN CASE WHEN V_PEDIDOS_PROVEEDOR.CALLE is null'#10' ' + + ' THEN ALMACENES.NOMBRE'#10' END'#10' END AS NOMB' + + 'RE_ALMACEN,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN CAS' + + 'E WHEN V_PEDIDOS_PROVEEDOR.CALLE is null'#10' THEN A' + + 'LMACENES.CALLE'#10' ELSE V_PEDIDOS_PROVEEDOR.CALLE'#10' ' + + ' END'#10' ELSE V_PEDIDOS_PROVEEDOR.CALLE'#10' ' + + ' END as CALLE,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN ' + + 'CASE WHEN V_PEDIDOS_PROVEEDOR.CALLE is null'#10' THE' + + 'N ALMACENES.POBLACION'#10' ELSE V_PEDIDOS_PROVEEDOR.' + + 'POBLACION'#10' END'#10' ELSE V_PEDIDOS_PROVEE' + + 'DOR.POBLACION'#10' END as POBLACION,'#10#10' CASE WHEN (ALMACENES.ID > 0' + + ')'#10' THEN CASE WHEN V_PEDIDOS_PROVEEDOR.CALLE is null'#10' ' + + ' THEN ALMACENES.PROVINCIA'#10' ELSE V' + + '_PEDIDOS_PROVEEDOR.PROVINCIA'#10' END'#10' EL' + + 'SE V_PEDIDOS_PROVEEDOR.PROVINCIA'#10' END as PROVINCIA,'#10#10' CASE WHE' + + 'N (ALMACENES.ID > 0)'#10' THEN CASE WHEN V_PEDIDOS_PROVEE' + + 'DOR.CALLE is null'#10' THEN ALMACENES.CODIGO_POSTAL'#10 + + ' ELSE V_PEDIDOS_PROVEEDOR.CODIGO_POSTAL'#10' ' + + ' END'#10' ELSE V_PEDIDOS_PROVEEDOR.CODIGO_POSTAL'#10 + + ' END as CODIGO_POSTAL,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' ' + + ' THEN CASE WHEN V_PEDIDOS_PROVEEDOR.CALLE is null'#10' ' + + ' THEN ALMACENES.PERSONA_CONTACTO'#10' ELSE V_PE' + + 'DIDOS_PROVEEDOR.PERSONA_CONTACTO'#10' END'#10' ' + + ' ELSE V_PEDIDOS_PROVEEDOR.PERSONA_CONTACTO'#10' END as PERSONA_CON' + + 'TACTO,'#10#10' CASE WHEN (ALMACENES.ID > 0)'#10' THEN CASE WHE' + + 'N V_PEDIDOS_PROVEEDOR.CALLE is null'#10' THEN ALMACE' + + 'NES.TELEFONO'#10' ELSE V_PEDIDOS_PROVEEDOR.TELEFONO'#10 + + ' END'#10' ELSE V_PEDIDOS_PROVEEDOR.TELEFO' + + 'NO'#10' END as TELEFONO,'#10#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' ' + + 'EMPRESAS.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS RA' + + 'ZON_SOCIAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPRESA,' + + #10' EMPRESAS.FAX AS FAX_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1_EM' + + 'PRESA,'#10' EMPRESAS.EMAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_' + + 'WEB AS PAGINA_WEB_EMPRESA'#10'FROM'#10' V_PEDIDOS_PROVEEDOR'#10' LEFT OUTE' + + 'R JOIN V_PROVEEDORES ON (V_PROVEEDORES.ID = V_PEDIDOS_PROVEEDOR.' + + 'ID_PROVEEDOR)'#10' LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = V_P' + + 'EDIDOS_PROVEEDOR.ID_ALMACEN)'#10' LEFT OUTER JOIN EMPRESAS ON (EMPR' + + 'ESAS.ID = V_PEDIDOS_PROVEEDOR.ID_EMPRESA)'#10'WHERE V_PEDIDOS_PROVEE' + + 'DOR.ID = :ID' StatementType = stSQL ColumnMappings = < item @@ -705,7 +721,7 @@ object RptPedidosProveedor: TRptPedidosProveedor PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Por defecto' ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 39352.784043865740000000 + ReportOptions.LastChange = 39352.784043865700000000 ScriptLanguage = 'PascalScript' ScriptText.Strings = ( '' diff --git a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas index 85a40ad5..8fea3a21 100644 --- a/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas +++ b/Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas @@ -25,9 +25,9 @@ type frxChartObject1: TfrxChartObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; + frxReport: TfrxReport; schReport: TDASchema; DataDictionary: TDADataDictionary; - frxReport: TfrxReport; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm index d59bf99e..d8481f29 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm @@ -15,26 +15,9 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv DesignSize = ( 586 301) - object rdxDestino1: TRadioButton - Left = 10 - Top = 10 - Width = 255 - Height = 17 - Action = actLista - TabOrder = 0 - TabStop = True - end - object rdxDestino2: TRadioButton - Left = 10 - Top = 60 - Width = 287 - Height = 17 - Action = actOtro - TabOrder = 2 - end object cbLista: TcxDBLookupComboBox Left = 25 - Top = 33 + Top = 37 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'ID_ALMACEN' DataBinding.DataSource = dsPedido @@ -61,7 +44,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True TabOrder = 1 - Width = 425 + Width = 551 end object bModificar: TBitBtn Left = 448 @@ -74,7 +57,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv end object txtDireccion: TStaticText Left = 25 - Top = 83 + Top = 91 Width = 551 Height = 177 AutoSize = False @@ -82,15 +65,61 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv TabOrder = 3 OnDblClick = txtDireccionDblClick end + object cxLista: TcxCheckBox + Left = 10 + Top = 10 + Caption = 'Recibir el pedido en el almac'#233'n:' + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + State = cbsChecked + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 566 + end + object cxOtro: TcxCheckBox + Left = 10 + Top = 64 + Caption = 'Recibir el pedido en el almac'#233'n:' + Properties.ImmediatePost = True + Properties.MultiLine = True + Properties.NullStyle = nssUnchecked + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + State = cbsChecked + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 566 + end object dxLayoutGroup1: TdxLayoutGroup ShowCaption = False Hidden = True ShowBorder = False - object dxLayoutItem1: TdxLayoutItem - Caption = 'New Item' + object dxLayoutControl1Item4: TdxLayoutItem ShowCaption = False - Control = rdxDestino1 - ControlOptions.AutoColor = True + Control = cxLista ControlOptions.ShowBorder = False end object dxLayoutControl1Item3: TdxLayoutItem @@ -100,11 +129,9 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Control = cbLista ControlOptions.ShowBorder = False end - object dxLayoutControl1Item2: TdxLayoutItem - Caption = 'New Item' + object dxLayoutControl1Item6: TdxLayoutItem ShowCaption = False - Control = rdxDestino2 - ControlOptions.AutoColor = True + Control = cxOtro ControlOptions.ShowBorder = False end object dxLayoutControl1Item5: TdxLayoutItem @@ -132,13 +159,10 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Top = 16 object actLista: TAction Caption = 'Recibir el pedido en el almac'#233'n:' - Checked = True - GroupIndex = 1 OnExecute = actListaExecute end object actOtro: TAction Caption = 'Recibir el pedido en esta otra direcci'#243'n:' - GroupIndex = 1 OnExecute = actOtroExecute end end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas index 4f1d19ed..1dbc148a 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas @@ -3,12 +3,12 @@ unit uViewDireccionEntregaPedidoProv; interface uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizPedidosProveedor, cxGraphics, dxLayoutControl, cxMemo, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController, - Buttons; + Buttons, cxCheckBox, cxDBEdit; type IViewDireccionEntregaPedidoProv = interface(IViewBase) @@ -20,13 +20,9 @@ type TfrViewDireccionEntregaPedidoProv = class(TfrViewBase, IViewDireccionEntregaPedidoProv) dxLayoutControl1: TdxLayoutControl; - rdxDestino1: TRadioButton; - rdxDestino2: TRadioButton; cbLista: TcxDBLookupComboBox; dxLayoutGroup1: TdxLayoutGroup; - dxLayoutItem1: TdxLayoutItem; dxLayoutControl1Item3: TdxLayoutItem; - dxLayoutControl1Item2: TdxLayoutItem; ActionList1: TActionList; actLista: TAction; actOtro: TAction; @@ -36,9 +32,12 @@ type bModificar: TBitBtn; txtDireccion: TStaticText; dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Item4: TdxLayoutItem; + cxLista: TcxCheckBox; + dxLayoutControl1Item6: TdxLayoutItem; + cxOtro: TcxCheckBox; procedure actListaExecute(Sender: TObject); procedure actOtroExecute(Sender: TObject); - procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure bModificarClick(Sender: TObject); procedure txtDireccionDblClick(Sender: TObject); protected @@ -48,7 +47,7 @@ type FController : IPedidosProveedorController; function GetPedidoProveedor: IBizPedidoProveedor; procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); - procedure CambioDireccionAlmacen; + procedure LimpiarDireccionEntrega; procedure RefrescarDireccion; procedure SetReadOnly(Value: Boolean); override; @@ -63,29 +62,44 @@ implementation {$R *.dfm} uses - uEditorRegistryUtils, uCustomView; + uEditorRegistryUtils, schPedidosProveedorClient_Intf, uCustomView; procedure TfrViewDireccionEntregaPedidoProv.actListaExecute(Sender: TObject); begin - actLista.Checked := True; - RefrescarDireccion; -end; - -procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject); -begin - actOtro.Checked := True; -// txtDireccion.Enabled := True; - - if Assigned(FPedido) then + if cxLista.Checked then begin - FController.VerDireccionEntrega(FPedido); + cbLista.Enabled := True; + cbLista.DroppedDown := True; + end + else + begin + cbLista.Enabled := False; + cbLista.Text := ''; - if (FPedido.ID_ALMACEN > 0) then + if Assigned(FPedido) and (FPedido.ID_ALMACEN > 0) then begin FPedido.Edit; FPedido.ID_ALMACEN := 0; end; end; +end; + +procedure TfrViewDireccionEntregaPedidoProv.actOtroExecute(Sender: TObject); +begin + if cxOtro.Checked then + begin + if Assigned(FPedido) then + FController.VerDireccionEntrega(FPedido); + txtDireccion.Enabled := True; + bModificar.Enabled := True; + end + else + begin + txtDireccion.Enabled := False; + bModificar.Enabled := False; + LimpiarDireccionEntrega; + end; + RefrescarDireccion; end; @@ -95,30 +109,10 @@ begin actOtro.Execute; end; -procedure TfrViewDireccionEntregaPedidoProv.CambioDireccionAlmacen; +procedure TfrViewDireccionEntregaPedidoProv.LimpiarDireccionEntrega; begin - if Assigned(FPedido) - and Assigned(FAlmacenes) then - begin - FPedido.Edit; - FPedido.CALLE := FAlmacenes.CALLE; - FPedido.POBLACION := FAlmacenes.POBLACION; - FPedido.POBLACION := FAlmacenes.POBLACION; - FPedido.PROVINCIA := FAlmacenes.PROVINCIA; - FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; - FPedido.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; - FPedido.TELEFONO := FAlmacenes.TELEFONO; - RefrescarDireccion; - end; -end; - -procedure TfrViewDireccionEntregaPedidoProv.cbListaPropertiesValidate( - Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); -begin - if Assigned(FPedido) and Assigned(FAlmacenes) - and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then - CambioDireccionAlmacen; + FController.LimpiarDireccion(FPedido); + RefrescarDireccion; end; constructor TfrViewDireccionEntregaPedidoProv.Create(AOwner: TComponent); @@ -150,43 +144,43 @@ begin txtDireccion.Caption := ''; if Assigned(FPedido) then begin - if (actOtro.Checked) then - begin - cbLista.Enabled := False; - cbLista.Text := ''; - txtDireccion.Enabled := True; - txtDireccion.Caption := FPedido.CALLE; - txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION; - txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.PROVINCIA; - bModificar.Enabled := True; - end - else begin - txtDireccion.Enabled := False; - cbLista.Enabled := True; - cbLista.DroppedDown := True; - bModificar.Enabled := False; - end; + txtDireccion.Enabled := True; + txtDireccion.Caption := FPedido.CALLE; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION; + txtDireccion.Caption := txtDireccion.Caption + #13#10 + FPedido.PROVINCIA; end; end; procedure TfrViewDireccionEntregaPedidoProv.SetPedidoProveedor( const Value: IBizPedidoProveedor); begin - cbLista.Properties.OnValidate := NIL; dsPedido.DataTable := nil; FPedido := Value; + if Assigned(FPedido) then + begin + dsPedido.DataTable := FPedido.DataTable; - dsPedido.DataTable := FPedido.DataTable; - cbLista.Properties.OnValidate := cbListaPropertiesValidate; + actLista.Checked := True; + actOtro.Checked := True; + if (FPedido.EsNuevo) then + begin + LimpiarDireccionEntrega; + actOtro.Checked := False; + end + else + begin + if (FPedido.ID_ALMACEN <= 0) then + actLista.Checked := False; - if (FPedido.EsNuevo) then - CambioDireccionAlmacen - else - if (FPedido.ID_ALMACEN < 1) then - actOtro.Checked := True; + if (Length(FPedido.CALLE) = 0) then + actOtro.Checked := False; + end; + end; RefrescarDireccion; + cxLista.Action := actLista; + cxOtro.Action := actOtro; end; procedure TfrViewDireccionEntregaPedidoProv.SetReadOnly(Value: Boolean); @@ -194,13 +188,12 @@ begin inherited; if ReadOnly then begin - rdxDestino1.Enabled := False; - rdxDestino2.Enabled := False; + cxLista.Enabled := False; + cxOtro.Enabled := False; end; end; -procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick( - Sender: TObject); +procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick(Sender: TObject); begin inherited; actOtro.Execute; diff --git a/Source/Servidor/FactuGES_Server.bdsproj b/Source/Servidor/FactuGES_Server.bdsproj index a783851c..c84f057d 100644 --- a/Source/Servidor/FactuGES_Server.bdsproj +++ b/Source/Servidor/FactuGES_Server.bdsproj @@ -1,4 +1,4 @@ - + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + False