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/ArticuloObraHistorica.pas

325 lines
9.6 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: 11-08-2002
Versi<EFBFBD>n actual: 1.0.2
Fecha versi<EFBFBD>n actual: 04-10-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
27-11-2001 Cambio de los titulos respectivos a obra y almacenes en el
procedimiento CambiarEntidad.
07-04-2002 Se ha adaptado a una unica transacci<EFBFBD>n.
14-04-2004 p272. Adaptaci<EFBFBD>n a multiempresa.
04-10-2004 Cambio CambiarEntidad para que soporte otro color.
===============================================================================
}
unit ArticuloObraHistorica;
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,
RdxFrameArticulosObraHistorica;
type
TfrArticuloObraHistorica = class(TRdxFrameArticulosObraHistorica)
pnlScroll: TRdxScrollPanel;
brSimple: TRdxBarraInferior;
bSalir: TRdxBoton;
pnlAlmacen: TRdxPanel;
eAlmacen: TLabel;
cAlmacen: TRdxCabecera;
RdxPanel1: TRdxPanel;
RdxCabecera1: TRdxCabecera;
Codigo: TRdxDBEdit;
eCodigo: TLabel;
cbxFamilia: TRdxDBComboBox;
eFamilia: TLabel;
Precio: TRdxDBEdit;
cbxUnidadesMedida: TRdxDBComboBox;
eUnidades: TLabel;
eDescripcion: TLabel;
Descripcion: TRdxDBEdit;
eObservaciones: TLabel;
Observaciones: TRdxDBMemo;
dsArticulosObraHistorica: TDataSource;
Titulo: TRdxPanelTituloOperacion;
cbxAlmacen: TRdxDBComboBox;
brDoble: TRdxBarraInferior;
bAceptar: TRdxBoton;
bCancelar: TRdxBoton;
eStockActual: TLabel;
procedure bAceptarClick(Sender: TObject);
procedure bCancelarGuardarClick(Sender: TObject);
procedure bSalirClick(Sender: TObject);
procedure CodigoButtonClick(Sender: TObject);
private
FListaAlmacenesCodigo : TStringList;
protected
procedure ActivarModoConsultar; override;
procedure ActivarModoEliminar; override;
function EliminarDatos : Boolean; override;
function CancelarEliminar : Boolean; override;
procedure VerModal; override;
procedure FreeContenido; override;
procedure BuscarAlmacen; override;
procedure BuscarArticulo; override;
function ComprobarDatos: Boolean; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property TablaArticulosObraHistorica;
property CodigoAlmacen;
property CodigoArticulo;
end;
var
frArticuloObraHistorica: TfrArticuloObraHistorica;
implementation
{$R *.DFM}
uses
BaseDatos, TablaArticulosObraHistorica, ArticulosObraHistorica, Excepciones,
StrFunc, Configuracion, RdxEmpresaActiva, Literales;
constructor TfrArticuloObraHistorica.Create(AOwner : TComponent);
var
i : Integer;
liIndex : Integer;
begin
inherited Create(AOwner);
Entidad := entArticuloAlmacenObra;
ConfigurarFrame(Self, Self.Entidad);
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaArticulosObraHistorica := TIBDataSet.Create(Self);
dsArticulosObraHistorica.DataSet := TablaArticulosObraHistorica;
with TablaArticulosObraHistorica do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaArticulosObraHistorica.sqlConsultar);
DeleteSQL.Assign(dmTablaArticulosObraHistorica.sqlEliminar);
RefreshSQL.Assign(dmTablaArticulosObraHistorica.sqlConsultar);
end;
{Carga todos los almacenes en el combox, como no habra posibilidad de cambio,
da igual la entidad que sea}
FListaAlmacenesCodigo := dmTablaArticulosObraHistorica.DarObras(EmpresaActiva.Codigo);
for i:=0 to FListaAlmacenesCodigo.Count-1 do
cbxAlmacen.Items.Add(FListaAlmacenesCodigo.Strings[i]);
// Carga el primer almacen
cbxAlmacen.ItemIndex := 0;
liIndex := FListaAlmacenesCodigo.IndexOf(cbxAlmacen.Text);
//Asigno el objeto codigo de almacen (CodigoObra, Nombre, FechaCierre)
if (liIndex <> -1) then
CodigoAlmacen := TTipoCodigoFecha(FListaAlmacenesCodigo.Objects[liIndex]);
end;
destructor TfrArticuloObraHistorica.Destroy;
begin
TablaArticulosObraHistorica.Close;
TablaArticulosObraHistorica.UnPrepare;
TablaArticulosObraHistorica.Free;
inherited;
end;
procedure TfrArticuloObraHistorica.bAceptarClick(Sender: TObject);
begin
if (RealizarOperacion) then
CloseFrame;
end;
procedure TfrArticuloObraHistorica.BuscarAlmacen;
var
i: integer;
begin
cbxAlmacen.ItemIndex := FListaAlmacenesCodigo.IndexOf(CodigoAlmacen.darDescripcion);
end;
procedure TfrArticuloObraHistorica.BuscarArticulo;
begin
if Transaccion = NIL then
exit;
try
with TablaArticulosObraHistorica do
begin
Close;
// Buscar la fila a tratar si es necesario
if (CodigoAlmacen <> Nil) and (not VarIsNull(CodigoArticulo)) then
begin
Params.ByName('CODIGOOBRA').AsInteger := CodigoAlmacen.Codigo;
Params.ByName('FECHACIERRE').AsDate := StrToDate(CodigoAlmacen.Fecha);
Params.ByName('CODIGOARTICULO').AsString := CodigoArticulo;
end;
Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
Prepare;
Open;
end;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrArticuloObraHistorica.ActivarModoConsultar;
begin
dsArticulosObraHistorica.AutoEdit := False;
Codigo.VerBoton := True;
try
TablaArticulosObraHistorica.Open;
if TablaArticulosObraHistorica.RecordCount = 0 then
begin
VerMensajeFmt(msgArtNoExisteArtAlm, [CodigoArticulo]);
CloseFrame;
Exit;
end;
TablaArticulosObraHistorica.Cancel;
Visible := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrArticuloObraHistorica.ActivarModoEliminar;
begin
dsArticulosObraHistorica.AutoEdit := False;
Codigo.VerBoton := True;
try
TablaArticulosObraHistorica.Open;
if TablaArticulosObraHistorica.RecordCount = 0 then
begin
VerMensajeFmt(msgArtNoExisteArtAlm, [CodigoArticulo]);
CancelarEliminar;
CloseFrame;
Exit;
end;
TablaArticulosObraHistorica.Cancel;
Visible := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrArticuloObraHistorica.FreeContenido;
begin
if (ContenidoModal is TRdxFrameArticulosObraHistorica) then begin
CodigoAlmacen := (ContenidoModal as TRdxFrameArticulosObraHistorica).CodigoAlmacen;
CodigoArticulo := (ContenidoModal as TRdxFrameArticulosObraHistorica).CodigoArticulo;
end;
inherited FreeContenido;
end;
procedure TfrArticuloObraHistorica.CodigoButtonClick(Sender: TObject);
begin
inherited;
if (TratarCambios = IDCANCEL) then
exit;
ContenidoModal := TfrArticulosObraHistorica.Create(Self);
end;
procedure TfrArticuloObraHistorica.VerModal;
begin
if (ContenidoModal is TRdxFrameArticulosObraHistorica) then
(ContenidoModal as TRdxFrameArticulosObraHistorica).CodigoAlmacen := FCodigoAlmacen;
inherited VerModal;
end;
function TfrArticuloObraHistorica.EliminarDatos: Boolean;
begin
Result := False;
try
TablaArticulosObraHistorica.Delete;
Commit;
TablaArticulosObraHistorica.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrArticuloObraHistorica.CancelarEliminar: Boolean;
begin
Result := False;
try
RollBack;
TablaArticulosObraHistorica.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrArticuloObraHistorica.bCancelarGuardarClick(Sender: TObject);
begin
if (TratarCambios = IDOK) then
CloseFrame;
end;
procedure TfrArticuloObraHistorica.bSalirClick(Sender: TObject);
begin
try
Rollback;
CloseFrame;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrArticuloObraHistorica.ComprobarDatos: Boolean;
begin
Result := False;
Case Modo of
Eliminar : {if dmTablaArticulosObraHistorica.ArticuloAlmacenTieneExistencias(CodigoAlmacen,CodigoArticulo) then
begin
VerMensaje(msgArtTieneExistencias);
Exit;
end;}
end;
Result := True;
end;
end.