Advertisement
filhotecmail

Threads

Jul 19th, 2018
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 33.64 KB | None | 0 0
  1. unit TransferenciaDadosServer;
  2.  
  3. interface
  4.  uses System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  5.       system.UITypes,  Vcl.Controls, Vcl.Dialogs,   Data.DB,   Vcl.Grids,
  6.       Vcl.Samples.Gauges, TypInfo,  Midaslib,   StrUtils, Vcl.ExtCtrls, acImage,
  7.       Vcl.StdCtrls, Vcl.ComCtrls,  Vcl.WinXCtrls,  Vcl.DBCGrids,
  8.       // Firedac
  9.     FireDAC.Phys.FBDef,
  10.     FireDAC.UI.Intf,
  11.     FireDAC.VCLUI.Wait,
  12.     FireDAC.Comp.UI,
  13.     FireDAC.Stan.Intf,
  14.     FireDAC.Phys,
  15.     FireDAC.Phys.IBBase,
  16.     FireDAC.Phys.FB,
  17.     FireDAC.Stan.Option,
  18.     FireDAC.Stan.Param,
  19.     FireDAC.Stan.Error,
  20.     FireDAC.DatS,
  21.     FireDAC.Phys.Intf,
  22.     FireDAC.DApt.Intf,
  23.     FireDAC.Stan.Async,
  24.     FireDAC.DApt,
  25.     FireDAC.Stan.Def,
  26.     FireDAC.Stan.Pool,
  27.     FireDAC.Comp.Client,
  28.     FireDAC.Comp.DataSet;
  29.  
  30.  
  31.  type TSendMovToServer = class( TComponent )
  32.    type TCaixa = class( TFDQuery )
  33.       strict private
  34.         FNumerodoSat: string;
  35.         FDataAberturaCaixa: TDate;
  36.         FHoraAberturaCaixa: TTime;
  37.         FOperador         : String;
  38.       public
  39.         property NumerodoSat: string read FNumerodoSat write FNumerodoSat;
  40.         property DatadeAberturacaixa: TDate read FDataAberturaCaixa write FDataAberturaCaixa;
  41.         property HoradeAberturaCaixa: TTime read FHoraAberturaCaixa write FHoraAberturaCaixa;
  42.         procedure AfterConstruction; override;
  43.         procedure BeforeDestruction; override;
  44.         constructor Create(AOwner: TComponent); override;
  45.  
  46.    end;
  47.  
  48.  
  49.  
  50.       Type TTabelaVendas = class( TFDQuery )
  51.        type TAposTranferirMovimentacao = procedure of Object;
  52.        type TServerCon = class( TFDQuery )
  53.  
  54.           public
  55.             procedure AfterConstruction; override;
  56.             procedure BeforeDestruction; override;
  57.             constructor Create(AOwner: TComponent); override;
  58.  
  59.        end;
  60.      strict private
  61.         FTServerCon: TServerCon;
  62.         FvGauge: TGauge;
  63.         FvRich: TRichEdit;
  64.         FTAposTranferirMovimentacao: TAposTranferirMovimentacao;
  65.  
  66.       public
  67.         property AposTransferirVendas: TAposTranferirMovimentacao read FTAposTranferirMovimentacao write FTAposTranferirMovimentacao;
  68.         procedure AfterConstruction; override;
  69.         procedure BeforeDestruction; override;
  70.         procedure Executecarga;
  71.         constructor Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge); reintroduce; overload;
  72.       end;
  73.  
  74.  
  75.       type TTabelaItensVenda = class( TFDQuery )
  76.        type TAposTranferirMovimentacao = procedure of Object;
  77.          type TServerCon = class( TFDQuery )
  78.  
  79.           public
  80.             procedure AfterConstruction; override;
  81.             procedure BeforeDestruction; override;
  82.             constructor Create(AOwner: TComponent); override;
  83.  
  84.        end;
  85.  
  86.         strict private
  87.           FTServerCon: TServerCon;
  88.           FvGauge: TGauge;
  89.           FvRich: TRichEdit;
  90.           FTAposTranferirMovimentacao: TAposTranferirMovimentacao;
  91.  
  92.         public
  93.         property AposTransferirItens: TAposTranferirMovimentacao read FTAposTranferirMovimentacao write FTAposTranferirMovimentacao;
  94.         procedure AfterConstruction; override;
  95.         procedure BeforeDestruction; override;
  96.         procedure Executecarga;
  97.         constructor Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge); reintroduce; overload;
  98.  
  99.       end;
  100.  
  101.       Type TFinalizadorasVenda = class( TFDQuery )
  102.         type TAposTranferirMovimentacao = procedure of Object;
  103.          type TServerCon = class( TFDQuery )
  104.  
  105.           public
  106.             procedure AfterConstruction; override;
  107.             procedure BeforeDestruction; override;
  108.             constructor Create(AOwner: TComponent); override;
  109.  
  110.        end;
  111.  
  112.         strict private
  113.           FTServerCon: TServerCon;
  114.           FvGauge: TGauge;
  115.           FvRich: TRichEdit;
  116.           FTAposTranferirMovimentacao: TAposTranferirMovimentacao;
  117.  
  118.         public
  119.         property AposTransferirFinalizadoras: TAposTranferirMovimentacao read FTAposTranferirMovimentacao write FTAposTranferirMovimentacao;
  120.         procedure AfterConstruction; override;
  121.         procedure BeforeDestruction; override;
  122.         procedure Executecarga;
  123.         constructor Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge); reintroduce; overload;
  124.  
  125.       end;
  126.  
  127.       Type TmovXmlTransform = class( TFDQuery )
  128.          type TAposTranferirMovimentacao = procedure of Object;
  129.          type TServerCon = class( TFDQuery )
  130.  
  131.           public
  132.             procedure AfterConstruction; override;
  133.             procedure BeforeDestruction; override;
  134.             constructor Create(AOwner: TComponent); override;
  135.  
  136.        end;
  137.  
  138.         strict private
  139.           FTServerCon: TServerCon;
  140.           FvGauge: TGauge;
  141.           FvRich: TRichEdit;
  142.           FTAposTranferirMovimentacao: TAposTranferirMovimentacao;
  143.  
  144.         public
  145.         property AposTransferirMovXml: TAposTranferirMovimentacao read FTAposTranferirMovimentacao write FTAposTranferirMovimentacao;
  146.         procedure AfterConstruction; override;
  147.         procedure BeforeDestruction; override;
  148.         procedure Executecarga;
  149.         constructor Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge); reintroduce; overload;
  150.  
  151.       end;
  152.  
  153.       private
  154.     FGauge: TGauge;
  155.     FRich: TRichEdit;
  156.     FTransfereRecursivo: Boolean;
  157.     procedure LimpaMovimentacao;
  158.  
  159.       public
  160.     property TransfereRecursivo: Boolean read FTransfereRecursivo write FTransfereRecursivo;
  161.     procedure StartVendasToServer;
  162.     procedure TransfereCargatoservernoTh;
  163.     procedure AfterConstruction; override;
  164.     procedure BeforeDestruction; override;
  165.     procedure AposTransferirVendas;
  166.     procedure AposTransferirItens;
  167.     procedure AposTransferirFinalizadoras;
  168.     procedure AposTransferirXmls;
  169.     constructor Create( AOwner: TComponent; Gauge: TGauge; aRich: TRichEdit  ); reintroduce; Overload;
  170.  
  171.  
  172.  end;
  173.  
  174. implementation
  175.  
  176. { TSendMovToServer }
  177.  
  178. uses DtmConexao;
  179.  
  180. procedure TSendMovToServer.AfterConstruction;
  181. begin
  182.   inherited AfterConstruction;
  183.  
  184. end;
  185.  
  186. procedure TSendMovToServer.AposTransferirFinalizadoras;
  187.  var FXml: TmovXmlTransform; th : TThread;
  188. begin
  189.  
  190.    th := TThread.CreateAnonymousThread( procedure
  191.    begin
  192.     FXml:= TmovXmlTransform.Create(nil,FRich,FGauge);
  193.     FXml.AposTransferirMovXml := AposTransferirXmls;
  194.    try
  195.     Fxml.Executecarga;
  196.    finally
  197.     Fxml.Free;
  198.     Fxml:= nil;
  199.    end;
  200.   end);
  201.    Th.Start;
  202.  
  203. end;
  204.  
  205. procedure TSendMovToServer.AposTransferirItens;
  206. var FTabelaFin: TFinalizadorasVenda; th : TThread;
  207. begin
  208.  
  209.    th := TThread.CreateAnonymousThread( procedure
  210.    begin
  211.     FTabelaFin:= TFinalizadorasVenda.Create(nil,FRich,FGauge);
  212.     FTabelaFin.AposTransferirFinalizadoras := AposTransferirFinalizadoras;
  213.    try
  214.     FTabelaFin.Executecarga;
  215.    finally
  216.     FTabelaFin.Free;
  217.     FTabelaFin:= nil;
  218.    end;
  219.   end);
  220.    Th.Start;
  221.  
  222. end;
  223.  
  224. procedure TSendMovToServer.AposTransferirVendas;
  225. var FTabelaItens: TTabelaItensVenda; th : TThread;
  226. begin
  227.  
  228.    th := TThread.CreateAnonymousThread( procedure
  229.    begin
  230.     FTabelaItens:= TTabelaItensVenda.Create(nil,FRich,FGauge);
  231.     FTabelaItens.AposTransferirItens := AposTransferirItens;
  232.    try
  233.     FTabelaItens.Executecarga;
  234.    finally
  235.     FTabelaItens.Free;
  236.     FTabelaItens:= nil;
  237.    end;
  238.   end);
  239.    Th.Start;
  240.  
  241.  
  242. end;
  243.  
  244. procedure TSendMovToServer.AposTransferirXmls;
  245. begin
  246.   TDtmConexao.FDMasterPdv.ExecSQL('Delete from XMLTRANSFORM_TRANSF ');
  247.   TDtmConexao.FDMasterPdv.ExecSQL('Delete from VENDA_TRANSF ');
  248.   TDtmConexao.FDMasterPdv.ExecSQL('Delete from ITENS_TRANSF ');
  249.   TDtmConexao.FDMasterPdv.ExecSQL('Delete from FINALIZADORA_TRANSF ');
  250.  
  251. end;
  252.  
  253. procedure TSendMovToServer.BeforeDestruction;
  254. begin
  255.   inherited BeforeDestruction;
  256.  
  257. end;
  258.  
  259. constructor TSendMovToServer.Create( AOwner: TComponent; Gauge: TGauge; aRich: TRichEdit );
  260. begin
  261.  inherited Create(AOwner);
  262.  FGauge:= Gauge;
  263.  FRich:= aRich;
  264.  
  265. end;
  266.  
  267. procedure TSendMovToServer.LimpaMovimentacao;
  268. begin
  269.  
  270. end;
  271.  
  272. procedure TSendMovToServer.StartVendasToServer;
  273.  var FTTabelaVendas: TTabelaVendas; th : TThread;
  274. begin
  275.   if TDtmConexao.InvokeTlCon then
  276.   begin
  277.    th := TThread.CreateAnonymousThread( procedure
  278.    begin
  279.     FTTabelaVendas:= TTabelaVendas.Create(nil,FRich,FGauge);
  280.     FTTabelaVendas.AposTransferirVendas := AposTransferirVendas;
  281.    try
  282.     FTTabelaVendas.Executecarga;
  283.    finally
  284.     FTTabelaVendas.Free;
  285.     FTTabelaVendas:= nil;
  286.    end;
  287.   end);
  288.    Th.Start;
  289.  end;
  290.  
  291. end;
  292.  
  293. procedure TSendMovToServer.TransfereCargatoservernoTh;
  294.  var FTTabelaVendas: TTabelaVendas;
  295. begin
  296.  
  297.     FTTabelaVendas:= TTabelaVendas.Create(nil,FRich,FGauge);
  298.     FTTabelaVendas.AposTransferirVendas := AposTransferirVendas;
  299.    try
  300.     FTTabelaVendas.Executecarga;
  301.    finally
  302.     FTTabelaVendas.Free;
  303.     FTTabelaVendas:= nil;
  304.    end;
  305.  
  306. end;
  307.  
  308. { TSendMovToServer.TTabelaVendas }
  309.  
  310. procedure TSendMovToServer.TTabelaVendas.AfterConstruction;
  311. begin
  312.   inherited AfterConstruction;
  313.  
  314. end;
  315.  
  316. procedure TSendMovToServer.TTabelaVendas.BeforeDestruction;
  317. begin
  318.   inherited BeforeDestruction;
  319.  
  320. end;
  321.  
  322. constructor TSendMovToServer.TTabelaVendas.Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge);
  323. begin
  324.     inherited Create(AOwner);
  325.  
  326.   FvRich := aRich;
  327.   FvGauge := aGauge;
  328.   Connection := DtmConexao.TDtmConexao.FDMasterPdv;
  329.  
  330.  
  331.  
  332. end;
  333.  
  334. procedure TSendMovToServer.TTabelaVendas.Executecarga;
  335.  var Wait:TFDGUIxWaitCursor; Dlg: TFDGUIxAsyncExecuteDialog;
  336.      iNumInserts: Integer; aCaixa: Tcaixa; I: INteger;
  337.  
  338. begin
  339.    aCaixa:= Tcaixa.Create(nil);
  340.    wait := TFDGUIxWaitCursor.Create(nil);
  341.    wait.ScreenCursor:= gcrAppWait;
  342.    dlg:= TFDGUIxAsyncExecuteDialog.Create(nil);
  343.    sql.Text :=
  344.     'select '+
  345.     'DATA, '+
  346.     'HORA, '+
  347.     'USUARIO, '+
  348.     'FOTOUSER, '+
  349.     'CAIXA_NUMERO, '+
  350.     'CAIXA_DATA, '+
  351.     'CAIXA_HORA, '+
  352.     'CAIXA_PERIODO, '+
  353.     'VENDA_NITENS, '+
  354.     'VENDA_ECFNUMERO, '+
  355.     'VENDA_ECFSERIAL, '+
  356.     'VENDA_ECFMARCA, '+
  357.     'VENDA_ECFMODELO, '+
  358.     'VENDA_ECFNCOO, '+
  359.     'VENDA_ECFNCCF, '+
  360.     'VENDA_VALORTOTAL, '+
  361.     'VENDA_DESCONTOS, '+
  362.     'VENDA_VALORVENDA, '+
  363.     'VENDA_CPFCNPJ, '+
  364.     'VENDA_NOMECLIENTE, '+
  365.     'VENDA_ENDERECO, '+
  366.     'VENDA_NUMERO, '+
  367.     'VENDA_COMPLEMENTO, '+
  368.     'VENDA_BAIRRO, '+
  369.     'VENDA_MUNICIPIO, '+
  370.     'VENDA_ESTADO, '+
  371.     'VENDA_UF, '+
  372.     'VENDA_CEP, '+
  373.     'VENDA_TEL, '+
  374.     'VENDA_EMAIL, '+
  375.     'VENDANFP_CPF, '+
  376.     'VENDANFP_NOMECLI, '+
  377.     'SISTEMA_STATUS, '+
  378.     'VENDA_SITUACAO, '+
  379.     'SAT_SITEMISS, '+
  380.     'SAT_EMISSDATA, '+
  381.     'SAT_EMISSHORA, '+
  382.     'CAIXA_ID, '+
  383.     'SAT_NUMDOCFIS, '+
  384.     'SAT_CHAVEEMISS, '+
  385.     'SAT_XML, '+
  386.     'TRANSM_BOOL, '+
  387.     'DAV_MEMO, '+
  388.     'DAV_EXTORNOMEMO, '+
  389.     'SAT_NUMSERIESAT, '+
  390.     'VENDA_ACRESCIMOS, '+
  391.     'TROCO, '+
  392.     'VENDEDOR_ID, '+
  393.     'VALOR_TXSERVICOS, '+
  394.     'PERCENTUAL_TXSERVICOS '+
  395.     'from VENDA_TRANSF ORDER BY ID ';
  396.    open;
  397.    Last;
  398.    iNumInserts:= RecordCount;
  399.  
  400.    FvGauge.MaxValue := iNumInserts;
  401.    FvGauge.Visible := True;
  402.  
  403.    FTServerCon:= TServerCon.Create(nil);
  404.    FTServerCon.Params.ArraySize := iNumInserts;
  405.    First;
  406.    while not Eof do
  407.    begin
  408.  
  409.      FTServerCon.Params[0].AsDateTimes[RecNo-1]  :=  Now;
  410.      FTServerCon.Params[1].AsDateTimes[RecNo-1]  :=  Now;
  411.      FTServerCon.Params[2].AsStrings[RecNo-1]    := Fieldbyname('USUARIO').AsString;
  412.      FTServerCon.Params[3].AsIntegers[RecNo-1]   := Strtoint ( Fieldbyname('CAIXA_NUMERO').AsString );
  413.      FTServerCon.Params[4].AsStrings[RecNo-1]    :=            aCaixa.NumerodoSat;
  414.      FTServerCon.Params[5].AsIntegers[RecNo-1]   :=            Fieldbyname('CAIXA_ID').AsInteger;
  415.      FTServerCon.Params[6].AsDates[RecNo-1]  :=            aCaixa.DatadeAberturacaixa ;
  416.      FTServerCon.Params[7].AsTimes[RecNo-1]  :=            aCaixa.HoradeAberturaCaixa ;
  417.      FTServerCon.Params[8].AsIntegers[RecNo-1]  :=            Strtoint ( Fieldbyname('VENDA_NUMERO').AsString );
  418.      FTServerCon.Params[9].AsStrings[RecNo-1]  :=            fieldbyname('venda_situacao').asstring;
  419.      FTServerCon.Params[10].AsCurrencys[RecNo-1] :=            fieldbyname('venda_valortotal').ascurrency;
  420.      FTServerCon.Params[11].AsCurrencys[RecNo-1] :=            fieldbyname('venda_descontos').ascurrency;
  421.      FTServerCon.Params[12].AsIntegers[RecNo-1] :=            fieldbyname('venda_nitens').asinteger;
  422.      FTServerCon.Params[13].AsDateTimes[RecNo-1] :=           fieldbyname('data').asdatetime;
  423.      FTServerCon.Params[14].AsDateTimes[RecNo-1] :=           fieldbyname('hora').asdatetime;
  424.      FTServerCon.Params[15].AsStrings[RecNo-1]   :=           fieldbyname('usuario').asstring;
  425.      FTServerCon.Params[16].AsStrings[RecNo-1]   :=           fieldbyname('sat_numdocfis').asstring;
  426.      FTServerCon.Params[17].AsStrings[RecNo-1]   :=           fieldbyname('sat_chaveemiss').asstring;
  427.      FTServerCon.Params[18].AsDateTimes[RecNo-1] :=           fieldbyname('sat_emissdata').asdatetime;
  428.      FTServerCon.Params[19].AsDateTimes[RecNo-1] :=           fieldbyname('sat_emisshora').asdatetime;
  429.      FTServerCon.Params[20].AsStrings[RecNo-1]   :=           fieldbyname('vendanfp_cpf').asstring;
  430.      FTServerCon.Params[21].Values[RecNo-1]      :=           fieldbyname('sat_xml').Value;
  431.      FTServerCon.Params[22].AsStrings[RecNo-1]   :=           fieldbyname('sat_sitemiss').asstring;
  432.      FTServerCon.Params[23].AsIntegers[RecNo-1]  :=           fieldbyname('VENDEDOR_ID').AsInteger;
  433.      FTServerCon.Params[24].AsCurrencys[RecNo-1] :=           fieldbyname('VENDA_ACRESCIMOS').AsCurrency;
  434.      FTServerCon.Params[25].AsCurrencys[RecNo-1] :=           fieldbyname('VALOR_TXSERVICOS').AsCurrency;
  435.  
  436.      FVGauge.Progress := FVGauge.Progress + 1;
  437.      Next;
  438.     end;
  439.  
  440.     FvGauge.Progress := 0;
  441.     FvGauge.Visible:= False;
  442.  
  443.     if iNumInserts > 0 then
  444.    begin
  445.     try
  446.       if TDtmConexao.InvokeTlCon then
  447.       begin
  448.        FTServerCon.Execute(iNumInserts, 0);
  449.       end;
  450.     finally
  451.       if Assigned( FTAposTranferirMovimentacao ) then
  452.       begin
  453.         FTAposTranferirMovimentacao;
  454.       end;
  455.       FTServerCon.Free;
  456.       FTServerCon:= nil;
  457.       aCaixa.Free;
  458.       aCaixa:= nil;
  459.     end;
  460.     end;
  461.  
  462.      dlg.DisposeOf;
  463.      wait.DisposeOf;
  464.  
  465. end;
  466.  
  467. { TSendMovToServer.TTabelaVendas.TServerCon }
  468.  
  469. procedure TSendMovToServer.TTabelaVendas.TServerCon.AfterConstruction;
  470. begin
  471.   inherited AfterConstruction;
  472.  
  473. end;
  474.  
  475. procedure TSendMovToServer.TTabelaVendas.TServerCon.BeforeDestruction;
  476. begin
  477.   inherited BeforeDestruction;
  478.  
  479. end;
  480.  
  481. constructor TSendMovToServer.TTabelaVendas.TServerCon.Create(AOwner: TComponent);
  482. begin
  483.   inherited Create(AOwner);
  484.   Connection := TDtmConexao.FDServidorConexao;
  485.   SQL.Text   :=
  486.   'UPDATE OR INSERT INTO MOVPDV_VENDAS (TRANSF_DATA, TRANSF_HORA, TRANSF_USERPDV, PDV_NUMPDV, PDV_NSERIESAT,'+
  487.                           'PDV_IDCAIXA, PDV_DATAABRTCAIXA, PDV_HORAABRTCAIXA, VENDA_NUMVENDA, VENDA_SITUACAO,'+
  488.                           'VENDA_VLTOTAL, VENDA_DESCONTOS, VENDA_QTDITENS, VENDA_DATA, VENDA_HORA,'+
  489.                           'VENDA_USERPDV, VENDA_NUMSAT, VENDA_CHAVESAT, VENDA_DATAEMISSSAT,'+
  490.                           'VENDA_HORAEMISSSAT, VENDA_DOC, SAT_XML, SAT_SITUACAO,VENDEDOR_ID,VENDA_ACRESCIMOS,VALOR_TXSERVICOS )'+
  491.  
  492.     'VALUES (:TRANSF_DATA, :TRANSF_HORA, :TRANSF_USERPDV, :PDV_NUMPDV, :PDV_NSERIESAT, :PDV_IDCAIXA, :PDV_DATAABRTCAIXA, '+
  493.           ':PDV_HORAABRTCAIXA, :VENDA_NUMVENDA, :VENDA_SITUACAO, :VENDA_VLTOTAL, :VENDA_DESCONTOS, :VENDA_QTDITENS,'+
  494.           ':VENDA_DATA, :VENDA_HORA, :VENDA_USERPDV, :VENDA_NUMSAT, :VENDA_CHAVESAT, :VENDA_DATAEMISSSAT,'+
  495.           ':VENDA_HORAEMISSSAT, :VENDA_DOC, :SAT_XML, :SAT_SITUACAO,:VENDEDOR_ID,:VENDA_ACRESCIMOS,:VALOR_TXSERVICOS )'+
  496.           ' MATCHING (VENDA_NUMVENDA,PDV_NUMPDV)  ';
  497. end;
  498.  
  499. { TSendMovToServer.TCaixa }
  500.  
  501. procedure TSendMovToServer.TCaixa.AfterConstruction;
  502. begin
  503.   inherited AfterConstruction;
  504.  
  505. end;
  506.  
  507. procedure TSendMovToServer.TCaixa.BeforeDestruction;
  508. begin
  509.   inherited BeforeDestruction;
  510.  
  511. end;
  512.  
  513. constructor TSendMovToServer.TCaixa.Create(AOwner: TComponent);
  514. begin
  515.   inherited Create(AOwner);
  516.   Connection := TDtmConexao.FDMasterPdv;
  517.   SQL.Text   :=
  518.     'select '+
  519.     '( SELECT S.EQUIP_SN FROM CONFIGSAT S  ) AS NUMEROSAT, '+
  520.     'ABERTURA_DATA, '+
  521.     'ABERTURA_HORA, '+
  522.     'ABERTURA_FISCAL, '+
  523.     'ABERTURA_OPERADOR '+
  524.     'from CAIXA ';
  525.   open;
  526.   FNumerodoSat      := FieldByName('NUMEROSAT').AsString;
  527.   FDataAberturaCaixa:= FieldByName('ABERTURA_DATA').AsDateTime;
  528.   FHoraAberturaCaixa:= FieldByName('ABERTURA_HORA').AsDateTime;
  529.   FOperador         := FieldByName('ABERTURA_OPERADOR').AsString;
  530.  
  531. end;
  532.  
  533. { TSendMovToServer.TTabelaItensVenda }
  534.  
  535. procedure TSendMovToServer.TTabelaItensVenda.AfterConstruction;
  536. begin
  537.   inherited AfterConstruction;
  538.  
  539. end;
  540.  
  541. procedure TSendMovToServer.TTabelaItensVenda.BeforeDestruction;
  542. begin
  543.   inherited BeforeDestruction;
  544.  
  545. end;
  546.  
  547. constructor TSendMovToServer.TTabelaItensVenda.Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge);
  548. begin
  549.  inherited Create(AOwner);
  550.   FvRich := aRich;
  551.   FvGauge := aGauge;
  552.   Connection := DtmConexao.TDtmConexao.FDMasterPdv;
  553.  
  554. end;
  555.  
  556. procedure TSendMovToServer.TTabelaItensVenda.Executecarga;
  557.   var Wait:TFDGUIxWaitCursor; Dlg: TFDGUIxAsyncExecuteDialog;
  558.      iNumInserts: Integer; aCaixa: Tcaixa; I: INteger;
  559. begin
  560.    aCaixa:= Tcaixa.Create(nil);
  561.    wait := TFDGUIxWaitCursor.Create(nil);
  562.    wait.ScreenCursor:= gcrAppWait;
  563.    dlg:= TFDGUIxAsyncExecuteDialog.Create(nil);
  564.    sql.Text:=
  565.       'select '+
  566.       'ID, '+
  567.       '( SELECT P.CAD_CEAN13FISCAL FROM CADPRODUTOS P WHERE P.CAD_CEAN13 = F.ITENS_CODBARRAS ) AS CODEFABRICA, '+
  568.       '( SELECT x.CAD_REFERENCIA   FROM CADPRODUTOS x WHERE x.CAD_CEAN13 = F.ITENS_CODBARRAS ) AS REF, '+
  569.       ' '+
  570.       'VENDA_NUMERO, '+
  571.       'ITENS_IDPRODUTO, '+
  572.       'ITENS_CODBARRAS, '+
  573.       'ITENS_DESCPRODUTO, '+
  574.       'ITENS_POSICAOITEN, '+
  575.       'ITENS_QUANTIDADE, '+
  576.       'ITENS_VLUN, '+
  577.       'ITENS_TOTAL, '+
  578.       'ITENS_DATAVENDA, '+
  579.       'ITENS_HORADAVENDA, '+
  580.       'ITENS_USUARIO, '+
  581.       'ITENS_CAIXAID, '+
  582.       'ITENS_SITUACAO, '+
  583.       'SAT_NUMEROCFE, '+
  584.       'SAT_SERIALSAT, '+
  585.       'ITENS_UN, '+
  586.       'ITENS_DESCVL, '+
  587.       'ITENS_DESCPERCENT, '+
  588.       'ITENS_CFOP, '+
  589.       'ITENS_CST, '+
  590.       'ITENS_NCM, '+
  591.       'ITENS_CEST, '+
  592.       'IMPOSTO_VPIS, '+
  593.       'IMPOSTO_PISCST, '+
  594.       'IMPOSTO_PISVBC, '+
  595.       'IMPOSTO_PISPPIS, '+
  596.       'IMPOSTO_COFINSCST, '+
  597.       'IMPOSTO_COFINSVBC, '+
  598.       'IMPOSTO_COFINSPCOFINS, '+
  599.       'INFADPROD, '+
  600.       'IMPOSTO_ICMSCST, '+
  601.       'IMPOSTO_ICMSPICMS, '+
  602.       'IMPOSTO_ICMSCSOSN, '+
  603.       'IMPOSTO_ICMSORIGDESC, '+
  604.       '"IMPOSTO.ICMS.ORIG", '+
  605.       'CANCELITEM_VLCANC, '+
  606.       'IMPOSTO_TRIBDESC, '+
  607.       'TRANSF_BOOL, '+
  608.       'MARCA, '+
  609.       'GRUPO, '+
  610.       'SUBGRUPO, '+
  611.       'IDMARCA, '+
  612.       'IDGRUPO, '+
  613.       'IDSUBGRUPO, '+
  614.       'IDFORNECEDOR, '+
  615.       'FORNECEDOR, '+
  616.       'PDV_NUMERO, '+
  617.       'IBPX_TFNACIONAL, '+
  618.       'IBPX_TFIMPORTADO, '+
  619.       'IBPTX_ESTADUAL, '+
  620.       'IBPTX_MUINICIPAL '+
  621.       'from ITENS_TRANSF F ORDER BY ID';
  622.  
  623.  
  624.    open;
  625.    FieldByName('ID').Required := False;
  626.    Last;
  627.    iNumInserts:= RecordCount;
  628.  
  629.    FvGauge.MaxValue := iNumInserts;
  630.    FvGauge.Visible := True;
  631.  
  632.    FTServerCon:= TServerCon.Create(nil);
  633.    FTServerCon.Params.ArraySize := iNumInserts;
  634.    First;
  635.    while not Eof do
  636.    begin
  637.  
  638.      FTServerCon.Params[0].AsDateTimes[RecNo-1]  :=  Now;
  639.      FTServerCon.Params[1].AsDateTimes[RecNo-1]  :=  Now;
  640.      FTServerCon.Params[2].AsStrings[RecNo-1]    :=  Fieldbyname('ITENS_USUARIO').AsString;
  641.      FTServerCon.Params[3].AsIntegers[RecNo-1]   :=  Fieldbyname('PDV_NUMERO').AsInteger;
  642.      FTServerCon.Params[4].AsStrings[RecNo-1]    :=  aCaixa.NumerodoSat;
  643.      FTServerCon.Params[5].AsIntegers[RecNo-1]   :=  FieldByName('ITENS_CAIXAID').AsInteger;
  644.      FTServerCon.Params[6].AsIntegers[RecNo-1]   :=  FieldByName('VENDA_NUMERO').AsInteger;
  645.      FTServerCon.Params[7].AsStrings[RecNo-1]    :=  FieldByName('ITENS_SITUACAO').AsString;
  646.      FTServerCon.Params[8].AsIntegers[RecNo-1]   :=  FieldByName('ITENS_POSICAOITEN').AsInteger;
  647.      FTServerCon.Params[9].AsIntegers[RecNo-1]   :=  FieldByName('ID').AsInteger;
  648.      FTServerCon.Params[10].AsStrings[RecNo-1]   :=  FieldByName('ITENS_CODBARRAS').AsString;
  649.      FTServerCon.Params[11].AsStrings[RecNo-1]   :=  FieldByName('CODEFABRICA').AsString;
  650.      FTServerCon.Params[12].AsStrings[RecNo-1]   :=  FieldByName('ITENS_DESCPRODUTO').AsString;
  651.      FTServerCon.Params[13].AsStrings[RecNo-1]   :=  FieldByName('REF').AsString;
  652.      FTServerCon.Params[14].AsStrings[RecNo-1]   :=  FieldByName('ITENS_NCM').AsString;
  653.      FTServerCon.Params[15].AsStrings[RecNo-1]   :=  FieldByName('ITENS_CEST').AsString;
  654.      FTServerCon.Params[16].AsStrings[RecNo-1]   :=  FieldByName('IMPOSTO_TRIBDESC').AsString;
  655.      FTServerCon.Params[17].AsStrings[RecNo-1]   :=  FieldByName('IMPOSTO_ICMSCST').AsString;
  656.      FTServerCon.Params[18].AsCurrencys[RecNo-1] :=  FieldByName('IMPOSTO_ICMSPICMS').AsCurrency;
  657.      FTServerCon.Params[19].AsCurrencys[RecNo-1] :=  FieldByName('ITENS_VLUN').AsCurrency;
  658.      FTServerCon.Params[20].AsCurrencys[RecNo-1] :=  FieldByName('ITENS_QUANTIDADE').AsCurrency;
  659.      FTServerCon.Params[21].AsCurrencys[RecNo-1] :=  FieldByName('ITENS_DESCVL').AsCurrency;
  660.      FTServerCon.Params[22].AsCurrencys[RecNo-1] :=  0;// AcrescimosVl incrementar no Banco
  661.      FTServerCon.Params[23].AsStrings[RecNo-1]   :=  FieldByName('ITENS_UN').AsString;
  662.      FTServerCon.Params[24].AsDateTimes[RecNo-1] :=  FieldByName('ITENS_DATAVENDA').AsDateTime;
  663.      FTServerCon.Params[25].AsDateTimes[RecNo-1] :=  FieldByName('ITENS_HORADAVENDA').AsDateTime;
  664.      FTServerCon.Params[26].AsIntegers[RecNo-1]  :=  FieldByName('TRANSF_BOOL').AsInteger;
  665.      FTServerCon.Params[27].AsStrings[RecNo-1]   :=  FieldByName('MARCA').AsString;
  666.      FTServerCon.Params[28].AsStrings[RecNo-1]   :=  FieldByName('GRUPO').AsString;
  667.      FTServerCon.Params[29].AsStrings[RecNo-1]   :=  FieldByName('SUBGRUPO').AsString;
  668.      FTServerCon.Params[30].AsCurrencys[RecNo-1] :=  FieldByName('ITENS_TOTAL').AsCurrency;
  669.      FTServerCon.Params[31].AsIntegers[RecNo-1]  :=  FieldByName('IDMARCA').AsInteger;
  670.      FTServerCon.Params[32].AsIntegers[RecNo-1] :=   FieldByName('IDGRUPO').AsInteger;
  671.      FTServerCon.Params[33].AsIntegers[RecNo-1] :=   FieldByName('IDSUBGRUPO').AsInteger;
  672.      FTServerCon.Params[34].AsIntegers[RecNo-1] :=   FieldByName('IDFORNECEDOR').AsInteger;
  673.      FTServerCon.Params[35].AsStrings[RecNo-1]  :=   FieldByName('FORNECEDOR').AsString;
  674.      FTServerCon.Params[36].AsIntegers[RecNo-1] :=   FieldByName('PDV_NUMERO').AsInteger;
  675.      FTServerCon.Params[37].AsStrings[RecNo-1]  :=   FieldByName('ITENS_USUARIO').AsString;
  676.      FTServerCon.Params[38].AsStrings[RecNo-1]  :=  'VENDA';
  677.      FTServerCon.Params[39].AsIntegers[RecNo-1] :=   FieldByName('ITENS_IDPRODUTO').AsInteger;
  678.  
  679.      FVGauge.Progress := FVGauge.Progress + 1;
  680.      Next;
  681.     end;
  682.  
  683.     FvGauge.Progress := 0;
  684.     FvGauge.Visible:= False;
  685.  
  686.     if iNumInserts > 0 then
  687.    begin
  688.     try
  689.       if TDtmConexao.InvokeTlCon then
  690.       begin
  691.        FTServerCon.Execute(iNumInserts, 0);
  692.       end;
  693.     finally
  694.       if Assigned( FTAposTranferirMovimentacao ) then
  695.       begin
  696.         FTAposTranferirMovimentacao;
  697.       end;
  698.       FTServerCon.Free;
  699.       FTServerCon:= nil;
  700.       aCaixa.Free;
  701.       aCaixa:= nil;
  702.     end;
  703.     end;
  704.  
  705.      dlg.DisposeOf;
  706.      wait.DisposeOf;
  707. end;
  708.  
  709. { TSendMovToServer.TTabelaItensVenda.TServerCon }
  710.  
  711. procedure TSendMovToServer.TTabelaItensVenda.TServerCon.AfterConstruction;
  712. begin
  713.   inherited AfterConstruction;
  714.  
  715. end;
  716.  
  717. procedure TSendMovToServer.TTabelaItensVenda.TServerCon.BeforeDestruction;
  718. begin
  719.   inherited BeforeDestruction;
  720.  
  721. end;
  722.  
  723. constructor TSendMovToServer.TTabelaItensVenda.TServerCon.Create(AOwner: TComponent);
  724. begin
  725.   inherited Create(AOwner);
  726.    Connection := TDtmConexao.FDServidorConexao;
  727.    SQL.Text   :=
  728.   ' UPDATE OR INSERT INTO MOVPDV_ITENSVENDA ( TRANF_DATA, TRANSF_HORA, TRANSF_USERPDV'+
  729.                                     ', PDV_NUMPDV, PDV_NSERIESAT,'+
  730.                                    ' PDV_IDCAIXA, VENDA_NUMEROVENDA, VENDA_SITUACAO, ITENS_NSEQUENCIA, ITENS_ID,'+
  731.                                     'ITENS_CEANTRIB, ITENS_CODFORNECEDOR, ITENS_DESCRICAO, ITENS_REF, ITENS_NCM,' +
  732.                                     'ITENS_CEST, TRIB_DESCTRIB, TRIB_CSTCSOSN, TRIB_ALIQICMS, ITENS_VLUN, ITENS_QUT,' +
  733.                                     'ITENS_DESCONTOS, ITENS_ACRESC, ITENS_UN, ITENS_VDADATA, ITENS_VDAHORA,'+
  734.                                     'ITENS_TRANSFBOOL, ITENS_MARCA, ITENS_GRUPO, ITENS_SUBGRUPO, ITENS_TOTAL,'  +
  735.                                     'IDMARCA, IDGRUPO, IDSUBGRUPO, IDFORNECEDOR, FORNECEDOR, PDV_NUMERO,'+
  736.                                     'PDV_OPERADOR, TIPO_VENDA, ITENS_IDPRODUTO)'+
  737.  
  738.        'VALUES (:TRANF_DATA, :TRANSF_HORA, :TRANSF_USERPDV, :PDV_NUMPDV, :PDV_NSERIESAT,'+
  739.        ':PDV_IDCAIXA, :VENDA_NUMEROVENDA,'+
  740.       ' :VENDA_SITUACAO, :ITENS_NSEQUENCIA, :ITENS_ID, :ITENS_CEANTRIB, :ITENS_CODFORNECEDOR, :ITENS_DESCRICAO,'+
  741.  
  742.       ' :ITENS_REF, :ITENS_NCM, :ITENS_CEST, :TRIB_DESCTRIB, :TRIB_CSTCSOSN, :TRIB_ALIQICMS, :ITENS_VLUN, :ITENS_QUT,'+
  743.        ':ITENS_DESCONTOS, :ITENS_ACRESC, :ITENS_UN, :ITENS_VDADATA, :ITENS_VDAHORA, :ITENS_TRANSFBOOL, :ITENS_MARCA,'+
  744.        ':ITENS_GRUPO, :ITENS_SUBGRUPO, :ITENS_TOTAL, :IDMARCA, :IDGRUPO, :IDSUBGRUPO, :IDFORNECEDOR, :FORNECEDOR,'+
  745.        ':PDV_NUMERO, :PDV_OPERADOR, :TIPO_VENDA, :ITENS_IDPRODUTO)'+
  746.        'MATCHING ( PDV_NUMPDV, VENDA_NUMEROVENDA, ITENS_ID, ITENS_IDPRODUTO)';
  747.  
  748.  
  749.  
  750. end;
  751.  
  752. { TSendMovToServer.TFinalizadorasVenda.TServerCon }
  753.  
  754. procedure TSendMovToServer.TFinalizadorasVenda.TServerCon.AfterConstruction;
  755. begin
  756.   inherited AfterConstruction;
  757.  
  758. end;
  759.  
  760. procedure TSendMovToServer.TFinalizadorasVenda.TServerCon.BeforeDestruction;
  761. begin
  762.   inherited BeforeDestruction;
  763.  
  764. end;
  765.  
  766. constructor TSendMovToServer.TFinalizadorasVenda.TServerCon.Create(AOwner: TComponent);
  767. begin
  768.   inherited Create(AOwner);
  769.    Connection := TDtmConexao.FDServidorConexao;
  770.    SQL.Text   :=
  771.   ' UPDATE OR INSERT INTO MOV_PDVFINALIZADORAS (VENDA_NUMERO, VENDA_SITUACAO, FIN_IDFINAL, FIN_DESCRICAO,'+
  772.       'FIN_VALORREC, VENDA_DATA, VENDA_HORA, VENDA_USERPDV, PDV_NUMPDV, CAIXA_ID,CAIXA_DTABERTURA, CAIXA_HORAABERTURA,'+
  773.       'CAIXA_DTFECHAMENTO, CAIXA_HORAFECH,TRANSMIT_BOOL, DATA_ESTORNO, HORA_ESTORNO)'+
  774.  
  775.       'VALUES (:VENDA_NUMERO, :VENDA_SITUACAO, :FIN_IDFINAL, :FIN_DESCRICAO, :FIN_VALORREC, :VENDA_DATA, :VENDA_HORA,'+
  776.       ':VENDA_USERPDV, :PDV_NUMPDV, :CAIXA_ID, :CAIXA_DTABERTURA, :CAIXA_HORAABERTURA, :CAIXA_DTFECHAMENTO,'+
  777.       ':CAIXA_HORAFECH, :TRANSMIT_BOOL, :DATA_ESTORNO, :HORA_ESTORNO)'+
  778.       'MATCHING (PDV_NUMPDV,CAIXA_ID,VENDA_NUMERO,FIN_IDFINAL,VENDA_DATA,VENDA_HORA)';
  779.  
  780. end;
  781.  
  782. { TSendMovToServer.TFinalizadorasVenda }
  783.  
  784. procedure TSendMovToServer.TFinalizadorasVenda.AfterConstruction;
  785. begin
  786.   inherited AfterConstruction;
  787.  
  788. end;
  789.  
  790. procedure TSendMovToServer.TFinalizadorasVenda.BeforeDestruction;
  791. begin
  792.   inherited BeforeDestruction;
  793.  
  794. end;
  795.  
  796. constructor TSendMovToServer.TFinalizadorasVenda.Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge);
  797. begin
  798.  inherited Create(AOwner);
  799.   FvRich := aRich;
  800.   FvGauge := aGauge;
  801.   Connection := DtmConexao.TDtmConexao.FDMasterPdv;
  802. end;
  803.  
  804. procedure TSendMovToServer.TFinalizadorasVenda.Executecarga;
  805.  var Wait:TFDGUIxWaitCursor; Dlg: TFDGUIxAsyncExecuteDialog;
  806.      iNumInserts: Integer; aCaixa: Tcaixa; I: INteger;
  807. begin
  808.    aCaixa:= Tcaixa.Create(nil);
  809.    wait := TFDGUIxWaitCursor.Create(nil);
  810.    wait.ScreenCursor:= gcrAppWait;
  811.    dlg:= TFDGUIxAsyncExecuteDialog.Create(nil);
  812.    sql.Text:=
  813.  
  814.       'SELECT '+
  815.       'ID, '+
  816.       'DATA, '+
  817.       'HORA, '+
  818.       'USUARIO, '+
  819.       'SITUACAO, '+
  820.       'IDVENDA, '+
  821.       'IDCAIXA, '+
  822.       'ID_FINALIZADORA, '+
  823.       'DESC_FINALIZADORA, '+
  824.       'VALOR_RECEBIDO, '+
  825.       'INDICE_SAT, '+
  826.       'TEF_NUM, '+
  827.       'TEF_CODAUTORIZADOR, '+
  828.       'TIPO_FINAL, '+
  829.       'TRANSMIT_BOOL, '+
  830.       'PDV_NUMPDV, '+
  831.       'VENDA_DATA, '+
  832.       'VENDA_HORA, '+
  833.       'DATA_ESTORNO, '+
  834.       'HORA_ESTORNO '+
  835.       'FROM FINALIZADORA_TRANSF ORDER BY ID ';
  836.  
  837.    open;
  838.    FieldByName('ID').Required := False;
  839.    Last;
  840.    iNumInserts:= RecordCount;
  841.  
  842.    FvGauge.MaxValue := iNumInserts;
  843.    FvGauge.Visible := True;
  844.  
  845.    FTServerCon:= TServerCon.Create(nil);
  846.    FTServerCon.Params.ArraySize := iNumInserts;
  847.    First;
  848.    while not Eof do
  849.    begin
  850.  
  851.      FTServerCon.Params[0].AsDateTimes[RecNo-1]  :=  Now;
  852.  
  853.       FTServerCon.Params[0].AsIntegers[RecNo-1] :=  Fieldbyname('idvenda').asinteger;
  854.       FTServerCon.Params[1].AsStrings[RecNo-1]  :=  Fieldbyname('situacao').asstring;
  855.       FTServerCon.Params[2].AsIntegers[RecNo-1] :=  Fieldbyname('id_finalizadora').asinteger;
  856.       FTServerCon.Params[3].AsStrings[RecNo-1]  :=  Fieldbyname('desc_finalizadora').asstring;
  857.       FTServerCon.Params[4].AsCurrencys[RecNo-1]:=  Fieldbyname('valor_recebido').ascurrency;
  858.       FTServerCon.Params[5].AsDateTimes[RecNo-1]  := Fieldbyname('data').asdatetime;
  859.       FTServerCon.Params[6].AsDateTimes[RecNo-1]  := Fieldbyname('hora').asdatetime;
  860.       FTServerCon.Params[7].AsStrings[RecNo-1]    := Fieldbyname('usuario').asstring;
  861.       FTServerCon.Params[8].AsIntegers[RecNo-1]   :=  Fieldbyname('pdv_numpdv').asinteger;
  862.       FTServerCon.Params[9].AsIntegers[RecNo-1]   := Fieldbyname('idcaixa').asinteger;
  863.       FTServerCon.Params[10].AsDateTimes[RecNo-1]  := aCaixa.DatadeAberturacaixa;
  864.       FTServerCon.Params[11].AsDateTimes[RecNo-1]  := aCaixa.HoradeAberturaCaixa;
  865.       FTServerCon.Params[12].AsDateTimes[RecNo-1]  :=  now;
  866.       FTServerCon.Params[13].AsDateTimes[RecNo-1]  :=  now;
  867.       FTServerCon.Params[14].AsIntegers[RecNo-1]   :=  Fieldbyname('transmit_bool').asinteger;
  868.       FTServerCon.Params[15].AsDateTimes[RecNo-1]  :=  Fieldbyname('data_estorno').asdatetime;
  869.       FTServerCon.Params[16].AsDateTimes[RecNo-1]  :=  Fieldbyname('hora_estorno').asdatetime;
  870.  
  871.       FVGauge.Progress := FVGauge.Progress + 1;
  872.       Next;
  873.     end;
  874.  
  875.     FvGauge.Progress := 0;
  876.     FvGauge.Visible:= False;
  877.  
  878.     if iNumInserts > 0 then
  879.    begin
  880.     try
  881.       if TDtmConexao.InvokeTlCon then
  882.       begin
  883.        FTServerCon.Execute(iNumInserts, 0);
  884.       end;
  885.     finally
  886.       if Assigned( FTAposTranferirMovimentacao ) then
  887.       begin
  888.         FTAposTranferirMovimentacao;
  889.       end;
  890.       FTServerCon.Free;
  891.       FTServerCon:= nil;
  892.       aCaixa.Free;
  893.       aCaixa:= nil;
  894.     end;
  895.     end;
  896.  
  897.      dlg.DisposeOf;
  898.      wait.DisposeOf;
  899.  
  900. end;
  901.  
  902. { TSendMovToServer.TmovXmlTransform.TServerCon }
  903.  
  904. procedure TSendMovToServer.TmovXmlTransform.TServerCon.AfterConstruction;
  905. begin
  906.   inherited AfterConstruction;
  907.  
  908. end;
  909.  
  910. procedure TSendMovToServer.TmovXmlTransform.TServerCon.BeforeDestruction;
  911. begin
  912.   inherited BeforeDestruction;
  913.  
  914. end;
  915.  
  916. constructor TSendMovToServer.TmovXmlTransform.TServerCon.Create(AOwner: TComponent);
  917. begin
  918.   inherited Create(AOwner);
  919.     Connection := TDtmConexao.FDServidorConexao;
  920.      SQL.Text   :=
  921.      'UPDATE '+
  922.       'OR '+
  923.       'INSERT '+
  924.       'INTO XMLTRANSFORM '+
  925.       '(DATA, HORA, USUARIO, NROVENDA, NROCAIXA, IDCAIXA, XML) '+
  926.       'VALUES ( :DATA, :HORA, :USUARIO, :NROVENDA, :NROCAIXA, :IDCAIXA, :XML) '+
  927.       'MATCHING (NROVENDA,NROCAIXA) ';
  928.  
  929. end;
  930.  
  931. { TSendMovToServer.TmovXmlTransform }
  932.  
  933. procedure TSendMovToServer.TmovXmlTransform.AfterConstruction;
  934. begin
  935.   inherited AfterConstruction;
  936.  
  937. end;
  938.  
  939. procedure TSendMovToServer.TmovXmlTransform.BeforeDestruction;
  940. begin
  941.   inherited BeforeDestruction;
  942.  
  943. end;
  944.  
  945. constructor TSendMovToServer.TmovXmlTransform.Create(AOwner: TComponent; aRich: TRichEdit; aGauge: TGauge);
  946. begin
  947.  inherited Create(AOwner);
  948.   FvRich := aRich;
  949.   FvGauge := aGauge;
  950.   Connection := DtmConexao.TDtmConexao.FDMasterPdv;
  951. end;
  952.  
  953. procedure TSendMovToServer.TmovXmlTransform.Executecarga;
  954. var Wait:TFDGUIxWaitCursor; Dlg: TFDGUIxAsyncExecuteDialog;
  955.      iNumInserts: Integer; aCaixa: Tcaixa; I: INteger;
  956. begin
  957.    aCaixa:= Tcaixa.Create(nil);
  958.    wait := TFDGUIxWaitCursor.Create(nil);
  959.    wait.ScreenCursor:= gcrAppWait;
  960.    dlg:= TFDGUIxAsyncExecuteDialog.Create(nil);
  961.    sql.Text:=
  962.  
  963.     'SELECT '+
  964.     'DATA, '+
  965.     'HORA, '+
  966.     'USUARIO, '+
  967.     'NROVENDA, '+
  968.     'NROCAIXA, '+
  969.     'IDCAIXA, '+
  970.     'XML '+
  971.     'FROM XMLTRANSFORM_TRANSF X '+
  972.     'ORDER BY DATA ASC ';
  973.    open;
  974.  
  975.    Last;
  976.    iNumInserts:= RecordCount;
  977.  
  978.    FvGauge.MaxValue := iNumInserts;
  979.    FvGauge.Visible := True;
  980.  
  981.    FTServerCon:= TServerCon.Create(nil);
  982.    FTServerCon.Params.ArraySize := iNumInserts;
  983.    First;
  984.    while not Eof do
  985.    begin
  986.  
  987.      FTServerCon.Params[0].AsDateTimes[RecNo-1]  :=  Now;
  988.  
  989.     FTServerCon.Params[0].AsDateTimes[RecNo-1] := FieldByName('DATA').AsDateTime;
  990.     FTServerCon.Params[1].AsDateTimes[RecNo-1] := FieldByName('HORA').AsDateTime;
  991.     FTServerCon.Params[2].AsStrings[RecNo-1]   := FieldByName('USUARIO').AsString;
  992.     FTServerCon.Params[3].AsIntegers[RecNo-1]  := FieldByName('NROVENDA').AsInteger;
  993.     FTServerCon.Params[4].AsIntegers[RecNo-1]  := FieldByName('NROCAIXA').AsInteger;
  994.     FTServerCon.Params[5].AsIntegers[RecNo-1]  := FieldByName('IDCAIXA').AsInteger;
  995.     FTServerCon.Params[6].Values[RecNo-1]      := FieldByName('XML').Value;
  996.  
  997.       FVGauge.Progress := FVGauge.Progress + 1;
  998.       Next;
  999.     end;
  1000.  
  1001.     FvGauge.Progress := 0;
  1002.     FvGauge.Visible:= False;
  1003.  
  1004.     if iNumInserts > 0 then
  1005.    begin
  1006.     try
  1007.       if TDtmConexao.InvokeTlCon then
  1008.       begin
  1009.        FTServerCon.Execute(iNumInserts, 0);
  1010.       end;
  1011.     finally
  1012.       if Assigned( FTAposTranferirMovimentacao ) then
  1013.       begin
  1014.         FTAposTranferirMovimentacao;
  1015.       end;
  1016.       FTServerCon.Free;
  1017.       FTServerCon:= nil;
  1018.       aCaixa.Free;
  1019.       aCaixa:= nil;
  1020.     end;
  1021.     end;
  1022.  
  1023.      dlg.DisposeOf;
  1024.      wait.DisposeOf;
  1025.  
  1026.  
  1027. end;
  1028.  
  1029. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement