From 4d6f36d0e951f22475ccea5fdcf813002b3a460a Mon Sep 17 00:00:00 2001 From: roberto Date: Mon, 8 Sep 2008 15:01:03 +0000 Subject: [PATCH] =?UTF-8?q?Fin=20de=20l=C3=B3gica=20de=20reservas=20y=20ac?= =?UTF-8?q?tivaci=C3=B3n=20hostorico=20de=20moviemitnos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@579 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/scripts/factuges.sql | 12 +-- Source/Cliente/FactuGES.res | Bin 172184 -> 171984 bytes .../Views/uViewHistoricoMovimientos.dfm | 8 +- .../Controller/uInventarioController.pas | 8 +- .../Inventario/Views/uViewInventario.dfm | 37 ++++++- .../Inventario/Views/uViewInventario.pas | 5 +- .../uGenerarAlbaranesProvUtils.pas | 100 ++++++++++++++++-- Source/Servidor/FactuGES_Server.RES | Bin 23212 -> 23208 bytes Source/Servidor/FactuGES_Server.rc | 2 +- 9 files changed, 148 insertions(+), 24 deletions(-) diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index be567a85..20122d9b 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -3053,8 +3053,8 @@ SELECT ALBARANES_CLIENTE.FECHA_ALBARAN, V_ALB_CLI_DETALLES.ID_ALMACEN, V_ALB_CLI_DETALLES.ID_ARTICULO, - CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'Entrada' - ELSE 'Salida' END, + CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'E' + ELSE 'S' END, (-1)*V_ALB_CLI_DETALLES.CANTIDAD, CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devolución de cliente ' || ALBARANES_CLIENTE.REFERENCIA ELSE 'Albarán de cliente ' || ALBARANES_CLIENTE.REFERENCIA END @@ -3080,8 +3080,8 @@ SELECT ALBARANES_PROVEEDOR.FECHA_ALBARAN, V_ALB_PROV_DETALLES.ID_ALMACEN, V_ALB_PROV_DETALLES.ID_ARTICULO, - CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'Salida' - ELSE 'Entrada' END, + CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'S' + ELSE 'E' END, V_ALB_PROV_DETALLES.CANTIDAD, CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devolución ' || ALBARANES_PROVEEDOR.REFERENCIA ELSE 'Albarán de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END @@ -3103,9 +3103,7 @@ TIPO_MOVIMIENTO, CANTIDAD, CAUSA) AS -SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, -CASE WHEN TIPO = 'E' THEN 'Entrada' -ELSE 'Salida' END, +SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, TIPO, CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD ELSE CANTIDAD END, 'Regularización por - ' || CAUSA diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 5f18b27b75cad2d801778a41e281051295f8f9fe..cc559f7e8ab17b784aa74bbef81cdfabf4332db4 100644 GIT binary patch delta 101 zcmbPnkn6&Ju7(!IEldaIDt%yNU{GLSVEF%E0EmGcATVIy;sG;�SRdkLEIYh_Em~ oLDq&v(5NUhPVh9=B^28TZr}`#-~#L0 z_iRiu^JdDI?SXX(Ri=hAo08x}?TI_%t?38X;LQ(ItbTWY1CI3KHR6UTQ z^-)eBgG!YE3oUqkojUiT?m)Ni_FgILv3&h=(HM~oh3x|{j0ZVK(!Nr6W6Grxr y>l5K%M4r!gg(+>4FxcKt!=quWoSYO-K6yG+=^|b(uaAhWeZ88~R?Dg5McQBDRyGX) diff --git a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm index 9423fe86..b4abc2fd 100644 --- a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm +++ b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm @@ -44,8 +44,12 @@ inherited frViewHistoricoMovimientos: TfrViewHistoricoMovimientos item Description = 'Entrada' ImageIndex = 3 - Tag = 1 - Value = 'Entrada' + Value = 'E' + end + item + Description = 'Salida' + ImageIndex = 2 + Value = 'S' end> end object cxGridViewFAMILIA: TcxGridDBColumn diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index 6457b0a2..8a166f57 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -33,7 +33,7 @@ type function ExtraerSeleccionados(AArticulos: IBizDetalleReservas) : IBizDetalleReservas; overload; procedure Anadir(AArticulos, AInventario : IBizInventario); - function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; procedure EntradaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenDestino: Integer); procedure SalidaArticulosLibre(AInventario: IBizInventario; Const CodigoAlmacenOrigen: Integer); @@ -140,7 +140,7 @@ type procedure VerReservas(AArticulo: IBizInventario); - function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; + function Guardar(AArticulos : IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; function Liberar(AInventario : IBizInventario): Boolean; overload; end; @@ -1134,14 +1134,14 @@ begin // Para así poder utiliza ID para la inserción de movimientos end; -function TInventarioController.Guardar(AArticulos: IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean; +function TInventarioController.Guardar(AArticulos: IBizInventario; const FechaMovimiento: TDateTime; const CausaMovimiento: String; AValidar:Boolean = True): Boolean; begin Result := False; if not Assigned(AArticulos) then raise Exception.Create ('Artículos no asignados'); - if Validar(AArticulos) then + if AValidar and Validar(AArticulos) then //Evaluacion perezosa begin ShowHourglassCursor; try diff --git a/Source/Modulos/Inventario/Views/uViewInventario.dfm b/Source/Modulos/Inventario/Views/uViewInventario.dfm index 8f9ace5b..4bc302db 100644 --- a/Source/Modulos/Inventario/Views/uViewInventario.dfm +++ b/Source/Modulos/Inventario/Views/uViewInventario.dfm @@ -157,8 +157,39 @@ inherited frViewInventario: TfrViewInventario Caption = 'Todos los almacenes' end end - inherited pnlAgrupaciones: TTBXDockablePanel - ExplicitWidth = 607 + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 510 + Width = 510 + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited eLista: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 215 + Width = 215 + end + end + end end inherited dxComponentPrinter: TdxComponentPrinter inherited dxComponentPrinterLink: TdxGridReportLink @@ -179,6 +210,8 @@ inherited frViewInventario: TfrViewInventario Font.Style = [] TextColor = clRed end + object cxStyleArticuloConStock: TcxStyle + end end inherited GridPNGImageList: TPngImageList PngImages = < diff --git a/Source/Modulos/Inventario/Views/uViewInventario.pas b/Source/Modulos/Inventario/Views/uViewInventario.pas index 65b98f90..43df3f17 100644 --- a/Source/Modulos/Inventario/Views/uViewInventario.pas +++ b/Source/Modulos/Inventario/Views/uViewInventario.pas @@ -48,6 +48,7 @@ type cxGridViewCOSTE_UNIDADES: TcxGridDBColumn; cxGridViewID: TcxGridDBColumn; cxGridViewID_ARTICULO: TcxGridDBColumn; + cxStyleArticuloConStock: TcxStyle; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; @@ -128,7 +129,9 @@ begin IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_INVENTARIOSTOCK).Index; AStock := ARecord.DisplayTexts[IndiceCol]; if (AStock < 0) then - AStyle.TextColor := cxStyleArticuloSinStock.TextColor; + AStyle.TextColor := cxStyleArticuloSinStock.TextColor + else + AStyle.TextColor := cxStyleArticuloConStock.TextColor; end; end; 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 c4754965..ee623f35 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 @@ -1,3 +1,72 @@ +{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1} +{$MINSTACKSIZE $00004000} +{$MAXSTACKSIZE $00100000} +{$IMAGEBASE $00400000} +{$APPTYPE GUI} +{$WARN SYMBOL_DEPRECATED ON} +{$WARN SYMBOL_LIBRARY ON} +{$WARN SYMBOL_PLATFORM ON} +{$WARN SYMBOL_EXPERIMENTAL ON} +{$WARN UNIT_LIBRARY ON} +{$WARN UNIT_PLATFORM ON} +{$WARN UNIT_DEPRECATED ON} +{$WARN UNIT_EXPERIMENTAL ON} +{$WARN HRESULT_COMPAT ON} +{$WARN HIDING_MEMBER ON} +{$WARN HIDDEN_VIRTUAL ON} +{$WARN GARBAGE ON} +{$WARN BOUNDS_ERROR ON} +{$WARN ZERO_NIL_COMPAT ON} +{$WARN STRING_CONST_TRUNCED ON} +{$WARN FOR_LOOP_VAR_VARPAR ON} +{$WARN TYPED_CONST_VARPAR ON} +{$WARN ASG_TO_TYPED_CONST ON} +{$WARN CASE_LABEL_RANGE ON} +{$WARN FOR_VARIABLE ON} +{$WARN CONSTRUCTING_ABSTRACT ON} +{$WARN COMPARISON_FALSE ON} +{$WARN COMPARISON_TRUE ON} +{$WARN COMPARING_SIGNED_UNSIGNED ON} +{$WARN COMBINING_SIGNED_UNSIGNED ON} +{$WARN UNSUPPORTED_CONSTRUCT ON} +{$WARN FILE_OPEN ON} +{$WARN FILE_OPEN_UNITSRC ON} +{$WARN BAD_GLOBAL_SYMBOL ON} +{$WARN DUPLICATE_CTOR_DTOR ON} +{$WARN INVALID_DIRECTIVE ON} +{$WARN PACKAGE_NO_LINK ON} +{$WARN PACKAGED_THREADVAR ON} +{$WARN IMPLICIT_IMPORT ON} +{$WARN HPPEMIT_IGNORED ON} +{$WARN NO_RETVAL ON} +{$WARN USE_BEFORE_DEF ON} +{$WARN FOR_LOOP_VAR_UNDEF ON} +{$WARN UNIT_NAME_MISMATCH ON} +{$WARN NO_CFG_FILE_FOUND ON} +{$WARN IMPLICIT_VARIANTS ON} +{$WARN UNICODE_TO_LOCALE ON} +{$WARN LOCALE_TO_UNICODE ON} +{$WARN IMAGEBASE_MULTIPLE ON} +{$WARN SUSPICIOUS_TYPECAST ON} +{$WARN PRIVATE_PROPACCESSOR ON} +{$WARN UNSAFE_TYPE OFF} +{$WARN UNSAFE_CODE OFF} +{$WARN UNSAFE_CAST OFF} +{$WARN OPTION_TRUNCATED ON} +{$WARN WIDECHAR_REDUCED ON} +{$WARN DUPLICATES_IGNORED ON} +{$WARN UNIT_INIT_SEQ ON} +{$WARN LOCAL_PINVOKE ON} +{$WARN MESSAGE_DIRECTIVE ON} +{$WARN TYPEINFO_IMPLICITLY_ADDED ON} +{$WARN XML_WHITESPACE_NOT_ALLOWED ON} +{$WARN XML_UNKNOWN_ENTITY ON} +{$WARN XML_INVALID_NAME_START ON} +{$WARN XML_INVALID_NAME ON} +{$WARN XML_EXPECTED_CHARACTER ON} +{$WARN XML_CREF_NO_RESOLVE ON} +{$WARN XML_NO_PARM ON} +{$WARN XML_NO_MATCHING_PARM ON} unit uGenerarAlbaranesProvUtils; interface @@ -21,12 +90,13 @@ implementation {$R *.dfm} uses - Dialogs, uDialogUtils, uBizDetallesPedidoProveedor, uBizDetallesAlbaranProveedor, - uPedidosProveedorController, uDetallesPedidoProveedorController, - uAlbaranesProveedorController, uProveedoresController, - uDetallesAlbaranProveedorController, uControllerDetallesBase, - uBizAlbaranesProveedor, uBizContactos, schPedidosProveedorClient_Intf, - schAlbaranesProveedorClient_Intf, uInventarioController, uBizInventario; + Forms, Dialogs, uDialogUtils, uDataTableUtils, uBizDetallesPedidoProveedor, + uBizDetallesAlbaranProveedor, uPedidosProveedorController, + uDetallesPedidoProveedorController, uAlbaranesProveedorController, + uProveedoresController, uDetallesAlbaranProveedorController, + uControllerDetallesBase, uBizAlbaranesProveedor, uBizContactos, + schPedidosProveedorClient_Intf, schAlbaranesProveedorClient_Intf, + uInventarioController, uBizInventario; var dmGenerarAlbaranesCli: TdmGenerarAlbaranesProv; @@ -320,9 +390,25 @@ begin // En AInventarioRecibido tenemos la lista de articulos que hemos recibido y // que utilizaremos para hacer el albarán if AAlbaranesProveedorController.Anadir(AAlbaran, APedido.ID, AInventarioRecibido) then - AAlbaranesProveedorController.Ver(AAlbaran); + 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 + 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 + AInventarioRecibido.TipoMovimiento := tReserva; + AInventarioRecibido.IDAlmacenOrigen := APedido.ID_ALMACEN; + AInventarioRecibido.IDAlmacenDestino := APedido.ID_OBRA; + AInventarioController.Guardar(AInventarioRecibido, AAlbaran.FECHA_ALBARAN, ('Reserva para obra ' + APedido.NOMBRE_OBRA + ' del pedido ' + APedido.REFERENCIA), False); + end; + end; + end; finally AAlbaran := NIL; + AInventarioRecibido := Nil; end; end; diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 8dfd7e4d0cd79f7e7c41d40ae23ee6efa3fd4b88..d4d09001fbb906046dbe06c86c05b0a80bc759e9 100644 GIT binary patch delta 75 zcmZ3pm2t&Z#tnBO7}rd`8zB!Q|3*YJ@=T75RAziJxi+$zIfp@Q^6yAl!5oHChCGH; ehGGUC1_cHK28+qMQHJbh3|0)r3`Ubvquc>6FBh-? delta 79 zcmZ3nm2u5h#tnBO7&lD58zB!Q|3*YJ3QUfSRAziLxi+$zxqv}q^6yAl(K3cihE#?k hhCCoy%%H=dz+k{&I$1NyklmcYiouY