From bea103d6c2a5e5809f814524133b0897c6c1e949 Mon Sep 17 00:00:00 2001 From: roberto Date: Fri, 7 Nov 2008 21:05:48 +0000 Subject: [PATCH] Se arregla pedidos proveedor porque esta mal hecho (en las vistas no se deben de tocar campos del modelo de datos, para eso esta el controller), falta todavia detalles de funcionamiento de interfaz no tocar git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@744 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Source/Base/Base.dproj | 102 +++++------ Source/Cliente/FactuGES.dpr | 1 - Source/Cliente/FactuGES.dproj | 24 --- .../Controller/uAlmacenesController.pas | 2 +- .../Almacenes/Data/uDataModuleAlmacenes.pas | 6 +- .../Model/Data/uIDataModuleAlmacenes.pas | 2 +- .../Almacenes/Servidor/srvAlmacenes_Impl.dfm | 10 +- .../Almacenes/Servidor/srvAlmacenes_Impl.pas | 6 +- .../View/uIEditorDetalleReservas.pas | 4 + .../Controller/uInventarioController.pas | 7 +- .../Inventario/Inventario_Group.groupproj | 24 +-- .../Inventario/Views/Inventario_view.res | Bin 4748 -> 384 bytes .../Views/uEditorDetalleReservas.dfm | 8 +- .../Views/uEditorDetalleReservas.pas | 125 +++++++++++-- .../Inventario/Views/uEditorInventario.dfm | 4 +- .../Inventario/Views/uEditorInventario.pas | 50 ++++- .../Inventario/Views/uViewDetalleReservas.dfm | 47 ++++- .../Inventario/Views/uViewDetalleReservas.pas | 171 +++++++++++++----- .../Inventario/Views/uViewInventario.pas | 12 +- .../Obras/Controller/uObrasController.pas | 2 +- .../Modulos/Obras/Data/uDataModuleObras.pas | 6 +- .../Obras/Model/Data/uIDataModuleObras.pas | 2 +- .../Modulos/Obras/Servidor/srvObras_Impl.dfm | 21 ++- .../Modulos/Obras/Servidor/srvObras_Impl.pas | 6 +- .../uPedidosProveedorController.pas | 21 ++- .../Views/uEditorPedidoProveedor.dfm | 78 ++++---- .../Views/uEditorPedidoProveedor.pas | 4 +- .../Views/uViewDireccionEntregaPedidoProv.dfm | 24 ++- .../Views/uViewDireccionEntregaPedidoProv.pas | 32 +++- .../Views/uViewObraReserva.dfm | 65 ++++--- .../Views/uViewObraReserva.pas | 146 +++++++-------- .../Views/uViewPedidoProveedor.dfm | 40 ++-- .../Views/uViewPedidoProveedor.pas | 92 +++++++++- .../uGenerarAlbaranesProvUtils.pas | 5 +- Source/Servicios/FactuGES.RODL | 4 + Source/Servicios/FactuGES_Intf.pas | 14 +- Source/Servicios/FactuGES_Invk.pas | 14 +- Source/Servicios/RODLFILE.res | Bin 38529 -> 38677 bytes Source/Servidor/FactuGES_Server.RES | Bin 23208 -> 23212 bytes Source/Servidor/FactuGES_Server.dpr | 12 +- Source/Servidor/FactuGES_Server.dproj | 30 ++- Source/Servidor/FactuGES_Server.rc | 2 +- 42 files changed, 826 insertions(+), 399 deletions(-) diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 20b5c514..1236be43 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -53,58 +53,58 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr index c094c23d..906bce24 100644 --- a/Source/Cliente/FactuGES.dpr +++ b/Source/Cliente/FactuGES.dpr @@ -2,7 +2,6 @@ program FactuGES; uses // ExceptionLog, - ExceptionLog, Forms, Windows, SysUtils, diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 8d49b2b8..5d963ed0 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -55,30 +55,6 @@ VCLApplication FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1430FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.4.3.0FactuGESFactuGES1.4.3.0 - - - - - - - - - - - - - - - - - - - - - - - - ExpressPrinting System by Developer Express Inc. PluginSDK for Delphi 10 (Runtime) Microsoft Office 2000 Sample Automation Server Wrapper Components diff --git a/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas index 4c1eb1a8..0b8eb242 100644 --- a/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas +++ b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas @@ -138,7 +138,7 @@ function TAlmacenesController.DarListaAlmacenes: TStringList; begin ShowHourglassCursor; try - Result := FDataModule.DarListaAlmacenes; + Result := FDataModule.DarListaAlmacenes(AppFactuGES.EmpresaActiva.ID); finally HideHourglassCursor; end; diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas index 99930219..e9b1f435 100644 --- a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas @@ -27,7 +27,7 @@ type function GetItems : IBizAlmacen; function GetItem(const ID : Integer) : IBizAlmacen; function NewItem : IBizAlmacen; - function DarListaAlmacenes : TStringList; + function DarListaAlmacenes(const IDEmpresa: Integer): TStringList; end; implementation @@ -51,11 +51,11 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModuleAlmacenes.DarListaAlmacenes: TStringList; +function TDataModuleAlmacenes.DarListaAlmacenes(const IDEmpresa: Integer): TStringList; var ABinary : Binary; begin - ABinary := (RORemoteService as IsrvAlmacenes).DarListaAlmacenes; + ABinary := (RORemoteService as IsrvAlmacenes).DarListaAlmacenes(IDEmpresa); Result := TStringList.Create; Result.LoadFromStream(ABinary); end; diff --git a/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas index a64dddee..9ecfaafd 100644 --- a/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas +++ b/Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas @@ -11,7 +11,7 @@ type function GetItems: IBizAlmacen; function GetItem(const ID : Integer) : IBizAlmacen; function NewItem : IBizAlmacen; - function DarListaAlmacenes : TStringList; + function DarListaAlmacenes(const IDEmpresa: Integer): TStringList; end; implementation diff --git a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm index 2bdaf2c8..017401f9 100644 --- a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm @@ -113,16 +113,22 @@ object srvAlmacenes: TsrvAlmacenes Diagrams = Diagrams Datasets = < item - Params = <> + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + ParamType = daptInput + end> Statements = < item + Connection = 'IBX' ConnectionType = 'Interbase' Default = True TargetTable = 'ALMACENES' Name = 'IBX' SQL = 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'ALMACEN'#39#10 + - 'order by NOMBRE'#10#10 + 'and ID_EMPRESA = :ID_EMPRESA'#10'order by NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item diff --git a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas index 5281af7b..0318a0e8 100644 --- a/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas @@ -32,7 +32,7 @@ type procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); protected - function DarListaAlmacenes: Binary; + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; end; implementation @@ -66,7 +66,7 @@ begin SessionManager := dmServer.SessionManager; end; -function TsrvAlmacenes.DarListaAlmacenes: Binary; +function TsrvAlmacenes.DarListaAlmacenes(const IDEmpresa: Integer): Binary; var ASchema : TDASchema; AConn : IDAConnection; @@ -79,7 +79,7 @@ begin AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); try - dsData := ASchema.NewDataset(AConn, 'ListaAlmacenes'); + dsData := ASchema.NewDataset(AConn, 'ListaAlmacenes', ['ID_EMPRESA'], [IntToStr(IDEmpresa)]); except RaiseError('No existe la tabla ALMACENES'); end; diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas index ea7f29ae..906cd1ba 100644 --- a/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas +++ b/Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas @@ -8,6 +8,10 @@ uses type IEditorDetalleReservas = interface(IEditorGridBase) ['{EE301C2F-98DC-49CD-B7EA-D29D0B9326D8}'] + function GetTipoReservas: String; + procedure SetTipoReservas(const Value: String); + property TipoReservas: String read GetTipoReservas write SetTipoReservas; + function GetController : IInventarioController; procedure SetController (const Value : IInventarioController); property Controller : IInventarioController read GetController write SetController; diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index e4b1fe50..f7b6615f 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -22,7 +22,7 @@ type function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; procedure VerTodos(AInventario: IBizInventario; const pTipoInventario: String); - procedure VerReservas(AArticulo: IBizInventario); + procedure VerReservas(AArticulo: IBizInventario; const ATipoReservas: String); function BuscarTodos: IBizInventario; function BuscarTodosAlmacenes: IBizInventario; @@ -138,7 +138,7 @@ type procedure VerTodos(AInventario: IBizInventario; const pTipoInventario: String); function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; - procedure VerReservas(AArticulo: IBizInventario); + procedure VerReservas(AArticulo: IBizInventario; const ATipoReservas: String); function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; @@ -553,7 +553,7 @@ begin end; end; -procedure TInventarioController.VerReservas(AArticulo: IBizInventario); +procedure TInventarioController.VerReservas(AArticulo: IBizInventario; const ATipoReservas: String); var AEditor : IEditorDetalleReservas; begin @@ -565,6 +565,7 @@ begin with AEditor do begin Controller := Self; //OJO ORDEN MUY IMPORTANTE + TipoReservas := ATipoReservas; DetalleReservas := FDataModule.GetDetalleReservas; Articulo := AArticulo; MultiSelect := True; diff --git a/Source/Modulos/Inventario/Inventario_Group.groupproj b/Source/Modulos/Inventario/Inventario_Group.groupproj index 73a1b288..58170cd9 100644 --- a/Source/Modulos/Inventario/Inventario_Group.groupproj +++ b/Source/Modulos/Inventario/Inventario_Group.groupproj @@ -170,15 +170,6 @@ - - - - - - - - - @@ -188,6 +179,15 @@ + + + + + + + + + @@ -252,13 +252,13 @@ - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Inventario/Views/Inventario_view.res b/Source/Modulos/Inventario/Views/Inventario_view.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm index c6abfd12..c92ee603 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm @@ -122,7 +122,7 @@ inherited fEditorDetalleReservas: TfEditorDetalleReservas ExplicitHeight = 419 inherited cxGrid: TcxGrid Width = 669 - Height = 291 + Height = 250 ExplicitWidth = 669 ExplicitHeight = 291 inherited cxGridView: TcxGridDBTableView @@ -219,6 +219,12 @@ inherited fEditorDetalleReservas: TfEditorDetalleReservas end end end + inherited pnlAlmacenes: TPanel + Width = 669 + inherited cxListaAlmacenesObras: TcxComboBox + ExplicitWidth = 510 + end + end inherited dxComponentPrinter: TdxComponentPrinter inherited dxComponentPrinterLink: TdxGridReportLink ReportDocument.CreationDate = 39280.678861030090000000 diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas index 1ba4ca64..54854672 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas @@ -12,7 +12,7 @@ uses uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, uIEditorDetalleReservas, uBizInventario, uViewGridBase, JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uDAInterfaces, - uInventarioController; + uInventarioController, uEditorInventario; type @@ -31,10 +31,12 @@ type procedure actTrasladarReservadosExecute(Sender: TObject); private - function SeleccionarAlmacen(Descripcion: String): Integer; + function Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + function DarIDObraSeleccionada(Descripcion: String): Integer; protected + FTipoReservas: String; FArticulo: IBizInventario; FDetalleReservas: IBizDetalleReservas; FController : IInventarioController; @@ -43,7 +45,8 @@ type procedure SetArticulo(const Value: IBizInventario); function GetDetalleReservas: IBizDetalleReservas; procedure SetDetalleReservas(const Value: IBizDetalleReservas); - + function GetTipoReservas: String; + procedure SetTipoReservas(const Value: String); function GetController : IInventarioController; virtual; procedure SetController (const Value : IInventarioController); virtual; @@ -58,6 +61,7 @@ type property Articulo: IBizInventario read GetArticulo write SetArticulo; property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; property Controller : IInventarioController read GetController write SetController; + property TipoReservas: String read GetTipoReservas write SetTipoReservas; // property ArticulosSeleccionados: IBizDetalleReservas read GetArticulosSeleccionados; // property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; @@ -70,10 +74,10 @@ implementation {$R *.DFM} uses - cxControls, uGridStatusUtils, uDataModuleInventario, uDataModuleUsuarios, + cxControls, Variants, uGridStatusUtils, uDataModuleInventario, uDataModuleUsuarios, uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, uAlmacenesController, uBizAlmacenes, uFactuGES_App, uDialogUtils, - // uGenerarAlbaranesProvUtils, + uEditorElegirAlmacenObraOperacion, schInventarioClient_Intf; {, uDBSelectionList, uDataModulePedidosProveedor, @@ -141,11 +145,25 @@ begin end; function TfEditorDetalleReservas.DarIDAlmacenSeleccionado(Descripcion: String): Integer; +var + IDAlmacen: Variant; begin - if (ViewGrid._Grid.ActiveLevel.Tag = -1) then - Result := SeleccionarAlmacen(Descripcion) + IDAlmacen := (ViewGrid as IViewDetalleReservas).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDAlmacen) then + Result := IDAlmacen else - Result := ViewGrid._Grid.ActiveLevel.Tag; + Result := Seleccionar(Descripcion, tAlmacen) +end; + +function TfEditorDetalleReservas.DarIDObraSeleccionada(Descripcion: String): Integer; +var + IDObra: Variant; +begin + IDObra := (ViewGrid as IViewDetalleReservas).DarIDAlmacenObraSeleccionada; + if not VarIsNull(IDObra) then + Result := IDObra + else + Result := Seleccionar(Descripcion, TObra) end; destructor TfEditorDetalleReservas.Destroy; @@ -194,6 +212,11 @@ function TfEditorDetalleReservas.GetDetalleReservas: IBizDetalleReservas; begin Result := FDetalleReservas; end; +function TfEditorDetalleReservas.GetTipoReservas: String; +begin + Result := FTipoReservas; +end; + { function TfEditorDetalleReservas.GetMultiSelect: Boolean; begin @@ -218,10 +241,10 @@ begin inherited; end; -function TfEditorDetalleReservas.SeleccionarAlmacen(Descripcion: String): Integer; -{var +{function TfEditorDetalleReservas.SeleccionarAlmacen(Descripcion: String): Integer; +var AAlmacenes : IBizAlmacen; - Respuesta : integer;} + Respuesta : integer; begin Result := -1; { @@ -248,7 +271,6 @@ begin Respuesta := JsElegirAlmacenDialog.Execute; if Respuesta <> IDCANCEL then Result := JsElegirAlmacenDialog.RadioResult - 1000; -} end; { procedure TfEditorDetalleReservas.SetController(const Value: IDetalleReservasController); @@ -262,10 +284,68 @@ begin end; end; } +function TfEditorDetalleReservas.Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; +var + ALista : TStringList; + AListaAux : TStringList; + Respuesta : Variant; + i: Integer; + +begin + Result := Null; + + with TfEditorElegirAlmacenObraOperacion.Create(NIL) do + try + case TipoSeleccion of + tAlmacen: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qué almacén desea realizar la operación.'; + eEtiqueta.Caption := 'Almacén:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + end; + tObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qué obra desea realizar la operación.'; + eEtiqueta.Caption := 'Obra:'; + ALista := Controller.ObrasController.DarListaObras; + end; + tAlmacenObra: begin + Caption := Descripcion; + eDescripcion.Caption := 'Elija sobre qué almacén u obra desea realizar la operación.'; + eEtiqueta.Caption := 'Almacén/Obra:'; + ALista := Controller.AlmacenesController.DarListaAlmacenes; + AListaAux := Controller.ObrasController.DarListaObras; + + for i := 0 to AListaAux.Count - 1 do + ALista.Add(Format('%s=%s', [AListaAux.Names[i], AListaAux.Values[AListaAux.Names[i]]])); + end; + end; + + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to ALista.Count - 1 do + Add(ALista.Names[i]); + finally + EndUpdate; + end; + end; + + if (ShowModal = mrOk) then + Result := ALista.Values[cxListaAlmacenesObras.EditValue]; + + finally + Free; + end; +end; + procedure TfEditorDetalleReservas.SetArticulo(const Value: IBizInventario); begin FArticulo := Value; - if Assigned(FArticulo) then + if Assigned(FArticulo) + and (FArticulo.RESERVA > 0) then begin tbxEditFiltro.Text := FArticulo.REFERENCIA; end; @@ -284,6 +364,25 @@ begin if Assigned(ViewGrid) then (ViewGrid as IViewDetalleReservas).DetalleReservas := FDetalleReservas; end; +procedure TfEditorDetalleReservas.SetTipoReservas(const Value: String); +begin + FTipoReservas := Value; + + if not Assigned(FController) then + raise Exception.Create('No hay ningún controlador asignado'); + + if (FTipoReservas = CTE_INV_ALMACEN) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).Almacenes := FController.AlmacenesController.DarListaAlmacenes; + end + else if (FTipoReservas = CTE_INV_OBRA) then + begin + if Assigned(ViewGrid) then + (ViewGrid as IViewDetalleReservas).Obras := FController.ObrasController.DarListaObras; + end; +end; + { procedure TfEditorDetalleReservas.SetMultiSelect(AValue: Boolean); begin diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.dfm b/Source/Modulos/Inventario/Views/uEditorInventario.dfm index f94b3943..2d732709 100644 --- a/Source/Modulos/Inventario/Views/uEditorInventario.dfm +++ b/Source/Modulos/Inventario/Views/uEditorInventario.dfm @@ -328,6 +328,7 @@ inherited fEditorInventario: TfEditorInventario Caption = 'Recibir pedido' ImageIndex = 24 OnExecute = actRecibirPedidoExecute + OnUpdate = actRecibirPedidoUpdate end object actTrasladar: TAction Category = 'Logistica' @@ -341,6 +342,7 @@ inherited fEditorInventario: TfEditorInventario Caption = 'Reservar' ImageIndex = 25 OnExecute = actReservarExecute + OnUpdate = actReservarUpdate end object actLiberar: TAction Category = 'Logistica' @@ -363,8 +365,8 @@ inherited fEditorInventario: TfEditorInventario OnExecute = actContraerExecute end object actReservados: TAction + Category = 'Logistica' Caption = 'Ver reservados' - Enabled = False ImageIndex = 25 OnExecute = actReservadosExecute OnUpdate = actReservadosUpdate diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.pas b/Source/Modulos/Inventario/Views/uEditorInventario.pas index 28b66d3d..cee74bf2 100644 --- a/Source/Modulos/Inventario/Views/uEditorInventario.pas +++ b/Source/Modulos/Inventario/Views/uEditorInventario.pas @@ -45,6 +45,10 @@ type procedure FormShow(Sender: TObject); procedure actReservadosUpdate(Sender: TObject); procedure actReservadosExecute(Sender: TObject); + procedure actNuevoUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actRecibirPedidoUpdate(Sender: TObject); + procedure actReservarUpdate(Sender: TObject); private function Seleccionar(Descripcion: String; TipoSeleccion: TEnumSeleccion): Variant; @@ -173,17 +177,24 @@ begin // inherited; end; +procedure TfEditorInventario.actNuevoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + procedure TfEditorInventario.actReservadosExecute(Sender: TObject); begin inherited; - FController.VerReservas(Inventario); + FController.VerReservas(Inventario, TipoInventario); RefrescarInterno; end; procedure TfEditorInventario.actReservadosUpdate(Sender: TObject); begin inherited; - (Sender as TAction).Enabled := (Inventario.RESERVA > 0); +// (Sender as TAction).Enabled := (Inventario.RESERVA > 0); end; function TfEditorInventario.GetArticulosSeleccionados: IBizInventario; @@ -361,6 +372,13 @@ begin RefrescarInterno; end; +procedure TfEditorInventario.actRecibirPedidoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + procedure TfEditorInventario.actTrasladarExecute(Sender: TObject); var IDAlmacenOrigen, IDAlmacenDestino: Variant; @@ -402,12 +420,29 @@ begin end; end; +procedure TfEditorInventario.actReservarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); + + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + procedure TfEditorInventario.actContraerExecute(Sender: TObject); begin if Assigned(ViewGrid) then ViewGrid.ContraerTodo; end; +procedure TfEditorInventario.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; +end; + procedure TfEditorInventario.actExpandirExecute(Sender: TObject); begin if Assigned(ViewGrid) then @@ -423,12 +458,11 @@ end; procedure TfEditorInventario.actTrasladarUpdate(Sender: TObject); begin inherited; -{ - if Assigned(dsDataTable.DataTable) then - (Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty) - else - (Sender as TAction).Enabled := False; -} + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); + + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (ViewGrid as IViewInventario).ListaAlmacenesObrasVacia; end; procedure TfEditorInventario.actLiberarUpdate(Sender: TObject); diff --git a/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm index 110cd434..5fd0638b 100644 --- a/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm +++ b/Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm @@ -1,7 +1,8 @@ inherited frViewDetalleReservas: TfrViewDetalleReservas + OnShow = CustomViewShow inherited cxGrid: TcxGrid - RootLevelOptions.DetailTabsPosition = dtpTop - OnActiveTabChanged = cxGridActiveTabChanged + Top = 143 + Height = 272 inherited cxGridView: TcxGridDBTableView DataController.KeyFieldNames = 'RecID' DataController.Summary.DefaultGroupSummaryItems = < @@ -163,12 +164,50 @@ inherited frViewDetalleReservas: TfrViewDetalleReservas StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' ExplicitLeft = 383 - ExplicitWidth = 215 - Width = 215 end end end end + object pnlAlmacenes: TPanel [3] + Left = 0 + Top = 102 + Width = 607 + Height = 41 + Align = alTop + TabOrder = 3 + ExplicitLeft = -71 + ExplicitWidth = 678 + DesignSize = ( + 607 + 41) + object eAlmacen: TLabel + Left = 10 + Top = 16 + Width = 44 + Height = 13 + Caption = 'Almac'#233'n:' + end + object cxListaAlmacenesObras: TcxComboBox + Left = 87 + Top = 14 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Properties.OnEditValueChanged = cxListaAlmacenesObrasPropertiesEditValueChanged + 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 + ExplicitWidth = 581 + Width = 510 + end + end inherited dxComponentPrinter: TdxComponentPrinter inherited dxComponentPrinterLink: TdxGridReportLink ReportDocument.CreationDate = 38673.741107951390000000 diff --git a/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas b/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas index 1df71e5f..e030c484 100644 --- a/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas +++ b/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas @@ -15,7 +15,7 @@ uses cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid, uBizInventario, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uAlmacenesController, - uDAInterfaces; + uDAInterfaces, cxContainer, cxMaskEdit, cxDropDownEdit; type IViewDetalleReservas = interface(IViewGrid) @@ -23,9 +23,14 @@ type function GetDetalleReservas: IBizDetalleReservas; procedure SetDetalleReservas(const Value: IBizDetalleReservas); property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; - function GetAlmacenes: IBizAlmacen; - procedure SetAlmacenes(const Value: IBizAlmacen); - property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + property Almacenes: TStringList read GetAlmacenes write SetAlmacenes; + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + property Obras: TStringList read GetObras write SetObras; + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; end; TfrViewDetalleReservas = class(TfrViewGrid, IViewDetalleReservas) @@ -47,31 +52,52 @@ type cxGridViewREFERENCIA_FABR: TcxGridDBColumn; cxGridViewID_ALMACEN_RESERVA: TcxGridDBColumn; cxGridViewALMACEN_RESERVA: TcxGridDBColumn; - - procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); + pnlAlmacenes: TPanel; + eAlmacen: TLabel; + cxListaAlmacenesObras: TcxComboBox; procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxListaAlmacenesObrasPropertiesEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); private - FAlmacenesController: IAlmacenesController; - FAlmacenes: IBizAlmacen; - function GetAlmacenes: IBizAlmacen; - procedure SetAlmacenes(const Value: IBizAlmacen); - //Filtros relativos a la vista - procedure AnadirFiltroAlmacenes; + procedure AnadirFiltroAlmacenesObras; protected + FAlmacenes: TStringList; + FObras: TStringList; FDetalleReservas: IBizDetalleReservas; + + function GetAlmacenes: TStringList; + procedure SetAlmacenes(const Value: TStringList); + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); function GetDetalleReservas: IBizDetalleReservas; procedure SetDetalleReservas(const Value: IBizDetalleReservas); + + +// FAlmacenesController: IAlmacenesController; +// function GetAlmacenes: IBizAlmacen; +// procedure SetAlmacenes(const Value: IBizAlmacen); + + public - property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; procedure AnadirOtrosFiltros; override; - constructor Create(AOwner: TComponent); override; + +// property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + destructor Destroy; override; + + + + + + function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; + end; implementation @@ -79,16 +105,16 @@ implementation uses uDataModuleInventario, schInventarioClient_Intf; -procedure TfrViewDetalleReservas.AnadirFiltroAlmacenes; +procedure TfrViewDetalleReservas.AnadirFiltroAlmacenesObras; var FFiltro : TcxFilterCriteriaItemList; - CodigoAlmacen: String; + CodigoAlmacen: Variant; begin - FFiltro := AddFilterGrid(fboAnd); - CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag); - if CodigoAlmacen <> '-1' then + CodigoAlmacen := DarIDAlmacenObraSeleccionada; + + if not VarIsNull(CodigoAlmacen) then begin FFiltro.AddItem(cxGridViewID_ALMACEN, foEqual, CodigoAlmacen, CodigoAlmacen); cxGridViewALMACEN.Visible := False; @@ -101,7 +127,7 @@ procedure TfrViewDetalleReservas.AnadirOtrosFiltros; begin inherited; - AnadirFiltroAlmacenes; + AnadirFiltroAlmacenesObras; //Finalmente activamos el filtro si tenemos algo if cxGridView.DataController.Filter.IsEmpty @@ -110,17 +136,14 @@ begin cxGrid.ActiveLevel.GridView := cxGridView; end; -constructor TfrViewDetalleReservas.Create(AOwner: TComponent); +procedure TfrViewDetalleReservas.CustomViewShow(Sender: TObject); begin inherited; - FAlmacenesController := TAlmacenesController.Create; - Almacenes := FAlmacenesController.BuscarTodos; -end; - -procedure TfrViewDetalleReservas.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); -begin - inherited; - RefrescarFiltro; + if Assigned(FAlmacenes) or Assigned(FObras) then + cxListaAlmacenesObras.ItemIndex := 0 + //En el caso de ser la vista para la selección de articulos de un determinado almacén + else + pnlAlmacenes.Visible:= False; end; procedure TfrViewDetalleReservas.cxGridViewStylesGetContentStyle(Sender: @@ -142,15 +165,33 @@ begin } end; +procedure TfrViewDetalleReservas.cxListaAlmacenesObrasPropertiesEditValueChanged(Sender: TObject); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewDetalleReservas.DarIDAlmacenObraSeleccionada: Variant; +begin + //INV_ALMACENES + if Assigned(FAlmacenes) then + Result := FAlmacenes.Values[cxListaAlmacenesObras.EditValue] + //INV_OBRAS + else if Assigned(FObras) then + Result := FObras.Values[cxListaAlmacenesObras.EditValue] + else + Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES'); +end; + destructor TfrViewDetalleReservas.Destroy; begin - FAlmacenesController := Nil; FAlmacenes := Nil; + FObras := Nil; FDetalleReservas := Nil; inherited; end; -function TfrViewDetalleReservas.GetAlmacenes: IBizAlmacen; +function TfrViewDetalleReservas.GetAlmacenes: TStringList; begin Result := FAlmacenes; end; @@ -160,24 +201,42 @@ begin Result := FDetalleReservas; end; -procedure TfrViewDetalleReservas.SetAlmacenes(const Value: IBizAlmacen); +function TfrViewDetalleReservas.GetObras: TStringList; +begin + Result := FObras; +end; + +function TfrViewDetalleReservas.ListaAlmacenesObrasVacia: Boolean; +begin + Result := (cxListaAlmacenesObras.Properties.Items.Count = 0); +end; + +procedure TfrViewDetalleReservas.SetAlmacenes(const Value: TStringList); var Nivel: TcxGridLevel; + i: integer; begin FAlmacenes := Value; + eAlmacen.Caption := 'Almacén'; if Assigned(FAlmacenes) then begin - if not FAlmacenes.DataTable.Active then - FAlmacenes.DataTable.Active := True; + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FAlmacenes.Count - 1 do + Add(FAlmacenes.Names[i]); + finally + EndUpdate; + end; + end; - FAlmacenes.First; - while not FAlmacenes.EOF do - begin - Nivel := cxGrid.Levels.Add; - Nivel.Caption := FAlmacenes.NOMBRE; - Nivel.Tag := FAlmacenes.ID; - FAlmacenes.Next; + finally + cxGrid.EndUpdate; end; end; end; @@ -191,4 +250,34 @@ begin dsDataSource.DataTable := Nil; end; +procedure TfrViewDetalleReservas.SetObras(const Value: TStringList); +var + Nivel: TcxGridLevel; + i: integer; +begin + FObras := Value; + eAlmacen.Caption := 'Obra'; + + if Assigned(FObras) then + begin + cxGrid.BeginUpdate; + try + with cxListaAlmacenesObras.Properties.Items do + begin + BeginUpdate; + try + Clear; + for i := 0 to FObras.Count - 1 do + Add(FObras.Names[i]); + finally + EndUpdate; + end; + end; + + finally + cxGrid.EndUpdate; + end; + end; +end; + end. diff --git a/Source/Modulos/Inventario/Views/uViewInventario.pas b/Source/Modulos/Inventario/Views/uViewInventario.pas index e308f3ed..7e28923d 100644 --- a/Source/Modulos/Inventario/Views/uViewInventario.pas +++ b/Source/Modulos/Inventario/Views/uViewInventario.pas @@ -31,6 +31,7 @@ type procedure SetObras(const Value: TStringList); property Obras: TStringList read GetObras write SetObras; function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; end; TfrViewInventario = class(TfrViewGrid, IViewInventario) @@ -79,6 +80,7 @@ type procedure AnadirOtrosFiltros; override; destructor Destroy; override; function DarIDAlmacenObraSeleccionada: Variant; + function ListaAlmacenesObrasVacia: Boolean; end; implementation @@ -146,8 +148,7 @@ begin end; end; -procedure TfrViewInventario.cxListaObrasPropertiesEditValueChanged( - Sender: TObject); +procedure TfrViewInventario.cxListaObrasPropertiesEditValueChanged(Sender: TObject); begin inherited; RefrescarFiltro; @@ -168,7 +169,7 @@ end; destructor TfrViewInventario.Destroy; begin FAlmacenes := Nil; - FObras := Nil; + FObras := Nil; FInventario := Nil; inherited; end; @@ -188,6 +189,11 @@ begin Result := FObras; end; +function TfrViewInventario.ListaAlmacenesObrasVacia: Boolean; +begin + Result := (cxListaAlmacenesObras.Properties.Items.Count = 0); +end; + procedure TfrViewInventario.SetAlmacenes(const Value: TStringList); var Nivel: TcxGridLevel; diff --git a/Source/Modulos/Obras/Controller/uObrasController.pas b/Source/Modulos/Obras/Controller/uObrasController.pas index f0503299..c1838a83 100644 --- a/Source/Modulos/Obras/Controller/uObrasController.pas +++ b/Source/Modulos/Obras/Controller/uObrasController.pas @@ -263,7 +263,7 @@ function TObrasController.DarListaObras: TStringList; begin ShowHourglassCursor; try - Result := FDataModule.DarListaObras; + Result := FDataModule.DarListaObras(AppFactuGES.EmpresaActiva.ID); finally HideHourglassCursor; end; diff --git a/Source/Modulos/Obras/Data/uDataModuleObras.pas b/Source/Modulos/Obras/Data/uDataModuleObras.pas index b89e37b4..3a83bd6d 100644 --- a/Source/Modulos/Obras/Data/uDataModuleObras.pas +++ b/Source/Modulos/Obras/Data/uDataModuleObras.pas @@ -35,7 +35,7 @@ type function GetItems : IBizObra; function GetItem(const ID : Integer) : IBizObra; function NewItem : IBizObra; - function DarListaObras : TStringList; + function DarListaObras(const IDEmpresa: Integer): TStringList; end; implementation @@ -113,11 +113,11 @@ begin end; end; -function TDataModuleObras.DarListaObras: TStringList; +function TDataModuleObras.DarListaObras(const IDEmpresa: Integer): TStringList; var ABinary : Binary; begin - ABinary := (RORemoteService as IsrvObras).DarListaObras; + ABinary := (RORemoteService as IsrvObras).DarListaObras(IdEmpresa); Result := TStringList.Create; Result.LoadFromStream(ABinary); end; diff --git a/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas index 90cd23aa..8aef97d9 100644 --- a/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas +++ b/Source/Modulos/Obras/Model/Data/uIDataModuleObras.pas @@ -12,7 +12,7 @@ type function GetItems: IBizObra; function GetItem(const ID : Integer) : IBizObra; function NewItem : IBizObra; - function DarListaObras : TStringList; + function DarListaObras(const IDEmpresa: Integer) : TStringList; end; implementation diff --git a/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm b/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm index d2bf1ed6..6dbad51c 100644 --- a/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm +++ b/Source/Modulos/Obras/Servidor/srvObras_Impl.dfm @@ -39,11 +39,11 @@ object srvObras: TsrvObras Top = 82 DiagramData = ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10 + + 'idth="1202" Height="535">'#13#10' '#13#10' '#13#10' '#13#10' ' + + ''#13#10' '#13#10 + ''#13#10 end object DataDictionary: TDADataDictionary @@ -395,7 +395,12 @@ object srvObras: TsrvObras Diagrams = Diagrams Datasets = < item - Params = <> + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + ParamType = daptInput + end> Statements = < item Connection = 'IBX' @@ -404,8 +409,8 @@ object srvObras: TsrvObras TargetTable = 'OBRAS' Name = 'IBX' SQL = - 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'OBRA'#39#10'ord' + - 'er by NOMBRE'#10#10 + 'Select ID, NOMBRE'#10'from ALMACENES'#10'where TIPO_ALMACEN = '#39'OBRA'#39#10'and' + + ' ID_EMPRESA = :ID_EMPRESA'#10'order by NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item diff --git a/Source/Modulos/Obras/Servidor/srvObras_Impl.pas b/Source/Modulos/Obras/Servidor/srvObras_Impl.pas index 5b307b4b..c293a2b2 100644 --- a/Source/Modulos/Obras/Servidor/srvObras_Impl.pas +++ b/Source/Modulos/Obras/Servidor/srvObras_Impl.pas @@ -99,7 +99,7 @@ type private procedure Log(Astr: string); protected - function DarListaObras: Binary; + function DarListaObras(const IDEmpresa: Integer): Binary; end; implementation @@ -405,7 +405,7 @@ begin dmServer.EscribirLog(Astr) end; -function TsrvObras.DarListaObras: Binary; +function TsrvObras.DarListaObras(const IDEmpresa: Integer): Binary; var ASchema : TDASchema; AConn : IDAConnection; @@ -418,7 +418,7 @@ begin AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); try - dsData := ASchema.NewDataset(AConn, 'ListaObras'); + dsData := ASchema.NewDataset(AConn, 'ListaObras', ['ID_EMPRESA'], [IntToStr(IDEmpresa)]); except RaiseError('No existe la tabla ALMACENES'); end; diff --git a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas index 78638bb5..938bcf27 100644 --- a/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas +++ b/Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas @@ -52,6 +52,7 @@ type procedure RecuperarProveedor(APedido: IBizPedidoProveedor); procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor); + Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); end; TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController) @@ -116,7 +117,9 @@ type function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor; function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor; - procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor); + procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor); + + Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); end; implementation @@ -142,6 +145,22 @@ begin FDataModule := TDataModulePedidosProveedor.Create(Nil); end; +procedure TPedidosProveedorController.AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant); +begin + if Assigned(APedido) then + begin + if not APedido.DataTable.Editing then + APedido.DataTable.Edit; + + if VarIsNull(IDObra) then + APedido.ID_OBRAIsNull := true + else + APedido.ID_OBRA := IDObra; + + APedido.DataTable.Post; + end; +end; + function TPedidosProveedorController.Buscar(const ID: Integer): IBizPedidoProveedor; begin Result := FDataModule.GetItem(ID); diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm index 7b43718d..723b1fee 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm @@ -112,29 +112,28 @@ inherited fEditorPedidoProveedor: TfEditorPedidoProveedor ExplicitHeight = 506 inherited ToolBar1: TToolBar Width = 865 - Height = 51 + Height = 46 ExplicitWidth = 865 - ExplicitHeight = 51 + ExplicitHeight = 46 inherited ToolButton3: TToolButton Wrap = False end inherited ToolButton4: TToolButton Left = 278 Top = 0 + Wrap = True ExplicitLeft = 278 ExplicitTop = 0 end - inherited ToolButton14: TToolButton - Left = 334 - Top = 0 - Wrap = False + inherited FontName: TJvFontComboBox + Left = 0 ExplicitLeft = 334 ExplicitTop = 0 end - inherited FontName: TJvFontComboBox - Left = 399 + inherited ToolButton14: TToolButton + Left = 479 Top = 0 - ExplicitLeft = 399 + ExplicitLeft = 479 ExplicitTop = 0 end inherited FontSize: TEdit @@ -145,7 +144,13 @@ inherited fEditorPedidoProveedor: TfEditorPedidoProveedor ExplicitTop = 0 ExplicitWidth = 278 end - inherited ToolButton13: TToolButton [7] + inherited UpDown1: TUpDown + Left = 822 + Top = 0 + ExplicitLeft = 822 + ExplicitTop = 0 + end + inherited ToolButton13: TToolButton Left = 0 Top = 0 Wrap = True @@ -153,52 +158,49 @@ inherited fEditorPedidoProveedor: TfEditorPedidoProveedor ExplicitTop = 0 ExplicitHeight = 27 end - inherited UpDown1: TUpDown [8] + inherited ToolButton11: TToolButton Left = 0 Top = 27 ExplicitLeft = 0 ExplicitTop = 27 end - inherited ToolButton6: TToolButton - Left = 17 - Top = 27 - ExplicitLeft = 17 - ExplicitTop = 27 - end - inherited ToolButton7: TToolButton - Left = 83 - Top = 27 - ExplicitLeft = 83 - ExplicitTop = 27 - end - inherited ToolButton8: TToolButton - Left = 150 - Top = 27 - ExplicitLeft = 150 - ExplicitTop = 27 - end inherited ToolButton12: TToolButton - Left = 233 + Left = 141 Top = 27 - ExplicitLeft = 233 + Wrap = False + ExplicitLeft = 141 ExplicitTop = 27 + ExplicitHeight = 22 end inherited ToolButton9: TToolButton - Left = 241 + Left = 149 Top = 27 - ExplicitLeft = 241 + ExplicitLeft = 149 ExplicitTop = 27 end inherited ToolButton10: TToolButton - Left = 386 + Left = 294 Top = 27 - ExplicitLeft = 386 + ExplicitLeft = 294 ExplicitTop = 27 end - inherited ToolButton11: TToolButton - Left = 511 + inherited ToolButton6: TToolButton + Left = 419 Top = 27 - ExplicitLeft = 511 + ExplicitLeft = 419 + ExplicitTop = 27 + end + inherited ToolButton7: TToolButton + Left = 485 + Top = 27 + Wrap = False + ExplicitLeft = 485 + ExplicitTop = 27 + end + inherited ToolButton8: TToolButton + Left = 552 + Top = 27 + ExplicitLeft = 552 ExplicitTop = 27 end end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas index 014aa353..4aeeb880 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas @@ -298,7 +298,9 @@ begin if Assigned(FController) then begin - ViewPedido.ViewProveedorPedido.Controller := Controller.ProveedorController; + if Assigned(FViewPedido) then + FViewPedido.Controller := Controller; + frViewDetallesPedidoProveedor1.Controller := Controller.DetallesController; end; end; diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm index b1922e46..b7b371cb 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm @@ -1,6 +1,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Width = 484 Height = 240 + OnShow = CustomViewShow ExplicitWidth = 484 ExplicitHeight = 240 object dxLayoutControl1: TdxLayoutControl @@ -23,6 +24,12 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Height = 2 Shape = bsTopLine end + object lblObra: TLabel + Left = 247 + Top = 37 + Width = 3 + Height = 13 + end object rdxDestino1: TRadioButton Left = 10 Top = 12 @@ -32,7 +39,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv TabOrder = 0 TabStop = True end - object rdxDestino2: TRadioButton + object rdxDestino3: TRadioButton Left = 10 Top = 67 Width = 566 @@ -95,7 +102,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv TabOrder = 5 OnDblClick = txtDireccionDblClick end - object RadioButton1: TRadioButton + object rdxDestino2: TRadioButton Left = 10 Top = 39 Width = 231 @@ -135,7 +142,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Width = 334 end object lblNombreObra: TcxDBLabel - Left = 247 + Left = 256 Top = 37 DataBinding.DataField = 'NOMBRE_OBRA' DataBinding.DataSource = dsPedido @@ -188,7 +195,14 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv AutoAligns = [aaHorizontal] AlignVert = avCenter ShowCaption = False - Control = RadioButton1 + Control = rdxDestino2 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item6: TdxLayoutItem + Caption = 'Label1' + ShowCaption = False + Control = lblObra ControlOptions.AutoColor = True ControlOptions.ShowBorder = False end @@ -207,7 +221,7 @@ inherited frViewDireccionEntregaPedidoProv: TfrViewDireccionEntregaPedidoProv Caption = 'New Item' Offsets.Top = 3 ShowCaption = False - Control = rdxDestino2 + Control = rdxDestino3 ControlOptions.AutoColor = True ControlOptions.ShowBorder = False end diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas index aa9edb95..1844635e 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas @@ -22,7 +22,7 @@ type TfrViewDireccionEntregaPedidoProv = class(TfrViewBase, IViewDireccionEntregaPedidoProv) dxLayoutControl1: TdxLayoutControl; rdxDestino1: TRadioButton; - rdxDestino2: TRadioButton; + rdxDestino3: TRadioButton; cbListaAlmacenes: TcxDBLookupComboBox; dxLayoutGroup1: TdxLayoutGroup; dxLayoutItem1: TdxLayoutItem; @@ -38,7 +38,7 @@ type txtDireccion: TStaticText; dxLayoutControl1Item5: TdxLayoutItem; dxLayoutControl1Item4: TdxLayoutItem; - RadioButton1: TRadioButton; + rdxDestino2: TRadioButton; dsObras: TDADataSource; actListaObras: TAction; Bevel1: TBevel; @@ -50,6 +50,8 @@ type dxLayoutControl1Group3: TdxLayoutGroup; lblNombreObra: TcxDBLabel; dxLayoutControl1Item9: TdxLayoutItem; + lblObra: TLabel; + dxLayoutControl1Item6: TdxLayoutItem; procedure actListaAlmacenesExecute(Sender: TObject); procedure actOtroExecute(Sender: TObject); procedure cbListaAlmacenesPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); @@ -59,6 +61,9 @@ type procedure edtEntregarAPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure dsPedidoDataChange(Sender: TObject; Field: TField); + procedure OnObraReservaEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + protected FAlmacenesController : IAlmacenesController; FAlmacenes: IBizAlmacen; @@ -71,12 +76,13 @@ type procedure CambioDireccionAlmacen; procedure RefrescarControles; procedure SetReadOnly(Value: Boolean); override; - procedure RecuperarObra; + public property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure PrepararObra; + procedure RecuperarObra; procedure CambioDireccionObra; end; @@ -173,8 +179,16 @@ begin FObra := NIL; end; +procedure TfrViewDireccionEntregaPedidoProv.CustomViewShow(Sender: TObject); +begin + inherited; +// lblNombreObra.Properties.OnEditValueChanged := OnObraReservaEditValueChanged; +end; + destructor TfrViewDireccionEntregaPedidoProv.Destroy; begin +// lblNombreObra.Properties.OnEditValueChanged := Nil; + //cbListaObras.Properties.OnValidate := Nil; cbListaAlmacenes.Properties.OnValidate := Nil; @@ -199,7 +213,7 @@ begin if actListaObras.Enabled then begin if not Assigned(FObra) then - RecuperarObra; + RecuperarObra; CambioDireccionObra end else @@ -240,6 +254,12 @@ begin Result := FPedido; end; +procedure TfrViewDireccionEntregaPedidoProv.OnObraReservaEditValueChanged( + Sender: TObject); +begin +// showmessage('hola'); +end; + procedure TfrViewDireccionEntregaPedidoProv.RecuperarObra; begin if Assigned(FObra) and (FObra.ID = FPedido.ID_OBRA) then @@ -291,7 +311,7 @@ begin actListaObras.Enabled := False; if actListaObras.Checked then - actListaAlmacenes.Execute; + actListaAlmacenes.Execute; end else actListaObras.Enabled := True; @@ -333,7 +353,7 @@ begin rdxDestino1.Enabled := not ReadOnly; rdxDestino2.Enabled := not ReadOnly; - RadioButton1.Enabled := not ReadOnly; + rdxDestino3.Enabled := not ReadOnly; end; procedure TfrViewDireccionEntregaPedidoProv.txtDireccionDblClick( diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm index cc0562fe..23bcc4e0 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.dfm @@ -1,28 +1,31 @@ inherited frViewObraReserva: TfrViewObraReserva - Width = 586 - Height = 68 + Width = 529 + Height = 74 OnShow = CustomViewShow - ExplicitWidth = 586 - ExplicitHeight = 68 + ExplicitWidth = 529 + ExplicitHeight = 74 object dxLayoutControl1: TdxLayoutControl Left = 0 Top = 0 - Width = 586 - Height = 68 + Width = 529 + Height = 74 Align = alClient ParentBackground = True TabOrder = 0 TabStop = False AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 529 + 74) object Label1: TLabel Left = 10 Top = 10 - Width = 235 + Width = 202 Height = 13 - Caption = 'Reservar el material de este pedido para la obra:' + Caption = 'El material de este pedido es para la obra:' end object Button3: TBitBtn - Left = 432 + Left = 375 Top = 29 Width = 144 Height = 25 @@ -65,17 +68,33 @@ inherited frViewObraReserva: TfrViewObraReserva FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} end - object cbObraReserva: TComboBox + object cbObraReserva: TcxComboBox Left = 10 - Top = 31 - Width = 475 - Height = 21 - AutoDropDown = True - AutoCloseUp = True - Style = csDropDownList - ItemHeight = 13 + Top = 29 + Anchors = [akLeft, akTop, akRight] + Properties.DropDownListStyle = lsEditFixedList + Properties.DropDownRows = 25 + Properties.ImmediatePost = True + Properties.OnEditValueChanged = cbObraReservaPropertiesEditValueChanged + 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 = 0 - OnChange = cbObraReservaChange + Width = 581 end object dxLayoutGroup1: TdxLayoutGroup ShowCaption = False @@ -93,11 +112,9 @@ inherited frViewObraReserva: TfrViewObraReserva Hidden = True LayoutDirection = ldHorizontal ShowBorder = False - object dxLayoutControl1Item5: TdxLayoutItem - AutoAligns = [] + object dxLayoutControl1Item3: TdxLayoutItem + AutoAligns = [aaVertical] AlignHorz = ahClient - AlignVert = avCenter - ShowCaption = False Control = cbObraReserva ControlOptions.ShowBorder = False end @@ -111,10 +128,6 @@ inherited frViewObraReserva: TfrViewObraReserva end end end - object dsPedido: TDADataSource - Left = 200 - Top = 8 - end object PngImageList: TPngImageList PngImages = < item diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas index 5a1246e5..e009b55e 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewObraReserva.pas @@ -8,21 +8,17 @@ uses cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController, - Buttons, uDAInterfaces, uBizObras, uObrasController, cxButtonEdit, cxDBEdit, + Buttons, uDAInterfaces, uBizObras, cxButtonEdit, cxDBEdit, uObrasController, ExtCtrls, ImgList, PngImageList; type - IViewDireccionEntregaPedidoProv = interface(IViewBase) - ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] - function GetPedidoProveedor: IBizPedidoProveedor; - procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); - property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; + IViewObraReserva = interface(IViewBase) + ['{571462BF-ECF3-47F1-A6F4-2C31175D0B33}'] end; - TfrViewObraReserva = class(TfrViewBase, IViewDireccionEntregaPedidoProv) + TfrViewObraReserva = class(TfrViewBase, IViewObraReserva) dxLayoutControl1: TdxLayoutControl; dxLayoutGroup1: TdxLayoutGroup; - dsPedido: TDADataSource; Label1: TLabel; dxLayoutControl1Item1: TdxLayoutItem; dxLayoutControl1Item2: TdxLayoutItem; @@ -30,28 +26,31 @@ type PngImageList: TPngImageList; ActionList1: TActionList; actVerObra: TAction; - cbObraReserva: TComboBox; - dxLayoutControl1Item5: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + cbObraReserva: TcxComboBox; dxLayoutControl1Group1: TdxLayoutGroup; procedure actVerObraExecute(Sender: TObject); procedure actVerObraUpdate(Sender: TObject); - procedure cbObraReservaChange(Sender: TObject); procedure CustomViewShow(Sender: TObject); + procedure cbObraReservaPropertiesEditValueChanged(Sender: TObject); + private + FObras : TStringList; + FObrasController: IObrasController; + function GetObrasController: IObrasController; + procedure SetObrasController(const Value: IObrasController); + function GetObras: TStringList; + procedure SetObras(const Value: TStringList); + protected - FObrasController : IObrasController; - FListaObras : TStringList; - //FObras: IBizObra; - FPedido : IBizPedidoProveedor; - FController : IPedidosProveedorController; - function GetPedidoProveedor: IBizPedidoProveedor; - procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); - procedure CargarObra; procedure SalvarObra; - procedure SetReadOnly(Value: Boolean); override; + procedure SetReadOnly(Value: Boolean); override; + public - property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; - constructor Create(AOwner: TComponent); override; + property Obras: TStringList read GetObras write SetObras; + property ObrasController: IObrasController read GetObrasController write SetObrasController; destructor Destroy; override; + procedure ActivarObra(const IDObra:Integer); + function DarIDObraSeleccionada: Variant; end; implementation @@ -68,8 +67,7 @@ var AID : Integer; begin inherited; - AID := StrToInt(FListaObras.Values[FListaObras.Names[cbObraReserva.ItemIndex-1]]); - AObra := FObrasController.Buscar(AID); + AObra := FObrasController.Buscar(DarIDObraSeleccionada); if Assigned(AObra) then try FObrasController.Ver(AObra); @@ -81,55 +79,30 @@ end; procedure TfrViewObraReserva.actVerObraUpdate(Sender: TObject); begin inherited; - (Sender as TAction).Enabled := Assigned(FListaObras) and - (not EsCadenaVacia(cbObraReserva.Text)); + (Sender as TAction).Enabled := (cbObraReserva.Properties.Items.Count > 0) end; -procedure TfrViewObraReserva.CargarObra; +procedure TfrViewObraReserva.ActivarObra(const IDObra: Integer); var i : integer; begin cbObraReserva.ItemIndex := 0; - - if not FPedido.Active then - FPedido.Open; - - if not FPedido.ID_OBRAIsNull then + for i := 0 to FObras.Count - 1 do begin - for i := 0 to FListaObras.Count - 1 do + if IntToStr(IDObra) = FObras.Values[FObras.Names[i]] then begin - if IntToStr(FPedido.ID_OBRA) = FListaObras.Values[FListaObras.Names[i]] then - begin - cbObraReserva.ItemIndex := i + 1; - Exit; - end; + cbObraReserva.ItemIndex := i + 1; + Exit; end; end; end; -procedure TfrViewObraReserva.cbObraReservaChange(Sender: TObject); +procedure TfrViewObraReserva.cbObraReservaPropertiesEditValueChanged( + Sender: TObject); begin inherited; - SalvarObra; -end; - -constructor TfrViewObraReserva.Create(AOwner: TComponent); -var - i: Integer; -begin - inherited; - FController := TPedidosProveedorController.Create; - FObrasController := TObrasController.Create; - FListaObras := FObrasController.DarListaObras; - - cbObraReserva.Items.BeginUpdate; - try - cbObraReserva.Items.Add(''); // Para poder indicar sin obra - for i := 0 to FListaObras.Count - 1 do - cbObraReserva.Items.Add(FListaObras.Names[i]); - finally - cbObraReserva.Items.EndUpdate; - end; +showmessage('hola'); +// SalvarObra; end; procedure TfrViewObraReserva.CustomViewShow(Sender: TObject); @@ -138,49 +111,78 @@ begin cbObraReserva.Enabled := not Self.ReadOnly; end; +function TfrViewObraReserva.DarIDObraSeleccionada: Variant; +begin + if Assigned(FObras) then + Result := FObras.Values[cbObraReserva.EditValue] + else + Raise Exception.Create('No se ha asignado ninguna lista de ALMACENES'); +end; + destructor TfrViewObraReserva.Destroy; begin FObrasController := Nil; - FController := NIL; - - FreeANDNIL(FListaObras); + FObras := Nil; inherited; end; -function TfrViewObraReserva.GetPedidoProveedor: IBizPedidoProveedor; +function TfrViewObraReserva.GetObras: TStringList; begin - Result := FPedido; + Result := FObras; +end; + +function TfrViewObraReserva.GetObrasController: IObrasController; +begin + Result := FObrasController; end; procedure TfrViewObraReserva.SalvarObra; var AID : String; begin +{ // En el item 0 no hay nada if (cbObraReserva.ItemIndex > 0) then begin - AID := FListaObras.Values[FListaObras.Names[cbObraReserva.ItemIndex-1]]; + AID := FListaObras.Values[cbObraReserva.EditValue]; FPedido.Edit; FPedido.ID_OBRA := StrToInt(AID); - FPedido.NOMBRE_OBRA := FListaObras.Names[cbObraReserva.ItemIndex-1]; + FPedido.NOMBRE_OBRA := cbObraReserva.EditValue; end else begin FPedido.Edit; FPedido.ClearField('ID_OBRA'); FPedido.ClearField('NOMBRE_OBRA'); end; +} end; -procedure TfrViewObraReserva.SetPedidoProveedor( - const Value: IBizPedidoProveedor); +procedure TfrViewObraReserva.SetObras(const Value: TStringList); +var + i: Integer; + begin - dsPedido.DataTable := nil; + FObras := Value; - FPedido := Value; - dsPedido.DataTable := FPedido.DataTable; - CargarObra; + if Assigned(FObras) then + with cbObraReserva.Properties.Items do + begin + BeginUpdate; + try + Clear; +// Add(''); + for i := 0 to FObras.Count - 1 do + Add(FObras.Names[i]); + finally + EndUpdate; + end; + end; end; +procedure TfrViewObraReserva.SetObrasController(const Value: IObrasController); +begin + FObrasController := Value; +end; procedure TfrViewObraReserva.SetReadOnly(Value: Boolean); begin diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm index bca3c0af..161bca80 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm @@ -3,6 +3,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor Height = 560 OnCreate = CustomViewCreate OnDestroy = CustomViewDestroy + OnShow = CustomViewShow ExplicitWidth = 965 ExplicitHeight = 560 object dxLayoutControl1: TdxLayoutControl @@ -167,21 +168,17 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor 248) inherited Bevel1: TBevel Top = 200 - Width = 566 ExplicitTop = 200 - ExplicitWidth = 566 end - inherited rdxDestino2: TRadioButton - Width = 566 - ExplicitWidth = 566 + inherited lblObra: TLabel + Left = 239 + ExplicitLeft = 239 end inherited cbListaAlmacenes: TcxDBLookupComboBox Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 551 - Width = 551 end inherited bModificar: TBitBtn Left = 294 @@ -190,12 +187,10 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor ExplicitTop = 164 end inherited txtDireccion: TStaticText - Width = 882 Height = 68 - ExplicitWidth = 882 ExplicitHeight = 68 end - inherited RadioButton1: TRadioButton + inherited rdxDestino2: TRadioButton Width = 223 ExplicitWidth = 223 end @@ -206,18 +201,14 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' ExplicitTop = 231 - ExplicitWidth = 334 - Width = 334 end inherited lblNombreObra: TcxDBLabel - Left = 239 + Left = 248 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 239 - ExplicitWidth = 121 - Width = 121 + ExplicitLeft = 248 end end inherited ActionList1: TActionList @@ -456,23 +447,18 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor Height = 72 ExplicitWidth = 432 ExplicitHeight = 72 - inherited Label1: TLabel - Width = 235 - ExplicitWidth = 235 - end inherited Button3: TBitBtn Left = 278 ExplicitLeft = 278 end - inherited cbObraReserva: TComboBox - Width = 475 - ExplicitWidth = 475 + inherited cbObraReserva: TcxComboBox + Properties.OnEditValueChanged = nil + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' end end - inherited dsPedido: TDADataSource - Left = 192 - Top = 24 - end inherited PngImageList: TPngImageList Left = 224 Top = 24 diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas index c078e6ab..f79acf0b 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas @@ -13,7 +13,8 @@ uses uViewDireccionEntregaPedidoProv, cxLookupEdit, cxDBLookupEdit, // uBizPedidosCliente, uPedidosClienteController, cxDBLookupComboBox, uFormasPagoController, ActnList, uDAInterfaces, uBizFormasPago, - uViewProveedorPedido, uViewObraReserva; + uViewProveedorPedido, uViewObraReserva, uObrasController, + uPedidosProveedorController; type IViewPedidoProveedor = interface(IViewBase) @@ -22,6 +23,10 @@ type procedure SetPedido(const Value: IBizPedidoProveedor); property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + property Controller : IPedidosProveedorController read GetController write SetController; + function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido write SetViewProveedorPedido; @@ -78,23 +83,31 @@ type procedure actVerPedidoCliUpdate(Sender: TObject); procedure frViewProveedorPedidoButton1Click(Sender: TObject); procedure frViewProveedorPedidoButton2Click(Sender: TObject); - procedure frViewObraReserva1cbListaObrasReservaPropertiesEditValueChanged( - Sender: TObject); + procedure ObraReservaEditValueChanged(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + protected FPedido : IBizPedidoProveedor; + FController : IPedidosProveedorController; FViewProveedorPedido : TfrViewDatosYSeleccionProveedor; FFormasPago : IBizFormaPago; FFormasPagoController : IFormasPagoController; + FObras: TStringList; + FObrasController : IObrasController; // FPedidoCliAsociado : IBizPedidoCliente; // FPedidoCliController : IPedidosClienteController; function GetPedido: IBizPedidoProveedor; procedure SetPedido(const Value: IBizPedidoProveedor); virtual; + function GetController : IPedidosProveedorController; + procedure SetController (const Value : IPedidosProveedorController); + function GetViewProveedorPedido: TfrViewDatosYSeleccionProveedor; procedure SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); public property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; + property Controller : IPedidosProveedorController read GetController write SetController; property ViewProveedorPedido: TfrViewDatosYSeleccionProveedor read GetViewProveedorPedido; end; @@ -130,6 +143,8 @@ begin inherited; FFormasPago := Nil; FFormasPagoController := TFormasPagoController.Create; + FObrasController := TObrasController.Create; + FObras := FObrasController.DarListaObras; FViewProveedorPedido := frViewProveedorPedido1; FViewProveedorPedido.MsgElegirProveedor := 'Elija el proveedor al que se le realizará el pedido.'; eReferencia.Enabled := False; @@ -141,18 +156,52 @@ end; procedure TfrViewPedidoProveedor.CustomViewDestroy(Sender: TObject); begin FViewProveedorPedido := Nil; + FController := Nil; FFormasPago := Nil; FFormasPagoController := NIL; - inherited; + FObrasController := Nil; + FreeAndNil(FObras) end; -procedure TfrViewPedidoProveedor.frViewObraReserva1cbListaObrasReservaPropertiesEditValueChanged( - Sender: TObject); +procedure TfrViewPedidoProveedor.CustomViewShow(Sender: TObject); begin inherited; - ShowMessage('Hola'); + if not FPedido.ID_OBRAISNull then + frViewObraReserva1.ActivarObra(FPedido.ID_OBRA); + + frViewObraReserva1.cbObraReserva.Properties.OnEditValueChanged := ObraReservaEditValueChanged; +end; + +procedure TfrViewPedidoProveedor.ObraReservaEditValueChanged(Sender: TObject); +var + IDObra: Variant; + +begin + inherited; + IDObra := frViewObraReserva1.DarIDObraSeleccionada; + Controller.AsignarIDObra(FPedido, IDObra); + + if not VarIsNull(IDObra) then + begin + frViewDireccionEntregaPedidoProv1.rdxDestino2.Checked := True; + frViewDireccionEntregaPedidoProv1.RecuperarObra; + frViewDireccionEntregaPedidoProv1.CambioDireccionObra; + end + else + begin + + end; + + + showmessage('Cambio a radio buton de entraga de obra'); + showmessage('cargo direccion de la obnra'); + +{showmessage('hola2'); frViewDireccionEntregaPedidoProv1.PrepararObra; + frViewDireccionEntregaPedidoProv1.RecuperarObra; frViewDireccionEntregaPedidoProv1.CambioDireccionObra; + frViewDireccionEntregaPedidoProv1.rdxDestino2.Checked := true; +} end; procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton1Click(Sender: TObject); @@ -177,6 +226,11 @@ begin frViewProveedorPedido1.actAnadirContacto.Execute; end; +function TfrViewPedidoProveedor.GetController: IPedidosProveedorController; +begin + Result := FController; +end; + function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor; begin Result := FPedido; @@ -187,6 +241,15 @@ begin Result := FViewProveedorPedido; end; +procedure TfrViewPedidoProveedor.SetController(const Value: IPedidosProveedorController); +begin + FController := Value; + + if Assigned(FController) + and Assigned(FViewProveedorPedido) then + ViewProveedorPedido.Controller := Controller.ProveedorController; +end; + procedure TfrViewPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); begin FPedido := Value; @@ -213,6 +276,15 @@ begin // end // else // eReferenciaPedidoCli.Text := 'No hay pedido asociado'; + + frViewProveedorPedido1.Proveedor := FPedido.Proveedor; + frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido; + + + frViewObraReserva1.Obras := FObras; + frViewObraReserva1.ObrasController := FObrasController; + + end else begin DADataSource.DataTable := NIL; @@ -220,9 +292,9 @@ begin // FPedidoCliAsociado := NIL; end; - frViewProveedorPedido1.Proveedor := FPedido.Proveedor; - frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido; - frViewObraReserva1.PedidoProveedor := FPedido; + + + end; procedure TfrViewPedidoProveedor.SetViewProveedorPedido(const Value: TfrViewDatosYSeleccionProveedor); diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas index ee623f35..1e4e4182 100644 --- a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas @@ -394,8 +394,9 @@ begin AAlbaranesProveedorController.Guardar(AAlbaran); AAlbaranesProveedorController.Ver(AAlbaran); - //Si el pedido tiene obra de reserva, preguntamos si quiere automatizar el proceso de reserva de los materiales - if (APedido.ID_OBRA > 0) then + //Si el pedido tiene obra de relacionada y el destino del pedido no es esa obra, preguntamos si quiere reservar de los materiales para esa obra + if (APedido.ID_OBRA > 0) + and (APedido.ID_OBRA <> APedido.ID_ALMACEN) then begin if Application.MessageBox(PChar('Desea realizar la reserva del material recibido para la obra ' + APedido.NOMBRE_OBRA + ', asociada al pedido'), 'Atención', MB_YESNO) = IDYES then begin diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index be2bb36c..87c5ea3f 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -160,6 +160,8 @@ + + @@ -453,6 +455,8 @@ + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index c8a9432d..ba185e19 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -388,7 +388,7 @@ type { IsrvAlmacenes } IsrvAlmacenes = interface(IDataAbstractService) ['{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}'] - function DarListaAlmacenes: Binary; + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; end; { CosrvAlmacenes } @@ -401,7 +401,7 @@ type protected function __GetInterfaceName:string; override; - function DarListaAlmacenes: Binary; + function DarListaAlmacenes(const IDEmpresa: Integer): Binary; end; { IsrvArticulos } @@ -684,7 +684,7 @@ type { IsrvObras } IsrvObras = interface(IDataAbstractService) ['{39277224-A0BD-4249-9ACA-39D238798B25}'] - function DarListaObras: Binary; + function DarListaObras(const IDEmpresa: Integer): Binary; end; { CosrvObras } @@ -697,7 +697,7 @@ type protected function __GetInterfaceName:string; override; - function DarListaObras: Binary; + function DarListaObras(const IDEmpresa: Integer): Binary; end; { IsrvProvinciasPoblaciones } @@ -1488,11 +1488,12 @@ begin result := 'srvAlmacenes'; end; -function TsrvAlmacenes_Proxy.DarListaAlmacenes: Binary; +function TsrvAlmacenes_Proxy.DarListaAlmacenes(const IDEmpresa: Integer): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes'); + __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -2014,11 +2015,12 @@ begin result := 'srvObras'; end; -function TsrvObras_Proxy.DarListaObras: Binary; +function TsrvObras_Proxy.DarListaObras(const IDEmpresa: Integer): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaObras'); + __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index a5455678..fe860902 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -435,14 +435,17 @@ end; { TsrvAlmacenes_Invoker } procedure TsrvAlmacenes_Invoker.Invoke_DarListaAlmacenes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function DarListaAlmacenes: Binary; } +{ function DarListaAlmacenes(const IDEmpresa: Integer): Binary; } var + IDEmpresa: Integer; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin lResult := nil; try - lResult := (__Instance as IsrvAlmacenes).DarListaAlmacenes; + __Message.Read('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + + lResult := (__Instance as IsrvAlmacenes).DarListaAlmacenes(IDEmpresa); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlmacenes', 'DarListaAlmacenesResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -1002,14 +1005,17 @@ end; { TsrvObras_Invoker } procedure TsrvObras_Invoker.Invoke_DarListaObras(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function DarListaObras: Binary; } +{ function DarListaObras(const IDEmpresa: Integer): Binary; } var + IDEmpresa: Integer; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin lResult := nil; try - lResult := (__Instance as IsrvObras).DarListaObras; + __Message.Read('IDEmpresa', TypeInfo(Integer), IDEmpresa, []); + + lResult := (__Instance as IsrvObras).DarListaObras(IDEmpresa); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvObras', 'DarListaObrasResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res index d5f59af7b3a4ebccd49649f49665afa79e93bd29..b8c2ca8b7b805aa626c7c58b271978b10f1af083 100644 GIT binary patch delta 40 pcmZo%%QSTz(*y;^qZ<_u7)-tpEj0Op(Y(#>h9}kGoU%x6TL5WS5t#r0 delta 32 lcmbQbj;V1i(*y-Z!;Oju3?@IYN!vWp@T5AJ!4<`A3jo?q4F~`L diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 701b1cd3bfd18c62f031edb6fa735320a0d14974..2896e98dac6a4a5e35da335d93fcd9ec2ed126a1 100644 GIT binary patch delta 81 zcmZ3nm2u5h#tnBO7&lD58zB!Q|3*YJ@=cD6RAziNxi+$zIgdeo^6yAl(K3cihE#?k ihCCoy%%H=dz+k{&K3O|TpVNrJ3dlBMV3?d3P=~$Y8}_#9%NvHOd_TU%VI* diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index f6fc0770..624e0c9d 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -17,10 +17,10 @@ uses srvLogin_Impl in 'srvLogin_Impl.pas' {srvLogin: TDARemoteService}, srvEmpresas_Impl in '..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas' {srvEmpresas: TDARemoteService}, srvConfiguracion_Impl in 'Configuracion\srvConfiguracion_Impl.pas' {srvConfiguracion: TDataAbstractService}, - srvFamilias_Impl in '..\Modulos\Familias\Servidor\srvFamilias_Impl.pas', - srvFormasPago_Impl in '..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas', - srvTiposIVA_Impl in '..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas', - srvUsuarios_Impl in '..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas', + srvFamilias_Impl in '..\Modulos\Familias\Servidor\srvFamilias_Impl.pas' {srvFamilias: TDataAbstractService}, + srvFormasPago_Impl in '..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas' {srvFormasPago: TDataAbstractService}, + srvTiposIVA_Impl in '..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas' {srvTiposIVA: TDataAbstractService}, + srvUsuarios_Impl in '..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas' {srvUsuarios: TDataAbstractService}, RegExpr in 'Utiles\RegExpr.pas', uBusinessUtils in 'Utiles\uBusinessUtils.pas', uDatabaseUtils in 'Utiles\uDatabaseUtils.pas', @@ -89,10 +89,10 @@ uses schFabricantesServer_Intf in '..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas', uRptPedidosProveedor_Server in '..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas' {RptPedidosProveedor: TDataModule}, uRptWordPedidoProveedor in '..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas' {RptWordPedidoProveedor: TDataModule}, - srvObras_Impl in '..\Modulos\Obras\Servidor\srvObras_Impl.pas', + srvObras_Impl in '..\Modulos\Obras\Servidor\srvObras_Impl.pas' {srvObras: TDataAbstractService}, uBizObrasServer in '..\Modulos\Obras\Model\uBizObrasServer.pas', uRptRecibosCliente_Server in '..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas' {RptRecibosCliente: TDataModule}, - srvProvinciasPoblaciones_Impl in '..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas', + srvProvinciasPoblaciones_Impl in '..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas' {srvProvinciasPoblaciones_Impl: TDataModule}, uBizArticulosServer in '..\Modulos\Articulos\Model\uBizArticulosServer.pas', uBizEmpresasServer in '..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas', schAlmacenesClient_Intf in '..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas', diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 1a477607..2837fc96 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -49,10 +49,16 @@
srvEmpresas
TDARemoteService
- + +
srvProvinciasPoblaciones_Impl
+ TDataModule +
- + +
srvUsuarios
+ TDataAbstractService +
@@ -143,10 +149,16 @@ - + +
srvFamilias
+ TDataAbstractService +
- + +
srvFormasPago
+ TDataAbstractService +
srvGestorDocumentos
TDataAbstractService @@ -170,7 +182,10 @@ - + +
srvUsuarios
+ TDataAbstractService +
@@ -247,7 +262,10 @@ - + +
srvTiposIVA
+ TDataAbstractService +
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index 0a3d5b44..a5006874 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -14,7 +14,7 @@ BEGIN BEGIN VALUE "FileVersion", "1.4.3.0\0" VALUE "ProductVersion", "1.4.3.0\0" - VALUE "CompileDate", "jueves, 06 de noviembre de 2008 11:20\0" + VALUE "CompileDate", "viernes, 07 de noviembre de 2008 12:02\0" END END BLOCK "VarFileInfo"