unit principal;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids,
  Vcl.ExtCtrls, Data.DB, ZAbstractRODataset, ZAbstractDataset, ZDataset,
  Vcl.Mask, Vcl.DBCtrls;

type
  Tfprincipal = class(TForm)
    Panel2: TPanel;
    Panel6: TPanel;
    Panel3: TPanel;
    Panel10: TPanel;
    Panel4: TPanel;
    DBGrid3: TDBGrid;
    DBGrid1: TDBGrid;
    dsqestadopedidos: TDataSource;
    qestadopedidos: TZQuery;
    qestadopedidosid: TIntegerField;
    qestadopedidoside: TWideStringField;
    qestadopedidosidp: TIntegerField;
    qestadopedidosanyo: TIntegerField;
    qestadopedidosida: TWideStringField;
    qestadopedidosidproceso: TIntegerField;
    qestadopedidosfecha: TDateField;
    qestadopedidoscant_total: TFloatField;
    qestadopedidoscant_recibida: TFloatField;
    qestadopedidoscant_finalizada: TFloatField;
    qestadopedidosidalm: TIntegerField;
    qestadopedidosidsec: TIntegerField;
    qestadopedidosidorigen: TIntegerField;
    qestadopedidosidorisec: TIntegerField;
    qprocesos: TZReadOnlyQuery;
    qestadopedidosidser: TWideStringField;
    qestadopedidosdesarticulo: TWideStringField;
    qestadopedidosobservaciones: TWideStringField;
    Panel5: TPanel;
    Button1: TButton;
    Button2: TButton;
    qestadopedidoshora: TDateTimeField;
    qestadopedidos2: TZQuery;
    dsqestadopedidos2: TDataSource;
    qestadopedidos2id: TIntegerField;
    qestadopedidos2ide: TWideStringField;
    qestadopedidos2idp: TIntegerField;
    qestadopedidos2anyo: TIntegerField;
    qestadopedidos2idser: TWideStringField;
    qestadopedidos2idalm: TIntegerField;
    qestadopedidos2idsec: TIntegerField;
    qestadopedidos2ida: TWideStringField;
    qestadopedidos2idproceso: TIntegerField;
    qestadopedidos2fecha: TDateField;
    qestadopedidos2cant_total: TFloatField;
    qestadopedidos2cant_recibida: TFloatField;
    qestadopedidos2cant_finalizada: TFloatField;
    qestadopedidos2idorigen: TIntegerField;
    qestadopedidos2idorisec: TIntegerField;
    qestadopedidos2desarticulo: TWideStringField;
    qestadopedidos2observaciones: TWideStringField;
    qestadopedidos2hora: TDateTimeField;
    qprocesos2: TZReadOnlyQuery;
    Timer1: TTimer;
    qretirar: TZQuery;
    qsectores: TZReadOnlyQuery;
    qsectoresid: TIntegerField;
    qsectoresidalm: TIntegerField;
    qsectoresdescripcion: TWideStringField;
    qprocesosid: TIntegerField;
    qprocesosdescripcion: TWideStringField;
    Button4: TButton;
    qfabricar: TZQuery;
    qinsertartrazatemp: TZQuery;
    qactualizartrazatemp: TZQuery;
    qborrartrazatemp: TZQuery;
    qinsertartraza: TZQuery;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit2: TDBEdit;
    Label4: TLabel;
    qprocesos2ide: TWideStringField;
    qprocesos2ida: TWideStringField;
    qprocesos2idproceso: TIntegerField;
    qprocesos2orden: TIntegerField;
    qprocesos2descripcion: TWideStringField;
    qprocesos2idal: TIntegerField;
    qactualizartraza: TZQuery;
    qalmacenfinal: TZReadOnlyQuery;
    qalmacenfinalfinal: TIntegerField;
    qidtraza: TZReadOnlyQuery;
    qescandallo: TZReadOnlyQuery;
    qidtrazaid: TIntegerField;
    qidtrazaide: TWideStringField;
    qidtrazaidp: TIntegerField;
    qidtrazaanyo: TIntegerField;
    qidtrazaidser: TWideStringField;
    qidtrazaidalm: TIntegerField;
    qidtrazaidsec: TIntegerField;
    qidtrazaida: TWideStringField;
    qidtrazaidproceso: TIntegerField;
    qidtrazafecha: TDateField;
    qidtrazacant_total: TFloatField;
    qidtrazacant_recibida: TFloatField;
    qidtrazacant_finalizada: TFloatField;
    qidtrazaidorigen: TIntegerField;
    qidtrazaidorisec: TIntegerField;
    qidtrazadesarticulo: TWideStringField;
    qidtrazaobservaciones: TWideStringField;
    qidtrazahora: TDateTimeField;
    qinsertarconsumo: TZReadOnlyQuery;
    qentradasmaterial: TZReadOnlyQuery;
    qentradasmaterialid: TIntegerField;
    qentradasmaterialfecha: TDateField;
    qentradasmaterialidmp: TWideStringField;
    qentradasmaterialcantidad: TFloatField;
    qentradasmaterialstock: TFloatField;
    qentradasmateriallote: TWideStringField;
    qescandalloide: TWideStringField;
    qescandalloida: TWideStringField;
    qescandalloidmateriaprima: TWideStringField;
    qescandallocantidad: TFloatField;
    qescandallodescripcion: TWideStringField;
    qescandallounidades: TWideStringField;
    Button3: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    var   tlimitado:integer;
  end;

var
  fprincipal: Tfprincipal;

const
  rojo=$00AAAAFF;
  amarillo=$00B9FFFF;
  verde=$00C7FBAA;
  azul=$00FFFFBB;
implementation

{$R *.dfm}
uses dlgprocesos, dlgsectores, dlgtraspasos, fmateriales;

procedure Tfprincipal.Button1Click(Sender: TObject);
begin
    timer1.Enabled:=false;
    qborrartrazatemp.Prepare;
    qborrartrazatemp.ParamByName('ID').AsInteger:=qestadopedidos2id.AsInteger;
    qborrartrazatemp.ExecSQL;
    qinsertartrazatemp.Prepare;
    qinsertartrazatemp.ParamByName('ID').AsInteger:=qestadopedidos2id.AsInteger;
    qinsertartrazatemp.ExecSQL;
    fdlgtraspasos := Tfdlgtraspasos.Create(nil);
    try
       fdlgtraspasos.ecantidad.Text:=inttostr(qestadopedidos2cant_recibida.Asinteger-qestadopedidos2cant_finalizada.asinteger);
       qprocesos2.Close;
       qprocesos2.Prepare;
       qprocesos2.ParamByName('ARTICULO').AsString:=qestadopedidos2ida.AsString;
       qprocesos2.ParamByName('EMPRESA').AsString:=qestadopedidos2ide.AsString;
       qprocesos2.Open;
       fdlgtraspasos.showmodal();
    finally
       fdlgtraspasos.Free;
    end;


    qborrartrazatemp.Prepare;
    qborrartrazatemp.ParamByName('ID').AsInteger:=qestadopedidos2id.AsInteger;
    qborrartrazatemp.ExecSQL;
    qestadopedidos2.refresh;
    timer1.Enabled:=true;
end;

procedure Tfprincipal.Button2Click(Sender: TObject);
begin
    qprocesos.Open;
    fdlgsectores := Tfdlgsectores.Create(nil);
    try
       fdlgsectores.showmodal();
    finally
       fdlgsectores.Free;
    end;
   qfabricar.close;
   qfabricar.ParamByName('ID').AsInteger:=qestadopedidos2id.AsInteger;
   qfabricar.ParamByName('HORA').AsDateTime:=date()+time();
   qfabricar.ExecSQL;
   qestadopedidos.Edit;
   qestadopedidosidsec.value:=qsectoresid.AsInteger;
   qestadopedidoshora.Value:=date()+time();
   qestadopedidos.Post;
   qestadopedidos.Refresh;
   qestadopedidos2.Refresh;
end;

procedure Tfprincipal.Button3Click(Sender: TObject);
begin
    materiales := Tmateriales.Create(nil);
    try
       materiales.showmodal();
    finally
       materiales.Free;
    end;
end;

procedure Tfprincipal.Button4Click(Sender: TObject);
begin
   qretirar.close;
   qretirar.ParamByName('ID').AsInteger:=qestadopedidos2id.AsInteger;
   qretirar.ExecSQL;
   qestadopedidos.Refresh;
   qestadopedidos2.Refresh;

end;

procedure Tfprincipal.FormShow(Sender: TObject);
begin
    qprocesos.Open;
    fdlgprocesos := Tfdlgprocesos.Create(nil);
    try
       fdlgprocesos.showmodal();
    finally
       fdlgprocesos.Free;
    end;
    fprincipal.Caption:=fprincipal.Caption+'--->'+qprocesosdescripcion.AsString;
    tlimitado:=qprocesosid.Asinteger;
    qsectores.Close;
    qsectores.Prepare;
    qsectores.ParamByName('ALMACEN').AsInteger:=tlimitado;
    qsectores.Open;
    qestadopedidos.Close;
    qestadopedidos.prepare;
    qestadopedidos.ParamByName('ALMACEN').asinteger:=tlimitado;
    qestadopedidos.Open;
    qestadopedidos2.Close;
    qestadopedidos2.prepare;
    qestadopedidos2.ParamByName('ALMACEN').asinteger:=tlimitado;
    qestadopedidos2.Open;
    timer1.Enabled:=true;


end;

procedure Tfprincipal.Timer1Timer(Sender: TObject);
begin
   qestadopedidos.Refresh;
   qestadopedidos2.Refresh;
end;

end.
