Advertisement
filhotecmail

Transferencia Movimentacao

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