This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Codigo/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas
2007-06-12 14:12:46 +00:00

237 lines
7.7 KiB
ObjectPascal

unit uEditorEntradaSalidaArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView,
uViewBase, uEditorItem, pngimage, uViewGridBase,
uViewGrid, JvComponentBase, uBizInventario, uViewEntradaSalidaArticulos,
uIEditorEntradaSalidaArticulos, uInventarioController, JvExComCtrls,
JvStatusBar, Grids, DBGrids, cxLabel, cxControls, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxMemo;
type
TfEditorEntradaSalidaArticulos = class(TfEditorDBItem, IEditorEntradaSalidaArticulos)
frViewListaArticulos: TfrViewEntradaSalidaArticulos;
actAnadirInventario: TAction;
actEliminarInventario: TAction;
TBXToolbar1: TTBXToolbar;
TBXItem33: TTBXItem;
TBXItem34: TTBXItem;
TBXSeparatorItem16: TTBXSeparatorItem;
actAnchoAuto: TAction;
TBXItem7: TTBXItem;
pnlMovimiento: TPanel;
eFechaMovimiento: TcxDateEdit;
lFecha: TcxLabel;
lCausa: TcxLabel;
eCausa: TcxTextEdit;
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure actAnadirInventarioExecute(Sender: TObject);
procedure actEliminarInventarioExecute(Sender: TObject);
procedure actAnchoAutoExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FTitulo: String;
FHayCambios: Boolean;
FResultadoModalOK: Boolean;
FController : IInventarioController;
FArticulos: IBizInventario; //Los artículos de entrada o salida
FInventario: IBizInventario; //Para sacar el stock
function GetArticulos: IBizInventario;
procedure SetArticulos(const Value: IBizInventario);
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
function GetController : IInventarioController;
procedure SetController (const Value : IInventarioController);
function getResultadoModalOK: Boolean;
protected
procedure GuardarInterno; override;
// procedure CancelarCambiosInterno; override;
function GetModified: Boolean; override;
public
property Controller : IInventarioController read GetController write SetController;
property Articulos: IBizInventario read GetArticulos write SetArticulos;
property Inventario: IBizInventario read GetInventario write SetInventario;
property ResultadoModalOK: Boolean read getResultadoModalOK;
constructor Create(AOwner: TComponent); override;
procedure PonerTitulos(const ATitulo: string = ''); override;
end;
implementation
uses uEditorBase, uBizAlmacenes, schAlmacenesClient_Intf;
{$R *.dfm}
//uses uEditorUtils;
{ TfEditorRecibirPedido }
function TfEditorEntradaSalidaArticulos.GetArticulos: IBizInventario;
begin
Result := FArticulos;
end;
function TfEditorEntradaSalidaArticulos.GetController: IInventarioController;
begin
Result := FController;
end;
function TfEditorEntradaSalidaArticulos.GetInventario: IBizInventario;
begin
Result := FInventario;
end;
function TfEditorEntradaSalidaArticulos.GetModified: Boolean;
begin
Result := FHayCambios;
end;
function TfEditorEntradaSalidaArticulos.getResultadoModalOK: Boolean;
begin
Result := FResultadoModalOK;
end;
procedure TfEditorEntradaSalidaArticulos.GuardarInterno;
begin
inherited;
//En este punto se realizará el applyupdates
if FController.Guardar(FArticulos, eFechaMovimiento.Date, eCausa.Text) then
FResultadoModalOK := True
else
FResultadoModalOK := False;
FHayCambios:= False;
end;
procedure TfEditorEntradaSalidaArticulos.PonerTitulos(const ATitulo: string);
begin
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorEntradaSalidaArticulos.SetArticulos(const Value: IBizInventario);
begin
FArticulos := Value;
if Assigned(FArticulos) then
dsDataTable.DataTable := FArticulos.DataTable
else
dsDataTable.DataTable := NIL;
frViewListaArticulos.dsDataSource.DataTable := dsDataTable.DataTable;
// PonerEtiquetasEnEditor
end;
procedure TfEditorEntradaSalidaArticulos.SetController(const Value: IInventarioController);
begin
FController := Value
end;
procedure TfEditorEntradaSalidaArticulos.SetInventario(const Value: IBizInventario);
begin
FInventario := Value;
end;
procedure TfEditorEntradaSalidaArticulos.actAnadirInventarioExecute(Sender: TObject);
begin
//Todos los cambios serán en caché hasta que el usuario decida guardar
FController.Anadir(Articulos, Inventario);
FHayCambios:= True;
end;
procedure TfEditorEntradaSalidaArticulos.CustomEditorClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
FController := Nil;
FArticulos:= Nil;
FInventario:= Nil;
end;
procedure TfEditorEntradaSalidaArticulos.FormShow(Sender: TObject);
var
AAlmacenOrigen: IBizAlmacen;
AAlmacenDestino: IBizAlmacen;
begin
inherited;
FTitulo := '';
if Assigned(FArticulos) then
begin
//Titulos
try
AAlmacenOrigen := Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenOrigen);
AAlmacenDestino:= Controller.AlmacenesController.Buscar(FArticulos.IDAlmacenDestino);
AAlmacenOrigen.DataTable.Active := True;
AAlmacenDestino.DataTable.Active := True;
case FArticulos.TipoMovimiento of
tEntradaLibre, tEntradaPedidoProveedor :
FTitulo := 'Entrada de artículos en almacén "' + AAlmacenDestino.NOMBRE + '"';
tSalidaLibre, tSalidaAlbaranCliente :
FTitulo := 'Salida de artículos en almacén "' + AAlmacenOrigen.NOMBRE + '"';
tTraslado:
FTitulo := 'Traslado de artículos desde almacén "' + AAlmacenOrigen.NOMBRE + '" hasta el almacén "' + AAlmacenDestino.NOMBRE + '"';
end;
finally
AAlmacenOrigen := Nil;
AAlmacenDestino:= Nil;
end;
//Botones de añadir y eliminar
case FArticulos.TipoMovimiento of
tEntradaLibre, tSalidaLibre, tTraslado :
begin
pnlMovimiento.Visible := True;
eFechaMovimiento.Date := Date;
actAnadirInventario.Enabled := True;
actAnadirInventario.Visible := True;
actEliminarInventario.Enabled := True;
actEliminarInventario.Visible := True;
frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := False;
end;
tEntradaPedidoProveedor, tSalidaAlbaranCliente :
begin
pnlMovimiento.Visible := False;
actAnadirInventario.Enabled := False;
actAnadirInventario.Visible := False;
actEliminarInventario.Enabled := False;
actEliminarInventario.Visible := False;
if (FArticulos.TipoMovimiento = tSalidaAlbaranCliente) then
frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := True
else
frViewListaArticulos.cxGridViewCANTIDAD.Properties.ReadOnly := False;
end;
end;
end;
end;
procedure TfEditorEntradaSalidaArticulos.actAnchoAutoExecute(Sender: TObject);
begin
frViewListaArticulos.cxGridView.ApplyBestFit;
end;
procedure TfEditorEntradaSalidaArticulos.actEliminarInventarioExecute(Sender: TObject);
begin
//Todos los cambios serán en caché hasta que el usuario decida guardar
Controller.Eliminar(Articulos, false, false);
FHayCambios:= True;
end;
constructor TfEditorEntradaSalidaArticulos.Create(AOwner: TComponent);
begin
inherited;
FTitulo := '';
FHayCambios:= False;
FResultadoModalOK := False;
end;
end.