Varela_PuntosVenta/Source/CargaEDI/uCargaEDI.pas

164 lines
4.2 KiB
ObjectPascal

unit uCargaEDI;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, ComCtrls, StdCtrls, JvExComCtrls, JvAnimate,
pngimage, XPMan, ImgList;
type
TIconoEstado = (ieOK, ieMAL, ieNada);
TfCargaEDI = class(TForm)
Label13: TLabel;
JvAnimate1: TJvAnimate;
Button1: TButton;
TimerCuentaAtrasCerrar: TTimer;
ListView1: TListView;
Image1: TImage;
Bevel1: TBevel;
TimerCuentaAtrasCargar: TTimer;
XPManifest1: TXPManifest;
ImageList1: TImageList;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TimerCuentaAtrasCerrarTimer(Sender: TObject);
procedure TimerCuentaAtrasCargarTimer(Sender: TObject);
private
FNumCargasError : Integer;
FNumCargasOK : Integer;
FCuentaAtras : Integer;
procedure OnLoadSuccess(Sender: TObject);
procedure OnLoadError(Sender : TObject);
procedure AnadirMensaje(const aMensaje : String; Icono : TIconoEstado = ieNada);
procedure LanzarCargas;
public
{ Public declarations }
end;
var
fCargaEDI: TfCargaEDI;
implementation
{$R *.dfm}
uses
uCargarFicheros, uDataModuleBase;
procedure TfCargaEDI.FormShow(Sender: TObject);
begin
FNumCargasOK := 0;
FNumCargasError := 0;
TimerCuentaAtrasCargar.Enabled := True;
end;
procedure TfCargaEDI.OnLoadError(Sender: TObject);
begin
Beep;
AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': ' + (Sender as TCargarFicherosThread).ErrorText, ieMAL);
FNumCargasError := FNumCargasError + 1;
if (FNumCargasError = 2) or
((FNumCargasError = 1) and (FNumCargasOK = 1)) then
begin
JvAnimate1.Visible := False;
JvAnimate1.Active := False;
TimerCuentaAtrasCerrar.Enabled := True;
end;
end;
procedure TfCargaEDI.OnLoadSuccess(Sender: TObject);
begin
Beep;
AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': Ficheros cargados', ieOK);
FNumCargasOK := FNumCargasOK + 1;
if (FNumCargasOK = 2) or
((FNumCargasError = 1) and (FNumCargasOK = 1)) then
begin
JvAnimate1.Visible := False;
JvAnimate1.Active := False;
TimerCuentaAtrasCerrar.Enabled := True;
end;
end;
procedure TfCargaEDI.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfCargaEDI.FormCreate(Sender: TObject);
begin
FCuentaAtras := 5;
FNumCargasError := 0;
FNumCargasOK := 0;
end;
procedure TfCargaEDI.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TfCargaEDI.AnadirMensaje(const aMensaje: String;
Icono : TIconoEstado = ieNada);
var
AItem : TListItem;
begin
AItem := ListView1.Items.Add;
case Icono of
ieOK : AItem.ImageIndex := 1;
ieMAL : AItem.ImageIndex := 0;
else
AItem.ImageIndex := -1;
end;
AItem.Caption := TimeToStr(Now);
AItem.SubItems.Add(aMensaje);
end;
procedure TfCargaEDI.LanzarCargas;
begin
if not dmBase.HayConexion then
begin
JvAnimate1.Visible := False;
JvAnimate1.Active := False;
AnadirMensaje('No se encuentra el servidor', ieMAL);
TimerCuentaAtrasCerrar.Enabled := True;
end
else begin
JvAnimate1.Active := True;
AnadirMensaje('Cargando ficheros de ventas');
TCargarVentasThread.Create('CABVEN.TXT', 'LUGVEN.TXT',
'ARTVEN.TXT', OnLoadSuccess, OnLoadError);
AnadirMensaje('Cargando ficheros de inventario');
TCargarInventarioThread.Create('CABINV.TXT', 'LININV.TXT',
'CANTINV.TXT', OnLoadSuccess, OnLoadError);
end;
end;
procedure TfCargaEDI.TimerCuentaAtrasCerrarTimer(Sender: TObject);
begin
Button1.Enabled := True;
TimerCuentaAtrasCerrar.Enabled := False;
if FCuentaAtras = 0 then
Close;
Button1.Caption := 'Cerrar (' + IntToStr(FCuentaAtras) + ')';
Update;
Application.ProcessMessages;
FCuentaAtras := FCuentaAtras - 1;
TimerCuentaAtrasCerrar.Enabled := True;
end;
procedure TfCargaEDI.TimerCuentaAtrasCargarTimer(Sender: TObject);
begin
TimerCuentaAtrasCargar.Enabled := False;
Update;
LanzarCargas;
end;
end.