From 05bc30f293d00182bd75051a09c5c1fccd888e2a Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 29 May 2008 13:58:49 +0000 Subject: [PATCH] Repaso de recepcion de articulos y envio de articulos desde inventario git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@236 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- Database/VISTAS.SQL | 40 ++++++++++- .../View/uIEditorDetallesSinAlbaran.pas | 4 ++ .../View/uIEditorDetallesSinRecibir.pas | 4 ++ .../Controller/uInventarioController.pas | 14 ++-- .../Views/uEditorDetallesSinAlbaran.dfm | 65 ++++++++++++------ .../Views/uEditorDetallesSinAlbaran.pas | 44 ++++++++++-- .../Views/uEditorDetallesSinRecibir.dfm | 43 +++++++++--- .../Views/uEditorDetallesSinRecibir.pas | 42 +++++++++-- .../Inventario/Views/uEditorInventario.pas | 13 +++- .../uGenerarAlbaranesCliUtils.pas | 13 ++-- .../uGenerarAlbaranesProvUtils.dfm | 2 +- .../uGenerarAlbaranesProvUtils.pas | 15 ++-- Source/Servidor/FactuGES_Server.rc | 2 +- Source/Servidor/FactuGES_Server.res | Bin 23340 -> 23340 bytes 14 files changed, 228 insertions(+), 73 deletions(-) diff --git a/Database/VISTAS.SQL b/Database/VISTAS.SQL index 782ca90a..d9f33a44 100644 --- a/Database/VISTAS.SQL +++ b/Database/VISTAS.SQL @@ -1265,14 +1265,24 @@ inner join v_ped_cli_con_albaranes on (v_ped_cli_con_albaranes.ID_PEDIDO = v_ped ; CREATE VIEW V_PED_CLI_ART_SIN_ALBARAN( + ID, ID_PEDIDO, ID_EMPRESA, REFERENCIA_PEDIDO, + REFERENCIA_CLI_PEDIDO, FECHA_PEDIDO, FECHA_PREVISTA_PEDIDO, ID_CLIENTE, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IVA, + ID_FORMA_PAGO, CLIENTE, - ID, + ID_ARTICULO, FAMILIA, REFERENCIA, REFERENCIA_PROVEEDOR, @@ -1281,15 +1291,28 @@ CREATE VIEW V_PED_CLI_ART_SIN_ALBARAN( CANTIDAD_RESERVADA, CANTIDAD_ENVIADA, CANTIDAD_SERVIDA, - CANTIDAD_PENDIENTE) + CANTIDAD_PENDIENTE, + PRECIO_COSTE, + DESCUENTO, + PRECION_NETO) AS SELECT + V_PED_CLI_ARTICULOS.ID_PEDIDO || V_PED_CLI_ARTICULOS.ID_ARTICULO as ID, /*Para tener un ID unico sobre el que poder consultar en la sentencia de selección del grid*/ V_PED_CLI_ARTICULOS.ID_PEDIDO, PEDIDOS_CLIENTE.ID_EMPRESA, PEDIDOS_CLIENTE.referencia, + PEDIDOS_CLIENTE.referencia_cliente, PEDIDOS_CLIENTE.fecha_pedido, PEDIDOS_CLIENTE.fecha_prevista_envio, PEDIDOS_CLIENTE.id_cliente, + PEDIDOS_CLIENTE.CALLE, + PEDIDOS_CLIENTE.CODIGO_POSTAL, + PEDIDOS_CLIENTE.POBLACION, + PEDIDOS_CLIENTE.PROVINCIA, + PEDIDOS_CLIENTE.PERSONA_CONTACTO, + PEDIDOS_CLIENTE.TELEFONO, + PEDIDOS_CLIENTE.IVA, + PEDIDOS_CLIENTE.ID_FORMA_PAGO, CONTACTOS.nombre, V_PED_CLI_ARTICULOS.ID_ARTICULO, articulos.familia, @@ -1300,11 +1323,22 @@ SELECT V_PED_CLI_ARTICULOS.CANTIDAD_RESERVADA, V_PED_CLI_ARTICULOS.CANTIDAD_ENVIADA, V_PED_CLI_ARTICULOS.CANTIDAD_SERVIDA, - V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE + V_PED_CLI_ARTICULOS.CANTIDAD_PENDIENTE, + + + ARTICULOS.PRECIO_COSTE, + CLIENTES_DTOS_PROVEEDORES.DESCUENTO, + (ARTICULOS.PRECIO_COSTE * CLIENTES_DTOS_PROVEEDORES.DESCUENTO)/100 as PRECIO_NETO + from V_PED_CLI_ARTICULOS left join PEDIDOS_CLIENTE on (PEDIDOS_CLIENTE.id = V_PED_CLI_ARTICULOS.id_pedido) left join CONTACTOS on (contactos.id = PEDIDOS_CLIENTE.id_cliente) left join articulos on (articulos.id = V_PED_CLI_ARTICULOS.ID_ARTICULO) + +LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES +ON ((CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDOR) +AND (CLIENTES_DTOS_PROVEEDORES.ID_CLIENTE = contactos.id)) + where cantidad_pendiente > 0; /*Aqui tendremos la situacion de todos los pedidos, por lógica de grupos*/ diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinAlbaran.pas b/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinAlbaran.pas index fc41976e..74fc24b5 100644 --- a/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinAlbaran.pas +++ b/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinAlbaran.pas @@ -15,6 +15,10 @@ type function GetController : IInventarioController; procedure SetController (const Value : IInventarioController); property Controller : IInventarioController read GetController write SetController; + + procedure SetAlmacen(const Value: Integer); + function GetAlmacen: Integer; + property Almacen: Integer write SetAlmacen; end; diff --git a/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinRecibir.pas b/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinRecibir.pas index 450c70b5..8d234690 100644 --- a/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinRecibir.pas +++ b/Source/Modulos/Inventario/Controller/View/uIEditorDetallesSinRecibir.pas @@ -15,6 +15,10 @@ type function GetController : IInventarioController; procedure SetController (const Value : IInventarioController); property Controller : IInventarioController read GetController write SetController; + + procedure SetAlmacen(const Value: Integer); + function GetAlmacen: Integer; + property Almacen: Integer write SetAlmacen; end; diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index 79574272..fad480f3 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -25,8 +25,8 @@ type function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; procedure VerTodos(AInventario: IBizInventario); procedure VerReservas(AArticulo: IBizInventario); - procedure VerSinAlbaran; - procedure VerSinRecibir; + procedure VerSinAlbaran(const IDAlmacenOrigen: Integer); + procedure VerSinRecibir(const IDAlmacenDestino: Integer); function BuscarTodos: IBizInventario; function Buscar(const ID_ALMACEN: Integer): IBizInventario; @@ -133,8 +133,8 @@ type function Ver(AArticulos: IBizInventario; AInventario : IBizInventario; APedido: IBizPedidoProveedor = Nil): Boolean; procedure VerReservas(AArticulo: IBizInventario); - procedure VerSinAlbaran; - procedure VerSinRecibir; + procedure VerSinAlbaran(const IDAlmacenOrigen: Integer); + procedure VerSinRecibir(const IDAlmacenDestino: Integer); function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; @@ -524,7 +524,7 @@ begin end; end; -procedure TInventarioController.VerSinAlbaran; +procedure TInventarioController.VerSinAlbaran(const IDAlmacenOrigen: Integer); var AEditor : IEditorDetallesSinAlbaran; begin @@ -535,6 +535,7 @@ begin with AEditor do begin Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacen := IDAlmacenOrigen; Detalles := BuscarDetallesSinAlbaran; MultiSelect := True; end; @@ -551,7 +552,7 @@ begin end; end; -procedure TInventarioController.VerSinRecibir; +procedure TInventarioController.VerSinRecibir(const IDAlmacenDestino: Integer); var AEditor : IEditorDetallesSinRecibir; begin @@ -562,6 +563,7 @@ begin with AEditor do begin Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacen := IDAlmacenDestino; Detalles := BuscarDetallesSinRecibir; MultiSelect := True; end; diff --git a/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.dfm b/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.dfm index 2c12f330..3082db82 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.dfm +++ b/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.dfm @@ -10,10 +10,14 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Width = 669 + Height = 25 Caption = 'Detalle de art'#237'culos sin albaranar' + WordWrap = True ExplicitWidth = 669 + ExplicitHeight = 25 inherited Image1: TImage Left = 642 + Height = 25 Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 @@ -36,10 +40,13 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran 5494DB7086380DA45A00B644AF97680DA0CC06004618670C84C9DA7D00000000 49454E44AE426082} ExplicitLeft = 603 + ExplicitHeight = 49 end end inherited TBXDock: TTBXDock + Top = 50 Width = 669 + ExplicitTop = 49 ExplicitWidth = 669 inherited tbxMain: TTBXToolbar ExplicitWidth = 358 @@ -102,9 +109,9 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran end inline frViewDetallesSinAlbaran1: TfrViewDetallesSinAlbaran [3] Left = 0 - Top = 102 + Top = 125 Width = 669 - Height = 419 + Height = 396 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -114,14 +121,14 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran ParentFont = False TabOrder = 3 ReadOnly = False - ExplicitTop = 102 + ExplicitTop = 124 ExplicitWidth = 669 - ExplicitHeight = 419 + ExplicitHeight = 397 inherited cxGrid: TcxGrid Width = 669 - Height = 291 + Height = 268 ExplicitWidth = 669 - ExplicitHeight = 291 + ExplicitHeight = 269 inherited cxGridView: TcxGridDBTableView DataController.Summary.DefaultGroupSummaryItems = < item @@ -184,15 +191,9 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran ExplicitWidth = 273 Width = 273 end - inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 - end inherited edtFechaFinFiltro: TcxDateEdit - Left = 413 - ExplicitLeft = 413 - ExplicitWidth = 121 - Width = 121 + Left = 412 + ExplicitLeft = 412 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -206,8 +207,8 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran end end inherited pnlAgrupaciones: TTBXDockablePanel - Top = 393 - ExplicitTop = 393 + Top = 370 + ExplicitTop = 371 ExplicitWidth = 669 inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 669 @@ -238,7 +239,27 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran end end end - inherited EditorActionList: TActionList [4] + object JvNavPanelHeader1: TJvNavPanelHeader [4] + Left = 0 + Top = 25 + Width = 669 + Height = 25 + Align = alTop + Caption = 'Almac'#233'n de salida: ' + Font.Charset = DEFAULT_CHARSET + Font.Color = 13553407 + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + WordWrap = True + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + ParentStyleManager = False + ExplicitTop = 8 + end + inherited EditorActionList: TActionList [5] Left = 96 Top = 112 inherited actNuevo: TAction @@ -286,7 +307,7 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran OnExecute = actAlbaranarExecute end end - inherited SmallImages: TPngImageList [5] + inherited SmallImages: TPngImageList [6] PngImages = < item PngImage.Data = { @@ -903,7 +924,7 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran Top = 160 Bitmap = {} end - inherited LargeImages: TPngImageList [6] + inherited LargeImages: TPngImageList [7] PngImages = < item PngImage.Data = { @@ -1836,12 +1857,12 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran Top = 160 Bitmap = {} end - inherited JvFormStorage: TJvFormStorage [7] + inherited JvFormStorage: TJvFormStorage [8] end - inherited dsDataTable: TDADataSource [9] + inherited dsDataTable: TDADataSource [10] Left = 8 end - inherited StatusBarImages: TPngImageList [10] + inherited StatusBarImages: TPngImageList [11] end inherited GridPopupMenu: TPopupMenu inherited Nuevo1: TMenuItem [3] diff --git a/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.pas b/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.pas index 65876861..803b8acf 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.pas +++ b/Source/Modulos/Inventario/Views/uEditorDetallesSinAlbaran.pas @@ -11,7 +11,8 @@ uses JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, uIEditorDetallesSinAlbaran, uBizInventario, uViewGridBase, - JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController; + JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController, + uBizAlmacenes; type @@ -22,16 +23,17 @@ type frViewDetallesSinAlbaran1: TfrViewDetallesSinAlbaran; TBXItem38: TTBXItem; actAlbaranar: TAction; + JvNavPanelHeader1: TJvNavPanelHeader; procedure FormShow(Sender: TObject); procedure actAlbaranarExecute(Sender: TObject); private -// function SeleccionarAlmacen(Descripcion: String): Integer; -// function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + FAlmacen: IBizAlmacen; + function GetAlmacen: Integer; + procedure SetAlmacen(const Value: Integer); protected -// FArticulo: IBizInventario; FDetalles: IBizDetalleSinAlbaran; FController : IInventarioController; @@ -51,7 +53,7 @@ type procedure PrevisualizarInterno; override; public -// property Articulo: IBizInventario read GetArticulo write SetArticulo; + property Almacen: Integer read GetAlmacen write SetAlmacen; property DetallesSinAlbaran: IBizDetalleSinAlbaran read GetDetalles write SetDetalles; property Controller : IInventarioController read GetController write SetController; @@ -69,7 +71,7 @@ implementation uses cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios, uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, - uAlmacenesController, uBizAlmacenes, uGenerarAlbaranesProvUtils, + uAlmacenesController, uGenerarAlbaranesProvUtils, schInventarioClient_Intf, uDialogUtils, uBizAlbaranesCliente, uGenerarAlbaranesCliUtils; {, uDBSelectionList, uDataModulePedidosProveedor, @@ -95,7 +97,10 @@ begin ArticulosSeleccionados := (Controller as IInventarioController).ExtraerSeleccionados(DetallesSinAlbaran) as IBizDetalleSinAlbaran; if (ArticulosSeleccionados.DataTable.RecordCount > 0) then - GenerarAlbaranesCli(ArticulosSeleccionados, AlbaranesCliente) + begin + GenerarAlbaranesCli(ArticulosSeleccionados, AlbaranesCliente, Almacen); + RefrescarInterno; + end else ShowWarningMessage('Debe seleccionar los artículos que desea albaranar'); finally @@ -107,6 +112,7 @@ end; constructor TfEditorDetallesSinAlbaran.Create(AOwner: TComponent); begin inherited; + FAlmacen := Nil; ViewGrid := frViewDetallesSinAlbaran1; end; @@ -127,6 +133,7 @@ end; destructor TfEditorDetallesSinAlbaran.Destroy; begin FDetalles := NIL; + FAlmacen := NIL; inherited; end; @@ -163,6 +170,14 @@ begin end; } +function TfEditorDetallesSinAlbaran.GetAlmacen: Integer; +begin + if Assigned(FAlmacen) then + Result := FAlmacen.ID + else + Result := -1; +end; + function TfEditorDetallesSinAlbaran.GetController: IInventarioController; begin Result := FController; @@ -189,6 +204,7 @@ var begin FTitulo := 'Detalle de artículos sin albaranar - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); + JvNavPanelHeader1.Caption := 'Almacén de salida: ' + FAlmacen.NOMBRE; end; procedure TfEditorDetallesSinAlbaran.PrevisualizarInterno; @@ -250,6 +266,19 @@ begin end; end; } +procedure TfEditorDetallesSinAlbaran.SetAlmacen(const Value: Integer); +var + AAlmacenesController : IAlmacenesController; +begin + AAlmacenesController := TAlmacenesController.Create; + try + FAlmacen := AAlmacenesController.Buscar(Value); + FAlmacen.DataTable.Active := True; + finally + AAlmacenesController := NIL; + end; +end; + procedure TfEditorDetallesSinAlbaran.SetController(const Value: IInventarioController); begin FController := Value; @@ -272,3 +301,4 @@ end; } end. + diff --git a/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.dfm b/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.dfm index 551465e7..cdd1cae7 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.dfm +++ b/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.dfm @@ -11,6 +11,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir inherited JvNavPanelHeader: TJvNavPanelHeader Width = 669 Caption = 'Detalle de art'#237'culos sin recibir' + ExplicitTop = -6 ExplicitWidth = 669 inherited Image1: TImage Left = 642 @@ -39,6 +40,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir end end inherited TBXDock: TTBXDock + Top = 52 Width = 669 ExplicitWidth = 669 inherited tbxMain: TTBXToolbar @@ -102,9 +104,9 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir end inline frViewDetallesSinRecibir1: TfrViewDetallesSinRecibir [3] Left = 0 - Top = 102 + Top = 127 Width = 669 - Height = 419 + Height = 394 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -119,7 +121,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir ExplicitHeight = 419 inherited cxGrid: TcxGrid Width = 669 - Height = 291 + Height = 266 ExplicitWidth = 669 ExplicitHeight = 291 inherited cxGridView: TcxGridDBTableView @@ -205,7 +207,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir end end inherited pnlAgrupaciones: TTBXDockablePanel - Top = 393 + Top = 368 ExplicitTop = 393 ExplicitWidth = 669 inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -213,7 +215,6 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir ExplicitWidth = 669 inherited TBXToolbar1: TTBXToolbar Width = 659 - ExplicitLeft = 10 ExplicitWidth = 659 end end @@ -238,7 +239,27 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir end end end - inherited EditorActionList: TActionList [4] + object JvNavPanelHeader1: TJvNavPanelHeader [4] + Left = 0 + Top = 27 + Width = 669 + Height = 25 + Align = alTop + Caption = 'Almac'#233'n de entrada: ' + Font.Charset = DEFAULT_CHARSET + Font.Color = 13553407 + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + WordWrap = True + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + ParentStyleManager = False + ExplicitTop = 21 + end + inherited EditorActionList: TActionList [5] Left = 96 Top = 112 inherited actNuevo: TAction @@ -286,7 +307,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir OnExecute = actRecibirExecute end end - inherited SmallImages: TPngImageList [5] + inherited SmallImages: TPngImageList [6] PngImages = < item PngImage.Data = { @@ -903,7 +924,7 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir Top = 160 Bitmap = {} end - inherited LargeImages: TPngImageList [6] + inherited LargeImages: TPngImageList [7] PngImages = < item PngImage.Data = { @@ -1836,12 +1857,12 @@ inherited fEditorDetallesSinRecibir: TfEditorDetallesSinRecibir Top = 160 Bitmap = {} end - inherited JvFormStorage: TJvFormStorage [7] + inherited JvFormStorage: TJvFormStorage [8] end - inherited dsDataTable: TDADataSource [9] + inherited dsDataTable: TDADataSource [10] Left = 8 end - inherited StatusBarImages: TPngImageList [10] + inherited StatusBarImages: TPngImageList [11] end inherited GridPopupMenu: TPopupMenu inherited Nuevo1: TMenuItem [3] diff --git a/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.pas b/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.pas index 3c9686f0..fa9e7836 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.pas +++ b/Source/Modulos/Inventario/Views/uEditorDetallesSinRecibir.pas @@ -11,7 +11,8 @@ uses JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, uIEditorDetallesSinRecibir, uBizInventario, uViewGridBase, - JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController; + JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController, + uBizAlmacenes; type @@ -22,13 +23,15 @@ type frViewDetallesSinRecibir1: TfrViewDetallesSinRecibir; TBXItem38: TTBXItem; actRecibir: TAction; + JvNavPanelHeader1: TJvNavPanelHeader; procedure FormShow(Sender: TObject); procedure actRecibirExecute(Sender: TObject); private -// function SeleccionarAlmacen(Descripcion: String): Integer; -// function DarIDAlmacenSeleccionado(Descripcion: String): Integer; + FAlmacen: IBizAlmacen; + function GetAlmacen: Integer; + procedure SetAlmacen(const Value: Integer); protected // FArticulo: IBizInventario; @@ -51,7 +54,7 @@ type procedure PrevisualizarInterno; override; public -// property Articulo: IBizInventario read GetArticulo write SetArticulo; + property Almacen: Integer read GetAlmacen write SetAlmacen; property DetallesSinRecibir: IBizDetalleSinRecibir read GetDetalles write SetDetalles; property Controller : IInventarioController read GetController write SetController; @@ -69,7 +72,7 @@ implementation uses cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios, uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, - uAlmacenesController, uBizAlmacenes, uGenerarAlbaranesProvUtils, + uAlmacenesController, uGenerarAlbaranesProvUtils, schInventarioClient_Intf, uDialogUtils, uBizAlbaranesProveedor; {, uDBSelectionList, uDataModulePedidosProveedor, @@ -95,7 +98,10 @@ begin ArticulosSeleccionados := (Controller as IInventarioController).ExtraerSeleccionados(DetallesSinRecibir) as IBizDetalleSinRecibir; if (ArticulosSeleccionados.DataTable.RecordCount > 0) then - GenerarAlbaranesProv(ArticulosSeleccionados, AlbaranesProveedor) + begin + GenerarAlbaranesProv(ArticulosSeleccionados, AlbaranesProveedor, Almacen); + RefrescarInterno; + end else ShowWarningMessage('Debe seleccionar los artículos que desea recibir'); @@ -108,6 +114,7 @@ end; constructor TfEditorDetallesSinRecibir.Create(AOwner: TComponent); begin inherited; + FAlmacen := Nil; ViewGrid := frViewDetallesSinRecibir1; end; @@ -128,6 +135,7 @@ end; destructor TfEditorDetallesSinRecibir.Destroy; begin FDetalles := NIL; + FAlmacen := NIL; inherited; end; @@ -164,6 +172,14 @@ begin end; } +function TfEditorDetallesSinRecibir.GetAlmacen: Integer; +begin + if Assigned(FAlmacen) then + Result := FAlmacen.ID + else + Result := -1; +end; + function TfEditorDetallesSinRecibir.GetController: IInventarioController; begin Result := FController; @@ -190,6 +206,7 @@ var begin FTitulo := 'Detalle de artículos sin recibir - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); + JvNavPanelHeader1.Caption := 'Almacén de entrada: ' + FAlmacen.NOMBRE; end; procedure TfEditorDetallesSinRecibir.PrevisualizarInterno; @@ -251,6 +268,19 @@ begin end; end; } +procedure TfEditorDetallesSinRecibir.SetAlmacen(const Value: Integer); +var + AAlmacenesController : IAlmacenesController; +begin + AAlmacenesController := TAlmacenesController.Create; + try + FAlmacen := AAlmacenesController.Buscar(Value); + FAlmacen.DataTable.Active := True; + finally + AAlmacenesController := NIL; + end; +end; + procedure TfEditorDetallesSinRecibir.SetController(const Value: IInventarioController); begin FController := Value; diff --git a/Source/Modulos/Inventario/Views/uEditorInventario.pas b/Source/Modulos/Inventario/Views/uEditorInventario.pas index f79e1e87..aee504b7 100644 --- a/Source/Modulos/Inventario/Views/uEditorInventario.pas +++ b/Source/Modulos/Inventario/Views/uEditorInventario.pas @@ -295,9 +295,14 @@ begin end; procedure TfEditorInventario.actRecibirExecute(Sender: TObject); +var + IDAlmacenDestino: Integer; + begin inherited; - FController.VerSinRecibir; + IDAlmacenDestino := DarIDAlmacenSeleccionado('Elija el almacén de destino (donde entran los artículos)'); + FController.VerSinRecibir(IDAlmacenDestino); + RefrescarInterno; end; procedure TfEditorInventario.actRecibirPedidoExecute(Sender: TObject); @@ -330,9 +335,13 @@ begin end; procedure TfEditorInventario.actAlbaranarExecute(Sender: TObject); +var + IDAlmacenOrigen: Integer; begin inherited; - FController.VerSinAlbaran; //(Inventario); + IDAlmacenOrigen := DarIDAlmacenSeleccionado('Elija el almacén de origen (de donde salen los artículos)'); + FController.VerSinAlbaran(IDAlmacenOrigen); + RefrescarInterno; end; procedure TfEditorInventario.actContraerExecute(Sender: TObject); diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas index fd576ccc..8ca973c8 100644 --- a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas +++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas @@ -16,8 +16,8 @@ type function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; //Metodos para albaranar articulos pendientes - function GenerarAlbaranesCli(AArticulos : IBizDetalleSinAlbaran; var AAlbaranes: IBizAlbaranCliente) : Boolean; overload; - procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranCliente; ACliente: IBizCliente; AArticulos: IBizDetalleSinAlbaran); + function GenerarAlbaranesCli(AArticulos : IBizDetalleSinAlbaran; var AAlbaranes: IBizAlbaranCliente; const IDAlmacen:Integer) : Boolean; overload; + procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranCliente; ACliente: IBizCliente; const IDAlmacen:Integer; AArticulos: IBizDetalleSinAlbaran); implementation @@ -275,7 +275,7 @@ begin end; end; -function GenerarAlbaranesCli(AArticulos : IBizDetalleSinAlbaran; var AAlbaranes: IBizAlbaranCliente) : Boolean; overload; +function GenerarAlbaranesCli(AArticulos : IBizDetalleSinAlbaran; var AAlbaranes: IBizAlbaranCliente; const IDAlmacen:Integer) : Boolean; overload; var ARespuesta : Integer; ACliente: IBizCliente; @@ -306,7 +306,7 @@ begin ACliente := (AClientesController.Buscar(AArticulos.ID_CLIENTE) as IBizCliente); ACliente.DataTable.Active := True; AAlbaranes := AAlbaranesClienteController.Nuevo; - InicializarAlbaran(AAlbaranes, ACliente, AArticulos); + InicializarAlbaran(AAlbaranes, ACliente, IDAlmacen, AArticulos); //Aqui no es necesario BeginUpdate y EndUpdate de los detalles porque siempre añadimos una linea al final. // Añado el título del pedido ya que siempre tendremos al menos un concepto de pedido @@ -368,7 +368,7 @@ begin ACliente := (AClientesController.Buscar(AArticulos.ID_CLIENTE) as IBizCliente); ACliente.DataTable.Active := True; AAlbaranesClienteController.Anadir(AAlbaranes); - InicializarAlbaran(AAlbaranes, ACliente, AArticulos); + InicializarAlbaran(AAlbaranes, ACliente, IDAlmacen, AArticulos); // Añado el título del pedido ya que siempre tendremos al menos un concepto de pedido ADetallesAlbaranesCliController.Add(AAlbaranes.Detalles, TIPO_DETALLE_TITULO); @@ -430,11 +430,12 @@ begin end; end; -procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranCliente; ACliente: IBizCliente; AArticulos: IBizDetalleSinAlbaran); +procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranCliente; ACliente: IBizCliente; const IDAlmacen:Integer; AArticulos: IBizDetalleSinAlbaran); begin //El albaran debe venir abierto y posicionado para la copia. AAlbaranes.Cliente := (ACliente as IBizCliente); AAlbaranes.TIPO := CTE_TIPO_ALBARAN; + AAlbaranes.ID_ALMACEN := IDAlmacen; AAlbaranes.REFERENCIA_CLIENTE := AArticulos.REFERENCIA_CLI_PEDIDO; AAlbaranes.FECHA_PREVISTA_ENVIO := AArticulos.FECHA_PREVISTA_PEDIDO; AAlbaranes.CALLE := AArticulos.CALLE; diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm index fcd1cccd..a0d7e16b 100644 --- a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm @@ -69,7 +69,7 @@ object dmGenerarAlbaranesProv: TdmGenerarAlbaranesProv Value = 200 Cancel = True end> - ButtonBar.Buttons = [] + ButtonBar.Buttons = [cbOK] ButtonBar.Cancel = cbOK ButtonBar.UseCancel = False MainIcon = tdiCustom 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 86a0b8c2..2453e152 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 @@ -18,8 +18,8 @@ type function RecibirPedidoProv: Boolean; overload; //Metodos para recibir articulos pendientes - function GenerarAlbaranesProv(AArticulos : IBizDetalleSinRecibir; var AAlbaranes: IBizAlbaranProveedor) : Boolean; overload; - procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranProveedor; AProveedor: IBizProveedor; AArticulos: IBizDetalleSinRecibir); + function GenerarAlbaranesProv(AArticulos : IBizDetalleSinRecibir; var AAlbaranes: IBizAlbaranProveedor; const IDAlmacen:Integer) : Boolean; overload; + procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranProveedor; AProveedor: IBizProveedor; const IDAlmacen:Integer; AArticulos: IBizDetalleSinRecibir); implementation @@ -356,7 +356,7 @@ begin end; end; -function GenerarAlbaranesProv(AArticulos : IBizDetalleSinRecibir; var AAlbaranes: IBizAlbaranProveedor) : Boolean; overload; +function GenerarAlbaranesProv(AArticulos : IBizDetalleSinRecibir; var AAlbaranes: IBizAlbaranProveedor; const IDAlmacen:Integer) : Boolean; overload; var ARespuesta : Integer; AProveedor: IBizProveedor; @@ -387,7 +387,7 @@ begin AProveedor := (AProveedoresController.Buscar(AArticulos.ID_PROVEEDOR) as IBizProveedor); AProveedor.DataTable.Active := True; AAlbaranes := AAlbaranesProveedorController.Nuevo; - InicializarAlbaran(AAlbaranes, AProveedor, AArticulos); + InicializarAlbaran(AAlbaranes, AProveedor, IDAlmacen, AArticulos); //Aqui no es necesario BeginUpdate y EndUpdate de los detalles porque siempre añadimos una linea al final. // Añado el título del pedido ya que siempre tendremos al menos un concepto de pedido @@ -449,7 +449,7 @@ begin AProveedor := (AProveedoresController.Buscar(AArticulos.ID_PROVEEDOR) as IBizProveedor); AProveedor.DataTable.Active := True; AAlbaranesProveedorController.Anadir(AAlbaranes); - InicializarAlbaran(AAlbaranes, AProveedor, AArticulos); + InicializarAlbaran(AAlbaranes, AProveedor, IDAlmacen, AArticulos); // Añado el título del pedido ya que siempre tendremos al menos un concepto de pedido ADetallesAlbaranesController.Add(AAlbaranes.Detalles, TIPO_DETALLE_TITULO); @@ -512,13 +512,12 @@ begin end; -procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranProveedor; AProveedor: IBizProveedor; AArticulos: IBizDetalleSinRecibir); +procedure InicializarAlbaran(var AAlbaranes: IBizAlbaranProveedor; AProveedor: IBizProveedor; const IDAlmacen:Integer; AArticulos: IBizDetalleSinRecibir); begin //El albaran debe venir abierto y posicionado para la copia. AAlbaranes.Proveedor := (AProveedor as IBizProveedor); AAlbaranes.TIPO := CTE_TIPO_ALBARAN; -// AAlbaranes.REFERENCIA_CLIENTE := AArticulos.REFERENCIA_CLI_PEDIDO; -// AAlbaranes.FECHA_PREVISTA_ENVIO := AArticulos.FECHA_PREVISTA_PEDIDO; + AAlbaranes.ID_ALMACEN := IDAlmacen; AAlbaranes.CALLE := AArticulos.CALLE; AAlbaranes.CODIGO_POSTAL := AArticulos.CODIGO_POSTAL; AAlbaranes.POBLACION := AArticulos.POBLACION; diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index c91cfc20..4a712d00 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -16,7 +16,7 @@ BEGIN VALUE "FileVersion", "2.9.0.0\0" VALUE "ProductName", "FactuGES Server\0" VALUE "ProductVersion", "2.9.0.0\0" - VALUE "CompileDate", "miércoles, 28 de mayo de 2008 19:02\0" + VALUE "CompileDate", "miércoles, 28 de mayo de 2008 19:25\0" END END BLOCK "VarFileInfo" diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res index b87e4ad41904d2a659f126db1a37010ccf72c692..985c503738e3d7109bfbe6a04878219c393e2197 100644 GIT binary patch delta 17 ZcmZ3pjd9I3#to06n2i`rCqIpH2LMH(2Q~lz delta 17 ZcmZ3pjd9I3#to06m<