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
2007-06-21 15:47:20 +00:00

325 lines
9.6 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2001. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 11-08-2002
Versión actual: 1.0.2
Fecha versió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ón.
14-04-2004 p272. Adaptació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.