unit dlgduplicar;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractRODataset,
  ZAbstractDataset, ZDataset, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls;

type
  Tfdlgduplicar = class(TForm)
    comboserie: TDBLookupComboBox;
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label2: TLabel;
    Button1: TButton;
    dsqseries: TDataSource;
    qseries: TZQuery;
    qaux: TZQuery;
    qserieside: TIntegerField;
    qseriesid: TWideStringField;
    qseriesfechainicio: TDateField;
    qseriesfechafin: TDateField;
    qseriesnum_pedcliente: TIntegerField;
    qseriesnum_albaran: TIntegerField;
    qseriesnum_factura: TIntegerField;
    qseriesnum_expedicion: TIntegerField;
    qseriesnum_pedproveedor: TIntegerField;
    qseriesimp_albaran: TWideStringField;
    qseriesimp_factura: TWideStringField;
    qseriesactivo: TIntegerField;
    qseriesnum_presupuesto: TIntegerField;
    Edit1: TEdit;
    qseriesseriecontable: TWideStringField;
    MaskEdit1: TMaskEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dsqseriesDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fdlgduplicar: Tfdlgduplicar;
  idserie,idalbaran,fecha,idempresa:string;
  desdepedidos:integer;

implementation

{$R *.dfm}

uses falbaranes;


procedure Tfdlgduplicar.Button1Click(Sender: TObject);
var newserie,newnumalbaran,newfecha:string;
    anyo,mes,dia:word;
begin
   if desdepedidos=1 then
   begin

   end else
   begin
     decodedate(strtodate(maskedit1.Text),anyo,mes,dia);
     newfecha:=inttostr(anyo)+'-'+inttostr(mes)+'-'+inttostr(dia);
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('delete from albaranes_tmp');
     qaux.ExecSQL;
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('delete from albaranes_detalles_tmp');
     qaux.ExecSQL;

     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('insert into albaranes_tmp (select * from albaranes where id='+idalbaran+' and serie='+''''+idserie+''''+' and idempresa='+idempresa+')');
     qaux.ExecSQL;
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('insert into albaranes_detalles_tmp (select * from albaranes_detalles where idalbaran='+idalbaran+' and serie='+''''+idserie+''''+' and idempresa='+idempresa+')');
     qaux.ExecSQL;
     newserie:=qseriesid.AsString;
     newnumalbaran:=qseriesnum_albaran.AsString;
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('update albaranes_tmp set facturado=0,idfactura=null,observaciones=null,id='+newnumalbaran+',serie='+''''+newserie+''''+',fecha='+''''+newfecha+'''');
     qaux.ExecSQL;
     qaux.SQL.Clear;
     qaux.SQL.Add('update albaranes_detalles_tmp set idalbaran='+newnumalbaran+',serie='+''''+newserie+'''');;
     qaux.ExecSQL;
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('insert into albaranes (select * from albaranes_tmp)');
     qaux.ExecSQL;
     qaux.Close;
     qaux.SQL.Clear;
     qaux.SQL.Add('insert into albaranes_detalles (select * from albaranes_detalles_tmp)');
     qaux.ExecSQL;
   end;
   qseries.edit;
   qseriesnum_albaran.Value:=qseriesnum_albaran.AsInteger+1;
   qseries.Post;
   idserie:=newserie;
   idalbaran:=newnumalbaran;
   close;
end;

procedure Tfdlgduplicar.dsqseriesDataChange(Sender: TObject; Field: TField);
begin
    edit1.Text:=qseriesnum_albaran.AsString;

end;

procedure Tfdlgduplicar.FormShow(Sender: TObject);
begin
  qseries.Open;
  maskedit1.Text:=datetostr(date());
end;

end.
