unit dlgtraspasos;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids,
  Vcl.StdCtrls, Vcl.Touch.Keyboard, Vcl.ExtCtrls;

type
  Tfdlgtraspasos = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    TouchKeyboard1: TTouchKeyboard;
    Panel3: TPanel;
    Label1: TLabel;
    eobservaciones: TEdit;
    Panel4: TPanel;
    DBGrid1: TDBGrid;
    Label2: TLabel;
    ecantidad: TEdit;
    Label3: TLabel;
    dsqprocesos2: TDataSource;
    button1: TButton;
    procedure button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fdlgtraspasos: Tfdlgtraspasos;

implementation

{$R *.dfm}

uses principal;

procedure Tfdlgtraspasos.button1Click(Sender: TObject);
var cantidadtotal,cantidadfinalizada,videm:integer;
    vlote:string;
begin
    fprincipal.qalmacenfinal.Close;
    fprincipal.qalmacenfinal.prepare;
    fprincipal.qalmacenfinal.ParamByName('ALMACEN').AsInteger:= fprincipal.qprocesos2idal.AsInteger;
    fprincipal.qalmacenfinal.Open;
    if fprincipal.qalmacenfinalfinal.AsInteger=1 then
    begin
      cantidadtotal:= strtoint(ecantidad.Text);
      cantidadfinalizada:= strtoint(ecantidad.text);
    end else
    begin
      cantidadtotal:=fprincipal.qestadopedidos2cant_total.AsInteger;
      cantidadfinalizada:=0;
    end;
    fprincipal.qactualizartrazatemp.Prepare;
    fprincipal.qactualizartrazatemp.ParamByName('ID').AsInteger:=fprincipal.qestadopedidos2id.AsInteger;
    fprincipal.qactualizartrazatemp.ParamByName('FECHA').AsDate:=date();
    fprincipal.qactualizartrazatemp.ParamByName('ALMACEN').AsInteger:=fprincipal.qprocesos2idal.AsInteger;
    fprincipal.qactualizartrazatemp.ParamByName('OBSERVACIONES').AsString:=eobservaciones.Text;
    fprincipal.qactualizartrazatemp.ParamByName('CANTTOTAL').AsInteger:=cantidadtotal;
    fprincipal.qactualizartrazatemp.ParamByName('CANTRECIBIDA').AsInteger:=strtoint(ecantidad.Text);
    fprincipal.qactualizartrazatemp.ParamByName('CANTFINALIZADA').AsInteger:=cantidadfinalizada;
    fprincipal.qactualizartrazatemp.ParamByName('PROCESO').AsInteger:=fprincipal.qprocesos2idproceso.AsInteger;
    fprincipal.qactualizartrazatemp.ParamByName('ORIGEN').AsInteger:=fprincipal.qestadopedidos2idalm.AsInteger;
    fprincipal.qactualizartrazatemp.ParamByName('ORISEC').AsInteger:=fprincipal.qestadopedidos2idsec.AsInteger;
    fprincipal.qactualizartrazatemp.ExecSQL;

    fprincipal.qactualizartraza.Prepare;
    fprincipal.qactualizartraza.ParamByName('ID').AsInteger:=fprincipal.qestadopedidos2id.AsInteger;
    fprincipal.qactualizartraza.ParamByName('CANTIDAD').AsInteger:=fprincipal.qestadopedidos2cant_finalizada.asinteger+strtoint(ecantidad.Text);
    fprincipal.qactualizartraza.ExecSQL;
    fprincipal.qinsertartraza.Prepare;
    fprincipal.qinsertartraza.ParamByName('ID').AsInteger:=fprincipal.qestadopedidos2id.AsInteger;
    fprincipal.qinsertartraza.ExecSQL;

    if fprincipal.qalmacenfinalfinal.AsInteger=1 then
    begin
      fprincipal.qidtraza.close;
      fprincipal.qidtraza.open;
      fprincipal.qescandallo.close;
      fprincipal.qescandallo.prepare;
      fprincipal.qescandallo.ParamByName('IDARTICULO').AsString:=fprincipal.qidtrazaida.AsString;
      fprincipal.qescandallo.ParamByName('IDEMPRESA').AsString:=fprincipal.qidtrazaide.AsString;
      fprincipal.qescandallo.Open;
      if fprincipal.qescandallo.RecordCount>0 then
      begin
        while not fprincipal.qescandallo.Eof do
        begin
          fprincipal.qentradasmaterial.Close;
          fprincipal.qentradasmaterial.Prepare;
          fprincipal.qentradasmaterial.ParamByName('IDMP').asstring:= fprincipal.qescandalloidmateriaprima.AsString;
          fprincipal.qentradasmaterial.Open;
          if fprincipal.qentradasmaterial.RecordCount>0 then
          begin
             videm :=fprincipal.qentradasmaterialid.AsInteger;
             vlote:= fprincipal.qentradasmateriallote.AsString;
          end else
                begin
                  videm:=-1;
                  vlote:='-';
                end;

          fprincipal.qinsertarconsumo.Prepare;
          fprincipal.qinsertarconsumo.ParamByName('IDTRAZA').AsInteger:=fprincipal.qidtrazaid.AsInteger;
          fprincipal.qinsertarconsumo.ParamByName('IDMP').Asstring:=fprincipal.qescandalloidmateriaprima.Asstring;
          fprincipal.qinsertarconsumo.ParamByName('CANTIDAD').Asfloat:=fprincipal.qescandallocantidad.Asfloat*fprincipal.qidtrazacant_finalizada.asinteger;
          fprincipal.qinsertarconsumo.ParamByName('IDEM').AsInteger:=videm;
          fprincipal.qinsertarconsumo.ParamByName('LOTE').Asstring:=vlote;
          fprincipal.qinsertarconsumo.ExecSQL;

          fprincipal.qescandallo.Next;
        end;
      end;
    end;


    close;
end;

end.
