This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/Almacenes/HistoricoMovimiento.pas

292 lines
7.9 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2001. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 01-10-2001
Versi<EFBFBD>n actual: 1.0.2
Fecha versi<EFBFBD>n actual: 04-10-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
07-04-2002 Se ha adaptado a una unica transacci<EFBFBD>n.
04-10-2004 Se a<EFBFBD>ade unidad cambiarEntidad para que pueda cambiar de color
dependiendo del modulo desde el que se la llama
===============================================================================
}
unit HistoricoMovimiento;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Db, IBCustomDataSet, Mask, DBCtrls, Buttons, ToolEdit,
IB, IBDatabase, RdxBarras, RdxBotones, RdxCampos, RdxMemo, RdxComboBox,
RdxCheckBox, RdxTitulos, RdxPaneles, Colores, Mensajes, Tipos,
RdxFrameHistoricoMovimientos;
type
TfrHistoricoMovimiento = class(TRdxFrameHistoricoMovimientos)
brSalir: TRdxBarraInferior;
bSalir: TRdxBoton;
pnlScroll: TRdxScrollPanel;
pnlDetalles: TRdxPanel;
eCantidad: TLabel;
eStockAnterior: TLabel;
eStockNuevo: TLabel;
eClienteAsociado: TLabel;
eFecha: TLabel;
eCausa: TLabel;
cDetalles: TRdxCabecera;
eHora: TLabel;
pnlDatos: TRdxPanel;
cDatos: TRdxCabecera;
eTipoOperacion: TLabel;
eTipoMovimiento: TLabel;
eUsuario: TLabel;
Codigo: TRdxDBEdit;
eCodigo: TLabel;
eUnidades: TLabel;
Descripcion: TRdxDBEdit;
eDescripcion: TLabel;
eFamilia: TLabel;
TipoOperacion: TRdxDBEdit;
Hora: TRdxDBEdit;
Cantidad: TRdxDBEdit;
Fecha: TRdxDBEdit;
StockAnterior: TRdxDBEdit;
TipoMovimiento: TRdxDBEdit;
StockNuevo: TRdxDBEdit;
Cliente: TRdxDBEdit;
Usuario: TRdxDBEdit;
Familia: TRdxDBEdit;
UnidadesMedida: TRdxDBEdit;
pnlAlmacen: TRdxPanel;
CArticulo: TRdxCabecera;
eAlmacen: TLabel;
dsMovimientos: TDataSource;
brDoble: TRdxBarraInferior;
bAceptar: TRdxBoton;
bCancelar: TRdxBoton;
Observaciones: TRdxDBMemo;
cbxAlmacen: TRdxDBComboBox;
Titulo: TRdxPanelTituloOperacion;
procedure bAceptarClick(Sender: TObject);
procedure bCancelarGuardarClick(Sender: TObject);
procedure bSalirClick(Sender: TObject);
protected
procedure ActivarModoConsultar; override;
procedure ActivarModoEliminar; override;
function EliminarDatos : Boolean; override;
function CancelarEliminar : Boolean; override;
procedure BuscarAlmacen; override;
procedure BuscarMovimiento; override;
function ComprobarDatos: Boolean; override;
function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
var
frHistoricoMovimiento: TfrHistoricoMovimiento;
implementation
{$R *.DFM}
uses
BaseDatos, TablaHistoricoMovimientos, TablaAlmacenes, Excepciones,
Configuracion, RdxEmpresaActiva, Literales;
constructor TfrHistoricoMovimiento.Create(AOwner : TComponent);
var
i : integer;
begin
inherited Create(AOwner);
Entidad := entMovimiento;
ConfigurarFrame(Self, Self.Entidad);
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaMovimientos := TIBDataSet.Create(Self);
dsMovimientos.DataSet := TablaMovimientos;
with TablaMovimientos do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaHistoricoMovimientos.sqlConsultar);
DeleteSQL.Assign(dmTablaHistoricoMovimientos.sqlEliminar);
RefreshSQL.Assign(dmTablaHistoricoMovimientos.sqlConsultar);
end;
{Carga todos los almacenes en el combox, como no habra posibilidad de cambio,
da igual la entidad que sea}
dmTablaAlmacenes.darAlmacenes(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen);
for i:=0 to FListaAlmacenesCodigo.Count-1 do
cbxAlmacen.Items.Add(FListaAlmacenesCodigo.Names[i]);
end;
destructor TfrHistoricoMovimiento.Destroy;
begin
TablaMovimientos.Close;
TablaMovimientos.UnPrepare;
TablaMovimientos.Free;
inherited;
end;
procedure TfrHistoricoMovimiento.bSalirClick(Sender: TObject);
begin
try
Rollback;
CloseFrame;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrHistoricoMovimiento.ActivarModoConsultar;
begin
dsMovimientos.AutoEdit := False;
try
TablaMovimientos.Open;
if TablaMovimientos.RecordCount = 0 then
begin
VerMensaje(msgMovNoExiste);
CloseFrame;
Exit;
end;
TablaMovimientos.Cancel;
Visible := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrHistoricoMovimiento.ActivarModoEliminar;
begin
dsMovimientos.AutoEdit := False;
try
TablaMovimientos.Open;
if TablaMovimientos.RecordCount = 0 then
begin
VerMensaje(msgMovNoExiste);
CancelarEliminar;
CloseFrame;
Exit;
end;
TablaMovimientos.Cancel;
Visible := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrHistoricoMovimiento.bAceptarClick(Sender: TObject);
begin
if (RealizarOperacion) then
CloseFrame;
end;
procedure TfrHistoricoMovimiento.bCancelarGuardarClick(Sender: TObject);
begin
if (TratarCambios = IDOK) then
CloseFrame;
end;
procedure TfrHistoricoMovimiento.BuscarAlmacen;
begin
cbxAlmacen.ItemIndex := cbxAlmacen.Items.IndexOf(FListaCodigosAlmacen.Values[CodigoAlmacen]);
end;
procedure TfrHistoricoMovimiento.BuscarMovimiento;
begin
if Transaccion = NIL then
exit;
try
TablaMovimientos.Close;
// Buscar la fila a tratar si es necesario
if (not VarIsNull(CodigoMovimiento)) then
TablaMovimientos.Params.ByName('CODIGO').AsString := CodigoMovimiento;
TablaMovimientos.Prepare;
TablaMovimientos.Open;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrHistoricoMovimiento.CancelarEliminar: Boolean;
begin
Result := False;
try
RollBack;
TablaMovimientos.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrHistoricoMovimiento.ComprobarDatos: Boolean;
begin
Result := True;
end;
function TfrHistoricoMovimiento.EliminarDatos: Boolean;
begin
Result := False;
try
TablaMovimientos.Delete;
Commit;
TablaMovimientos.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrHistoricoMovimiento.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
if not inherited CambiarEntidad(EntidadAnterior, Entidad) then
Exit;
ConfigurarFrame(Self, Self.Entidad);
end;
end.