Advertisement
Guest User

Unit Frente Pdv

a guest
Jan 18th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 63.16 KB | None | 0 0
  1. {*******************************************************}
  2.  
  3. {                                                       }
  4. {       FrentePDV                                       }
  5. {                                                       }
  6. {       Copyright (C) 2017 Leopard report               }
  7. {   C:\Leopard\Pdv\  - FrentePDV  1.0.0.0               }
  8. {                     03/09/2017 02:00:49               }
  9. { Devenvolvedor: Carlos Alberto Dias da Silva Filho     }
  10. {*******************************************************}
  11. unit Principal;
  12.  
  13. interface
  14.  
  15. uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,system.UITypes,
  16.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.Menus,AcbrUtil,
  17.   Vcl.Imaging.pngimage, Vcl.Imaging.jpeg,  Vcl.Mask, Vcl.DBCtrls, ACBrBase, Vcl.Buttons,
  18.   Vcl.AppEvnts, Vcl.Samples.Gauges, TypInfo, Midaslib,
  19.   Registry, OleCtrls,JvExExtCtrls,
  20.   JvExtComponent, JvPanel, AdvObj, BaseGrid, DBAdvGrid, StrUtils,
  21.   Vcl.ExtCtrls, acImage,ACBrGAV, ACBrBAL, CurvyControls,  DBclient, DateUtils,TopCaixa, FatSaldoCliente,
  22.    AdvUtil, Vcl.StdCtrls,Vcl.ComCtrls,SatModel, AdvGrid;
  23.  
  24.   {$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or
  25.  IMAGE_FILE_LOCAL_SYMS_STRIPPED OR IMAGE_FILE_RELOCS_STRIPPED}
  26.  
  27. {$WEAKLINKRTTI ON}
  28. {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
  29. type
  30.   TForm1 = class(TForm)
  31.     MainMenu1: TMainMenu;
  32.     Abriravenda: TMenuItem;
  33.     Fecharavenda: TMenuItem;
  34.     Cancelaravenda: TMenuItem;
  35.     ProdutosF4: TMenuItem;
  36.     CaixaF11: TMenuItem;
  37.     Sairdosistema: TMenuItem;
  38.     Panel1: TPanel;
  39.     Panel2: TPanel;
  40.     Panel5: TPanel;
  41.     Edit2: TEdit;
  42.     Label5: TLabel;
  43.     Label6: TLabel;
  44.     Label7: TLabel;
  45.     ExecutaLeiturax: TMenuItem;
  46.     Panel7: TPanel;
  47.     Label24: TLabel;
  48.     ExecutaZ: TMenuItem;
  49.     AtualizaBase1: TMenuItem;
  50.     Label22: TLabel;
  51.     Gauge1: TGauge;
  52.     TrayIcon1: TTrayIcon;
  53.     C1: TMenuItem;
  54.     P1: TMenuItem;
  55.     Image2: TImage;
  56.     JvPanel1: TJvPanel;
  57.     Label16: TLabel;
  58.     Shape7: TShape;
  59.     Shape4: TShape;
  60.     Label13: TLabel;
  61.     Shape6: TShape;
  62.     Label15: TLabel;
  63.     Label14: TLabel;
  64.     Shape5: TShape;
  65.     Shape3: TShape;
  66.     Label12: TLabel;
  67.     Shape12: TShape;
  68.     Label3: TLabel;
  69.     DBGrid1: TDBAdvGrid;
  70.     Shape13: TShape;
  71.     Label19: TLabel;
  72.     Timer2: TTimer;
  73.     JvPanel2: TJvPanel;
  74.     Label25: TLabel;
  75.     Edtqx: TEdit;
  76.     EDCodebar: TEdit;
  77.     Label10: TLabel;
  78.     Shape11: TShape;
  79.     DBEdit1: TDBEdit;
  80.     Label11: TLabel;
  81.     Shape8: TShape;
  82.     Shape14: TShape;
  83.     Label23: TLabel;
  84.     DBEdit7: TDBEdit;
  85.     DBEdit3: TDBEdit;
  86.     Label1: TLabel;
  87.     Shape9: TShape;
  88.     Label2: TLabel;
  89.     Shape10: TShape;
  90.     DBEdit2: TDBEdit;
  91.     Panel6: TPanel;
  92.     Label18: TLabel;
  93.     LbFabsn: TLabel;
  94.     Label20: TLabel;
  95.     lsStatuslansat: TLabel;
  96.     JvPanel3: TJvPanel;
  97.     sImage1: TsImage;
  98.     Label17: TLabel;
  99.     DBEdit9: TDBEdit;
  100.     Label26: TLabel;
  101.     N1: TMenuItem;
  102.     A1: TMenuItem;
  103.     ACBrGAV1: TACBrGAV;
  104.     ACBrBAL1: TACBrBAL;
  105.     I1: TMenuItem;
  106.     t1: TMenuItem;
  107.     B1: TMenuItem;
  108.     ImprimeExtrcli: TMenuItem;
  109.     P2: TMenuItem;
  110.     Shape15: TShape;
  111.     Panelproibido: TJvPanel;
  112.     Label4: TLabel;
  113.     Timer3: TTimer;
  114.     Label21: TLabel;
  115.     Image1: TImage;
  116.     P3: TMenuItem;
  117.     edvdanumero: TEdit;
  118.     edNumpdv: TEdit;
  119.     edOperador: TEdit;
  120.     edSituacao: TEdit;
  121.     DBgrid2: TDBAdvGrid;
  122.     M1: TMenuItem;
  123.     D1: TMenuItem;
  124.     R1: TMenuItem;
  125.     T2: TMenuItem;
  126.     T3: TMenuItem;
  127.     Label8: TLabel;
  128.     Shape1: TShape;
  129.     Label9: TLabel;
  130.     DBEdit4: TDBEdit;
  131.     A2: TMenuItem;
  132.     D2: TMenuItem;
  133.     L1: TMenuItem;
  134.     ApplicationEvents1: TApplicationEvents;
  135.     S1: TMenuItem;
  136.  
  137.     procedure AbriravendaClick(Sender: TObject);
  138.     procedure CaixaF11Click(Sender: TObject);
  139.     procedure FecharavendaClick(Sender: TObject);
  140.     procedure FormActivate(Sender: TObject);
  141.     procedure ExecutaLeituraxClick(Sender: TObject);
  142.     procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
  143.     procedure AtualizaBase1Click(Sender: TObject);
  144.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  145.     procedure SairdosistemaClick(Sender: TObject);
  146.     procedure Timer2Timer(Sender: TObject);
  147.     procedure DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  148.     procedure EDCodebarKeyPress(Sender: TObject; var Key: Char);
  149.     procedure EDCodebarKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  150.     procedure EdtqxKeyPress(Sender: TObject; var Key: Char);
  151.     procedure FormShow(Sender: TObject);
  152.     procedure ACBrSAT1GetcodigoDeAtivacao(var Chave: AnsiString);
  153.     procedure ACBrSAT1GetsignAC(var Chave: AnsiString);
  154.     procedure N1Click(Sender: TObject);
  155.     procedure CancelaravendaClick(Sender: TObject);
  156.     procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
  157.     procedure EDCodebarEnter(Sender: TObject);
  158.     procedure ProdutosF4Click(Sender: TObject);
  159.     procedure A1Click(Sender: TObject);
  160.     procedure I1Click(Sender: TObject);
  161.     procedure B1Click(Sender: TObject);
  162.     procedure ACBrBAL1LePeso(Peso: Double; Resposta: AnsiString);
  163.     procedure P2Click(Sender: TObject);
  164.     procedure Timer3Timer(Sender: TObject);
  165.     procedure P3Click(Sender: TObject);
  166.     procedure ImprimeExtrcliClick(Sender: TObject);
  167.     procedure DBgrid2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  168.     procedure MainMenu1Change(Sender: TObject; Source: TMenuItem; Rebuild: Boolean);
  169.     procedure ACBrSAT1EnviarDadosVenda(ADados: string; var ARetorno: string);
  170.     procedure M1Click(Sender: TObject);
  171.     procedure D1Click(Sender: TObject);
  172.     procedure R1Click(Sender: TObject);
  173.     procedure FormCreate(Sender: TObject);
  174.     procedure EDCodebarExit(Sender: TObject);
  175.     procedure P1Click(Sender: TObject);
  176.     procedure A2Click(Sender: TObject);
  177.     procedure D2Click(Sender: TObject);
  178.     procedure L1Click(Sender: TObject);
  179.     procedure S1Click(Sender: TObject);
  180.     procedure T3Click(Sender: TObject);
  181.  
  182.   private
  183.     FTSatConfigClass: TSatConfigClass;
  184.  
  185.     FCdsTemp: TClientDataSet;
  186.     FCodeBar: String;
  187.     FMutex: THandle;
  188.     FFormAjustado: Boolean;
  189.     { Private declarations }
  190.   public
  191.     { Public declarations }
  192.     property aSatModel: TSatConfigClass read FTSatConfigClass write FTSatConfigClass;
  193.     Function VideoAdjust(Form: TForm):Boolean;
  194.     Procedure vendapelapesquisa(Sender: TObject);
  195.     procedure vendapelapesquisaprevda(Sender: TObject);
  196.     procedure vendapelapesquisadaprevenda(Sender: TObject);
  197.     property CdsTemp: TClientDataSet  read FCdsTemp write FCdsTemp;
  198.     property CodeBarEd: String read FCodeBar write FCodeBar;
  199.     procedure LimpaCodeBar;
  200.     procedure BeforeDestruction; override;
  201.  
  202.    property HMutex: THandle read FMutex write FMutex;
  203.    property FormAjustado: Boolean read FFormAjustado write FFormAjustado;
  204.   Var
  205.  
  206.     acessotf: integer;
  207.     AStr: String;
  208.     statussat: integer;
  209.     videoajustado, DIG1, DIG2, DIG3, DIG4: integer;
  210.     pesoLido: Double;
  211.     Limitedisponivel: currency;
  212.     faturamentoautorizado: string;
  213.     numeropdv: integer;
  214.     Satassinatura: AnsiString;
  215.     VENDA_NUMERO: integer;
  216.   end;
  217.  
  218. var
  219.   Form1: TForm1;
  220.  
  221. implementation
  222.  
  223. {$R *.dfm}
  224.  
  225.   uses DataModule, DocumentoPrinc, Senha,DTMProvedor,ProcLib, Cargadetabelas,Iniciaavenda, EscolhaFinal,
  226.   PesquisaCodebar,Informavalorprod,InformaPrevenda, Libraryclass, VerificaLicenca,
  227.   Tipos, TOpvendas,Faturamento, RecebePromissorias,
  228.   DtmConexao, AcbrSatClassFactory,LoadParamsSystDataModel,
  229.   TfrmViewPesqClientes, PesquisaClientesCodeBar,
  230.   DeliveryFactoryClass, BuscPreco, Venda.MiscConstrols.Factory, FactoryComissionamento, FactoryCargadetabelas,
  231.   GeraParcelas.Model, FactoryVendas.Model, HardwareFactory, LoadParamsSystemModel, TLogin,
  232.   FuncoesLibraryClass, DtmItensdaVenda, DtmVendas, TInicializacaoPDv;
  233.  
  234.  
  235. procedure TForm1.vendapelapesquisadaprevenda(Sender: TObject);
  236. var
  237.   quantidadevenda: Double;
  238. begin
  239.   Panelproibido.Visible := false;
  240.   Timer3.Enabled := false;
  241.  
  242.   if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 0 then
  243.   begin
  244.     Panelproibido.Visible := false;
  245.   end
  246.   else if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 1 then
  247.   begin
  248.     Panelproibido.Visible := true;
  249.     Timer3.Enabled := true;
  250.   end;
  251.   quantidadevenda := strtocurr(Form1.Edtqx.Text);
  252.   { Aqui eu inicio uma nova transação com a tabela de itens da venda }
  253.   TDtmItensdaVenda.CDSITENS.Append;
  254.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_SITUACAO').AsString := TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString;
  255.   { Aqui eu pego a data e hora da inserção do iten na venda }
  256.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DATAVENDA').AsDateTime := now;
  257.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_HORADAVENDA').AsDateTime := now;
  258.   { Aqui eu pego o número da venda, gerado pelo autoincreento do banco da tabela CDSVENDA }
  259.   TDtmItensdaVenda.CDSITENS.FieldByName('VENDA_NUMERO').AsInteger := strtoint(Form1.edvdanumero.Text);
  260.   { Aqui tragos as informações do iten da tabela CADPROD do Banco do PDV }
  261.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CODBARRAS').AsString := DataModule2.CDSITENSPVDAITENS_CODBARRAS.AsString;
  262.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString := DataModule2.CDSITENSPVDAITENS_DESCPRODUTO.AsString;
  263.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_IDPRODUTO').AsInteger  := DataModule2.CDSITENSPVDAITENS_IDPRODUTO.AsInteger;
  264.   { Alimenta aqui os impostos }
  265.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_ICMSCST').AsString := DataModule2.CDSITENSPVDAIMPOSTO_ICMSCST.AsString;
  266.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_ICMSPICMS').AsFloat := DataModule2.CDSITENSPVDAIMPOSTO_ICMSPICMS.AsFloat;
  267.  
  268.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_TRIBDESC').AsString := DataModule2.CDSITENSPVDAIMPOSTO_TRIBDESC.AsString;
  269.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CFOP').AsString := DataModule2.CDSITENSPVDAITENS_CFOP.AsString;
  270.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_NCM').AsString := DataModule2.CDSITENSPVDAITENS_NCM.AsString;
  271.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CEST').AsString := DataModule2.CDSITENSPVDAITENS_CEST.AsString;
  272.  
  273.   TDtmItensdaVenda.CDSITENS.FieldByName('MARCA').AsString := DataModule2.CDSITENSPVDAMARCA.AsString;
  274.   TDtmItensdaVenda.CDSITENS.FieldByName('GRUPO').AsString := DataModule2.CDSITENSPVDAGRUPO.AsString;
  275.   TDtmItensdaVenda.CDSITENS.FieldByName('SUBGRUPO').AsString := DataModule2.CDSITENSPVDASUBGRUPO.AsString;
  276.  
  277.   TDtmItensdaVenda.CDSITENS.FieldByName('idmarca').AsInteger := DataModule2.CDSITENSPVDAidmarca.AsInteger;
  278.   TDtmItensdaVenda.CDSITENS.FieldByName('IDGRUPO').AsInteger := DataModule2.CDSITENSPVDAIDGRUPO.AsInteger;
  279.   TDtmItensdaVenda.CDSITENS.FieldByName('IDSUBGRUPO').AsInteger := DataModule2.CDSITENSPVDAIDSUBGRUPO.AsInteger;
  280.   TDtmItensdaVenda.CDSITENS.FieldByName('IDFORNECEDOR').AsInteger := DataModule2.CDSITENSPVDAIDFORNECEDOR.AsInteger;
  281.   TDtmItensdaVenda.CDSITENS.FieldByName('FORNECEDOR').AsString := DataModule2.CDSITENSPVDAFORNECEDOR.AsString;
  282.   TDtmItensdaVenda.CDSITENS.FieldByName('PDV_NUMERO').AsInteger :=
  283.   strtoint(TDtmVendas.CDSVENDA.FieldByName('CAIXA_NUMERO').AsString);
  284.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat :=
  285.   DataModule2.CDSITENSPVDAITENS_QUANTIDADE.AsFloat;
  286.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsCurrency :=
  287.   DataModule2.CDSITENSPVDAITENS_VLUN.AsCurrency;
  288.   if TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsCurrency <= 0 then
  289.   begin
  290.     Application.CreateForm(TForm19, Form19);
  291.     Form19.Label2.Caption := TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString;
  292.     Form19.showModal;
  293.   end;
  294.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_TOTAL').AsFloat := DataModule2.CDSITENSPVDAITENS_TOTAL.AsFloat;
  295.  
  296.   { Valor de descontos no iten }
  297.   TDtmItensdaVenda.CDSITENS.FieldByName('itens_descvl').AsFloat := DataModule2.CDSITENSPVDAitens_descvl.AsFloat;
  298.   TDtmItensdaVenda.CDSITENS.FieldByName('itens_descpercent').AsFloat := DataModule2.CDSITENSPVDAitens_descpercent.AsFloat;
  299.  
  300.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_UN').AsString := DataModule2.CDSITENSPVDAITENS_UN.AsString;
  301.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_POSICAOITEN').AsInteger := Form1.DBGrid1.RowCount - 1;
  302.  
  303.   { Posiciona a tabela de vendas em edição }
  304.   TDtmVendas.CDSVENDA.Edit;
  305.  
  306.   { Alimento aqui o valor total da venda na tabela CDSVENDA }
  307.   TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsFloat := TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsFloat +
  308.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_TOTAL').AsFloat;
  309.  
  310.   { Alimento aqui o valor da somatoria dos itens inseridos na venda somatoria }
  311.   TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORVENDA').AsFloat := TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORVENDA').AsFloat +
  312.     (TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat *
  313.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsFloat);
  314.  
  315.   { aqui eu conto os registros inseridos na tabela de itens e adiciono +1 }
  316.   if pos(',', Floattostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value)) > 0 then
  317.   begin
  318.  
  319.     TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger := TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger + 1;
  320.  
  321.   end;
  322.   if pos(',', Floattostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value)) <= 0 then
  323.   begin
  324.  
  325.     TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger := TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger +
  326.       Round(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value);
  327.  
  328.   end;
  329.  
  330.   { Cest/Nmc }
  331.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CST').AsString := DataModule2.CDSITENSPVDAITENS_CST.AsString;
  332.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_NCM').AsString := DataModule2.CDSITENSPVDAITENS_NCM.AsString;
  333.   TDtmItensdaVenda.CDSITENS.FieldByName('TRANSF_BOOL').AsInteger := 0;
  334.  
  335.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_TRIBDESC').AsString := DataModule2.CDSITENSPVDAIMPOSTO_TRIBDESC.AsString;
  336.  
  337.   { Limpo o editCodebar }
  338.   Form1.EDCodebar.Clear;
  339.   { Volto o foco para o EditCodebar }
  340.   Form1.EDCodebar.SetFocus;
  341.  
  342.   { Grva o resultado na tabela da venda }
  343.   TDtmVendas.CDSVENDA.Post;
  344.   TDtmVendas.CDSVENDA.Locate('VENDA_NUMERO', DataModule1.INCQVENDA.FieldByName('gen_id').AsInteger, []);
  345.  
  346.   { Gravo o resultado na tabela itens da venda para poder mostrar commitar no banco }
  347.   TDtmItensdaVenda.CDSITENS.Post;
  348.  
  349.     FactVendas.Metodosdavenda.TMemoVendas.Add(inttostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_POSICAOITEN').AsInteger) + ' ' +
  350.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CODBARRAS').AsString + ' '
  351.     + TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString + ' ' +
  352.     FormatFloat('##,###,##0.00', TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat) + ' ' +
  353.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_UN').AsString + ' X ' + FormatFloat('##,###,##0.00',
  354.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsFloat)
  355.     + ' ' + FormatFloat('##,###,##0.00', TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_TOTAL').AsFloat));
  356.  
  357.   Form1.Edtqx.Clear;
  358.   Form1.Edtqx.Text := '1';
  359.  
  360. //  Form1.DBGrid1.Columns.Items[0].Width := 1;
  361. //  Form1.DBGrid1.Columns.Items[1].Width := Form1.Shape3.Width;
  362. //  Form1.DBGrid1.Columns.Items[2].Width := Form1.Shape12.Width;
  363. //  Form1.DBGrid1.Columns.Items[3].Width := Form1.Shape5.Width;
  364. //  Form1.DBGrid1.Columns.Items[4].Width := Form1.Shape13.Width + 10;
  365. //  Form1.DBGrid1.Columns.Items[5].Width := Form1.Shape6.Width;
  366. //  Form1.DBGrid1.Columns.Items[6].Width := Form1.Shape4.Width;
  367. //  Form1.DBGrid1.Columns.Items[7].Width := Form1.Shape7.Width;
  368. end;
  369.  
  370. function CopyReverse(S: String; Index, Count: integer): String;
  371. begin
  372.   Result := ReverseString(S);
  373.   Result := Copy(Result, Index, Count);
  374.   Result := ReverseString(Result);
  375.  
  376. end;
  377.  
  378. procedure TForm1.vendapelapesquisaprevda(Sender: TObject);
  379. var
  380.   quantidadevenda: Double;
  381. begin
  382.   Panelproibido.Visible := false;
  383.   Timer3.Enabled := false;
  384.  
  385.   if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 0 then
  386.   begin
  387.  
  388.     Panelproibido.Visible := false;
  389.  
  390.   end
  391.   else if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 1 then
  392.   begin
  393.  
  394.     Panelproibido.Visible := true;
  395.     Timer3.Enabled := true;
  396.  
  397.   end;
  398.  
  399.   quantidadevenda := strtocurr(Form1.Edtqx.Text);
  400.  
  401.   { Aqui eu inicio uma nova transação com a tabela de itens da venda }
  402.   DataModule2.CDSITENSPVDA.Append;
  403.  
  404.   DataModule2.CDSITENSPVDAITENS_SITUACAO.AsString := DataModule2.CDSPREVDAVENDA_SITUACAO.AsString;
  405.  
  406.   { Aqui eu pego a data e hora da inserção do iten na venda }
  407.   DataModule2.CDSITENSPVDAITENS_DATAVENDA.AsDateTime := now;
  408.   DataModule2.CDSITENSPVDAITENS_HORADAVENDA.AsDateTime := now;
  409.  
  410.   { Aqui eu pego o número da venda, gerado pelo autoincreento do banco da tabela CDSVENDA }
  411.   DataModule2.CDSITENSPVDAVENDA_NUMERO.AsInteger := strtoint(Form1.edvdanumero.Text);
  412.  
  413.   { Aqui tragos as informações do iten da tabela CADPROD do Banco do PDV }
  414.  
  415.   DataModule2.CDSITENSPVDAITENS_CODBARRAS.AsString := DataModule1.CDSCADPRODCAD_CEAN13.AsString;
  416.   DataModule2.CDSITENSPVDAITENS_DESCPRODUTO.AsString := DataModule1.CDSCADPRODCAD_NOMEDOPROD.AsString;
  417.   DataModule2.CDSITENSPVDAITENS_IDPRODUTO.AsInteger := DataModule1.CDSCADPRODIDRELPROD.AsInteger;
  418.     { Alimenta aqui os impostos }
  419.   DataModule2.CDSITENSPVDAIMPOSTO_ICMSCST.AsString := DataModule1.CDSCADPRODSAID_CST.AsString;
  420.   DataModule2.CDSITENSPVDAIMPOSTO_ICMSPICMS.AsFloat := DataModule1.CDSCADPRODSAID_TRIBUTACAOALIQ.AsFloat;
  421.   DataModule2.CDSITENSPVDAIMPOSTO_TRIBDESC.AsString := DataModule1.CDSCADPRODSAID_TRIBUTACAO.AsString;
  422.   DataModule2.CDSITENSPVDAITENS_CFOP.AsString := DataModule1.CDSCADPRODSAID_CFOP.AsString;
  423.   DataModule2.CDSITENSPVDAITENS_NCM.AsString := DataModule1.CDSCADPRODENTR_NCM.AsString;
  424.   DataModule2.CDSITENSPVDAITENS_CEST.AsString := DataModule1.CDSCADPRODENTR_CEST.AsString;
  425.   DataModule2.CDSITENSPVDAMARCA.AsString := DataModule1.CDSCADPRODCAD_MARCACOMERCIAL.AsString;
  426.   DataModule2.CDSITENSPVDAGRUPO.AsString := DataModule1.CDSCADPRODCAD_GRUPODOPROD.AsString;
  427.   DataModule2.CDSITENSPVDASUBGRUPO.AsString := DataModule1.CDSCADPRODCAD_SUBGRUPODOPROD.AsString;
  428.   DataModule2.CDSITENSPVDAidmarca.AsInteger := DataModule1.CDSCADPRODCAD_IDMARCACOMERCIAL.AsInteger;
  429.   DataModule2.CDSITENSPVDAIDGRUPO.AsInteger := DataModule1.CDSCADPRODCAD_IDGRUPODOPROD.AsInteger;
  430.   DataModule2.CDSITENSPVDAIDSUBGRUPO.AsInteger := DataModule1.CDSCADPRODCAD_IDSUBGRUPODOPROD.AsInteger;
  431.   DataModule2.CDSITENSPVDAIDFORNECEDOR.AsInteger := DataModule1.CDSCADPRODCAD_IDFORNECEDORPROD.AsInteger;
  432.   DataModule2.CDSITENSPVDAFORNECEDOR.AsString := DataModule1.CDSCADPRODCAD_FORNECEDORDOPROD.AsString;
  433.   DataModule2.CDSITENSPVDAPDV_NUMERO.AsInteger := strtoint(DataModule2.CDSPREVDACAIXA_NUMERO.AsString);
  434.   DataModule2.CDSITENSPVDAITENS_QUANTIDADE.AsFloat := quantidadevenda;
  435.   DataModule2.CDSITENSPVDAITENS_VLUN.AsCurrency := DataModule1.CDSCADPRODSAID_VLVENDA.AsCurrency;
  436.   if DataModule2.CDSITENSPVDAITENS_VLUN.AsCurrency <= 0 then
  437.   begin
  438.     Application.CreateForm(TForm19, Form19);
  439.     Form19.Label2.Caption := DataModule2.CDSITENSPVDAITENS_DESCPRODUTO.AsString;
  440.     Form19.showModal;
  441.   end;
  442.   DataModule2.CDSITENSPVDAITENS_TOTAL.AsFloat :=
  443.     (DataModule2.CDSITENSPVDAITENS_QUANTIDADE.AsFloat * DataModule2.CDSITENSPVDAITENS_VLUN.AsFloat);
  444.   { Valor de descontos no iten }
  445.   DataModule2.CDSITENSPVDAitens_descvl.AsFloat := 0;
  446.   DataModule2.CDSITENSPVDAitens_descpercent.AsFloat := 0;
  447.   DataModule2.CDSITENSPVDAITENS_UN.AsString := DataModule1.CDSCADPRODSAID_UNVENDA.AsString;
  448.   DataModule2.CDSITENSPVDAITENS_POSICAOITEN.AsInteger := Form1.DBgrid2.RowCount - 1;
  449.   { Posiciona a tabela de vendas em edição }
  450.   DataModule2.CDSPREVDA.Edit;
  451.   { Alimento aqui o valor total da venda na tabela CDSVENDA }
  452.   DataModule2.CDSPREVDAVENDA_VALORTOTAL.AsFloat := DataModule2.CDSPREVDAVENDA_VALORTOTAL.AsFloat +
  453.     DataModule2.CDSITENSPVDAITENS_TOTAL.AsFloat;
  454.   { Alimento aqui o valor da somatoria dos itens inseridos na venda somatoria }
  455.   DataModule2.CDSPREVDAVENDA_VALORVENDA.AsFloat := DataModule2.CDSPREVDAVENDA_VALORVENDA.AsFloat +
  456.     (DataModule2.CDSITENSPVDAITENS_QUANTIDADE.AsFloat * DataModule2.CDSITENSPVDAITENS_VLUN.AsFloat);
  457.   { aqui eu conto os registros inseridos na tabela de itens e adiciono +1 }
  458.   if pos(',', Floattostr(DataModule2.CDSITENSPVDAITENS_QUANTIDADE.Value)) > 0 then
  459.   begin
  460.     DataModule2.CDSPREVDAVENDA_NITENS.AsInteger := DataModule2.CDSPREVDAVENDA_NITENS.AsInteger + 1;
  461.   end;
  462.   if pos(',', Floattostr(DataModule2.CDSITENSPVDAITENS_QUANTIDADE.Value)) <= 0 then
  463.   begin
  464.     DataModule2.CDSPREVDAVENDA_NITENS.AsInteger := DataModule2.CDSPREVDAVENDA_NITENS.AsInteger +
  465.     Round(DataModule2.CDSITENSPVDAITENS_QUANTIDADE.Value);
  466.   end;
  467.  
  468.   { Cest/Nmc }
  469.   DataModule2.CDSITENSPVDAITENS_CST.AsString := DataModule1.CDSCADPRODENTR_CEST.AsString;
  470.   DataModule2.CDSITENSPVDAITENS_NCM.AsString := DataModule1.CDSCADPRODENTR_NCM.AsString;
  471.   DataModule2.CDSITENSPVDATRANSF_BOOL.AsInteger := 0;
  472.   { Limpo o editCodebar }
  473.   EDCodebar.Clear;
  474.   { Volto o foco para o EditCodebar }
  475.   EDCodebar.SetFocus;
  476.   { Grva o resultado na tabela da venda }
  477.   DataModule2.CDSPREVDA.Post;
  478.   DataModule2.CDSPREVDA.ApplyUpdates(0);
  479.   DataModule2.CDSPREVDA.Refresh;
  480.   DataModule2.CDSPREVDA.Locate('VENDA_NUMERO', DataModule2.INCQPREVDA.FieldByName('gen_id').AsInteger, []);
  481.   { Gravo o resultado na tabela itens da venda para poder mostrar commitar no banco }
  482.   DataModule2.CDSITENSPVDA.Post;
  483.   DataModule2.CDSITENSPVDA.ApplyUpdates(0);
  484.   DataModule2.CDSITENSPVDA.Refresh;
  485.   Form1.Edtqx.Clear;
  486.   Form1.Edtqx.Text := '1';
  487.   Form1.DBgrid2.Columns.Items[0].Width := 1;
  488.   Form1.DBgrid2.Columns.Items[1].Width := Shape3.Width;
  489.   Form1.DBgrid2.Columns.Items[2].Width := Shape12.Width;
  490.   Form1.DBgrid2.Columns.Items[3].Width := Shape5.Width;
  491.   Form1.DBgrid2.Columns.Items[4].Width := Shape13.Width;
  492.   Form1.DBgrid2.Columns.Items[5].Width := Shape6.Width;
  493.   Form1.DBgrid2.Columns.Items[6].Width := Shape4.Width;
  494.   Form1.DBgrid2.Columns.Items[7].Width := Shape7.Width;
  495.   Form9.Close;
  496. end;
  497.  
  498. procedure TForm1.vendapelapesquisa(Sender: TObject);
  499. var
  500.   quantidadevenda: Double;
  501.   vloupeso: string;
  502.   vloupesoCV: currency;
  503.   QutPesavel: currency;
  504.   x: string;
  505. begin
  506.   Panelproibido.Visible := false;
  507.   Timer3.Enabled := false;
  508.   if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 0 then
  509.   begin
  510.     Panelproibido.Visible := false;
  511.   end
  512.   else if DataModule1.CDSCADPRODCAD_VENDAPROIBIDAMEN.AsInteger = 1 then
  513.   begin
  514.     Panelproibido.Visible := true;
  515.     Timer3.Enabled := true;
  516.   end;
  517.  
  518.   quantidadevenda := strtocurr(Form1.Edtqx.Text);
  519.   { Aqui eu inicio uma nova transação com a tabela de itens da venda }
  520.   TDtmItensdaVenda.CDSITENS.Append;
  521.  
  522.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_SITUACAO').AsString :=
  523.   TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString;
  524.   { Aqui eu pego a data e hora da inserção do iten na venda }
  525.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DATAVENDA').AsDateTime := now;
  526.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_HORADAVENDA').AsDateTime := now;
  527.   { Aqui eu pego o número da venda, gerado pelo autoincreento do banco da tabela CDSVENDA }
  528.   TDtmItensdaVenda.CDSITENS.FieldByName('VENDA_NUMERO').AsInteger := strtoint(Form1.edvdanumero.Text);
  529.   { Aqui tragos as informações do iten da tabela CADPROD do Banco do PDV }
  530.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CODBARRAS').AsString   := DataModule1.CDSCADPRODCAD_CEAN13.AsString;
  531.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString := DataModule1.CDSCADPRODCAD_NOMEDOPROD.AsString;
  532.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_IDPRODUTO').AsInteger  := DataModule1.CDSCADPRODIDRELPROD.AsInteger;  { Alimenta aqui os impostos }
  533.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_ICMSCST').AsString   := DataModule1.CDSCADPRODSAID_CST.AsString;
  534.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_ICMSPICMS').AsFloat  := DataModule1.CDSCADPRODSAID_TRIBUTACAOALIQ.AsFloat;
  535.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_TRIBDESC').AsString  := DataModule1.CDSCADPRODSAID_TRIBUTACAO.AsString;
  536.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CFOP').AsString := DataModule1.CDSCADPRODSAID_CFOP.AsString;
  537.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_NCM').AsString := DataModule1.CDSCADPRODENTR_NCM.AsString;
  538.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CEST').AsString := DataModule1.CDSCADPRODENTR_CEST.AsString;
  539.   TDtmItensdaVenda.CDSITENS.FieldByName('MARCA').AsString := DataModule1.CDSCADPRODCAD_MARCACOMERCIAL.AsString;
  540.   TDtmItensdaVenda.CDSITENS.FieldByName('GRUPO').AsString := DataModule1.CDSCADPRODCAD_GRUPODOPROD.AsString;
  541.   TDtmItensdaVenda.CDSITENS.FieldByName('SUBGRUPO').AsString := DataModule1.CDSCADPRODCAD_SUBGRUPODOPROD.AsString;
  542.   TDtmItensdaVenda.CDSITENS.FieldByName('idmarca').AsInteger := DataModule1.CDSCADPRODCAD_IDMARCACOMERCIAL.AsInteger;
  543.   TDtmItensdaVenda.CDSITENS.FieldByName('IDGRUPO').AsInteger := DataModule1.CDSCADPRODCAD_IDGRUPODOPROD.AsInteger;
  544.   TDtmItensdaVenda.CDSITENS.FieldByName('IDSUBGRUPO').AsInteger := DataModule1.CDSCADPRODCAD_IDSUBGRUPODOPROD.AsInteger;
  545.   TDtmItensdaVenda.CDSITENS.FieldByName('IDFORNECEDOR').AsInteger := DataModule1.CDSCADPRODCAD_IDFORNECEDORPROD.AsInteger;
  546.   TDtmItensdaVenda.CDSITENS.FieldByName('FORNECEDOR').AsString := DataModule1.CDSCADPRODCAD_FORNECEDORDOPROD.AsString;
  547.   TDtmItensdaVenda.CDSITENS.FieldByName('PDV_NUMERO').AsInteger :=
  548.   strtoint(TDtmVendas.CDSVENDA.FieldByName('CAIXA_NUMERO').AsString);
  549.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat := quantidadevenda;
  550.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsCurrency := DataModule1.CDSCADPRODSAID_VLVENDA.AsCurrency;
  551.   if TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsCurrency <= 0 then
  552.   begin
  553.     Application.CreateForm(TForm19, Form19);
  554.     Form19.Label2.Caption := TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString;
  555.     Form19.showModal;
  556.   end;
  557.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_TOTAL').AsFloat :=
  558.     (TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat *
  559.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsFloat);
  560.   { Valor de descontos no iten }
  561.   TDtmItensdaVenda.CDSITENS.FieldByName('itens_descvl').AsFloat := 0;
  562.   TDtmItensdaVenda.CDSITENS.FieldByName('itens_descpercent').AsFloat := 0;
  563.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_UN').AsString := DataModule1.CDSCADPRODSAID_UNVENDA.AsString;
  564.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_POSICAOITEN').AsInteger := Form1.DBGrid1.RowCount - 1;
  565.   { Posiciona a tabela de vendas em edição }
  566.  //====================================================================================================================
  567.  TDtmVendas.CDSVENDA.Edit;
  568.  
  569.    TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORVENDA').AsCurrency :=
  570.   AcbrUtil.RoundABNT(TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORVENDA').AsCurrency +
  571.   (TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsCurrency
  572.    * TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsCurrency),2);
  573.   { aqui eu conto os registros inseridos na tabela de itens e adiciono +1 }
  574.  
  575.   { Alimento aqui o valor total da venda na tabela CDSVENDA }
  576.   TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsFloat :=
  577.    AcbrUtil.RoundABNT(TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORVENDA').AsCurrency +
  578.    TDtmVendas.CDSVENDA.FieldByName('VENDA_ACRESCIMOS').AsCurrency -
  579.     TDtmVendas.CDSVENDA.FieldByName('VENDA_DESCONTOS').AsCurrency,2);
  580.   { Alimento aqui o valor da somatoria dos itens inseridos na venda somatoria }
  581.  
  582.   if pos(',', Floattostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value)) > 0 then
  583.   begin
  584.     TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger :=
  585.     TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger + 1;
  586.   end;
  587.   if pos(',', Floattostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value)) <= 0 then
  588.   begin
  589.     TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger := TDtmVendas.CDSVENDA.FieldByName('VENDA_NITENS').AsInteger +
  590.       Round(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').Value);
  591.   end;
  592.   { Cest/Nmc }
  593.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CST').AsString := DataModule1.CDSCADPRODENTR_CEST.AsString;
  594.   TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_NCM').AsString := DataModule1.CDSCADPRODENTR_NCM.AsString;
  595.   TDtmItensdaVenda.CDSITENS.FieldByName('TRANSF_BOOL').AsInteger := 0;
  596.   TDtmItensdaVenda.CDSITENS.FieldByName('IMPOSTO_TRIBDESC').AsString := DataModule1.CDSCADPRODSAID_TRIBUTACAO.AsString;
  597.   TDtmItensdaVenda.CDSITENS.FieldByName('IBPX_TFNACIONAL').AsCurrency := DataModule1.CDSCADPROD.FieldByName('IBPX_TFNACIONAL').AsCurrency;
  598.   TDtmItensdaVenda.CDSITENS.FieldByName('IBPX_TFIMPORTADO').AsCurrency := DataModule1.CDSCADPROD.FieldByName('IBPX_TFIMPORTADO').AsCurrency;
  599.   TDtmItensdaVenda.CDSITENS.FieldByName('IBPTX_ESTADUAL').AsCurrency := DataModule1.CDSCADPROD.FieldByName('IBPTX_ESTADUAL').AsCurrency;
  600.   TDtmItensdaVenda.CDSITENS.FieldByName('IBPTX_MUINICIPAL').AsCurrency := DataModule1.CDSCADPROD.FieldByName('IBPTX_MUINICIPAL').AsCurrency;
  601.   { Limpo o editCodebar }
  602.   Form1.EDCodebar.Clear;
  603.   { Volto o foco para o EditCodebar }
  604.   Form1.EDCodebar.SetFocus;
  605.   { Grava o resultado na tabela da venda }
  606.   TDtmVendas.CDSVENDA.Post;
  607.  //====================================================================================================================
  608.   TDtmVendas.CDSVENDA.Locate('VENDA_NUMERO', DataModule1.INCQVENDA.FieldByName('gen_id').AsInteger, []);
  609.   { Gravo o resultado na tabela itens da venda para poder mostrar commitar no banco }
  610.   TDtmItensdaVenda.CDSITENS.Post;
  611.   //===================================================================================================================
  612.  
  613.   FactVendas.Metodosdavenda.TMemoVendas.Add(inttostr(TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_POSICAOITEN').AsInteger) + ' ' +
  614.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_CODBARRAS').AsString + ' ' +
  615.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_DESCPRODUTO').AsString + ' ' +
  616.     FormatFloat('##,###,##0.00', TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_QUANTIDADE').AsFloat) + ' ' +
  617.     TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_UN').AsString + ' X ' +
  618.     FormatFloat('##,###,##0.00', TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_VLUN').AsFloat)
  619.     + ' ' + FormatFloat('##,###,##0.00', TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_TOTAL').AsFloat));
  620.  
  621.  
  622.  
  623.   Form1.Edtqx.Clear;
  624.   Form1.Edtqx.Text := '1';
  625.   Form9.Close;
  626.  
  627. end;
  628.  
  629. function TForm1.VideoAdjust(Form: TForm):Boolean;
  630. const
  631.   ScreenWidth: LongInt = 1010; // número de pontos usado no desenvolvimento
  632.   ScreenHeight: LongInt = 698; // número de pontos usado no desenvolvimento
  633. var
  634.   i: integer;
  635.   NewFormWidth, OldFormWidth: integer;
  636. begin
  637.  
  638. if FFormAjustado = False then
  639.  begin
  640.   with Form do
  641.   begin
  642.     Result:= False;
  643.     FFormAjustado:= Result;
  644.     if Screen.Width = ScreenWidth then
  645.     Exit;
  646.     Scaled := true;
  647.     Height := LongInt(Height) * LongInt(Screen.Height) DIV ScreenHeight;
  648.     Width := LongInt(Width) * LongInt(Screen.Width) DIV ScreenWidth;
  649.     ScaleBy(Screen.Width, ScreenWidth);
  650.  
  651.     // O tamanho da fonte dos objetos que tem essa propriedade deverá ser ajustado
  652.     // Para usar GetPropInfo, deverá ser adicionado Uses TypInfo.
  653.     for i := ComponentCount - 1 downto 0 do
  654.       with components[i] do
  655.         if GetPropInfo(ClassInfo, 'font') <> nil then
  656.           Font.Size := (NewFormWidth DIV OldFormWidth) * Font.Size;
  657.           Result:= true;
  658.           FFormAjustado:= result;
  659.   end; // with
  660.  
  661.  end;
  662. end;
  663.  
  664. procedure TForm1.A1Click(Sender: TObject);
  665. begin
  666.   Application.CreateForm(TForm4, Form4);
  667.   Form4.FTipoPermissao := Aberturadegaveta;
  668.   Form4.showModal;
  669. end;
  670.  
  671. procedure TForm1.A2Click(Sender: TObject);
  672. begin
  673.    if TLoadParamsSystem.aTLoadParamSystDataModel.DELIV_ABRECNSCLI <> 0 then begin
  674.    if FrmPesquisaCodeBar = nil then begin
  675.       FrmPesquisaCodeBar:= TFrmPesquisaCodeBar.Create(Application);
  676.    end;
  677.       FrmPesquisaCodeBar.showModal;
  678.   end;
  679. end;
  680.  
  681. procedure TForm1.AbriravendaClick(Sender: TObject);
  682. begin
  683.    try
  684.     FactVendas.Venda.StartVenda(TvarauxVendas1.ModoOperacao,Label22.caption);
  685.    finally
  686.     FactVendas.Venda.disposeOf;
  687.    end;
  688. end;
  689.  
  690. procedure TForm1.ACBrBAL1LePeso(Peso: Double; Resposta: AnsiString);
  691. begin
  692.   TDtmItensdaVenda.AlimentaPesolido( Peso,ACBrBAL1 );
  693. end;
  694.  
  695.  
  696. procedure TForm1.ACBrSAT1EnviarDadosVenda(ADados: string; var ARetorno: string);
  697. begin
  698.   Form1.Label22.Caption := UTF8Decode(TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.Resposta.mensagemRetorno);
  699. end;
  700.  
  701. procedure TForm1.ACBrSAT1GetcodigoDeAtivacao(var Chave: AnsiString);
  702. begin
  703.   Chave := TAcbrSatClassFactory.SatModelEquipdata.aSatModelData.aTSatModelEquipdata.EQUIP_CODATIVSAT;
  704. end;
  705.  
  706. procedure TForm1.ACBrSAT1GetsignAC(var Chave: AnsiString);
  707. begin
  708.   Satassinatura := AnsiString(TAcbrSatClassFactory.SatModelEquipdata.aSatModelData.aTSatModelEquipdata.SOFTH_ASSINATURASW);
  709.   Chave := Satassinatura;
  710. end;
  711.  
  712. procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
  713. begin
  714.   if pos('997', E.Message) <> 0 then
  715.   begin
  716.     Label22.Caption := 'Ecf em erro ou desligado,verifique';
  717.     atividade(Sender);
  718.   end;
  719.  
  720.   if pos('ACK', E.Message) <> 0 then
  721.   begin
  722.     Label22.Caption := 'Ecf em erro ou desligado,verifique';
  723.     atividade(Sender);
  724.   end;
  725.  
  726.   if pos('SAT', E.Message) <> 0 then
  727.   begin
  728.     Label22.Caption :=TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.RespostaComando;
  729.     atividade(Sender);
  730.   end;
  731.  
  732.   if pos('USB', E.Message) <> 0 then
  733.   begin
  734.     Label22.Caption := TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.RespostaComando;
  735.     atividade(Sender);
  736.   end;
  737. end;
  738.  
  739. procedure TForm1.AtualizaBase1Click(Sender: TObject);
  740.  var Factcarga:iFactCargatabelas; carga: TCargaTabelas;
  741. begin
  742.  try
  743.   try
  744.     DtmConexao.TDtmConexao.InvokeTlCon;
  745.   except
  746.     on e: exception do begin
  747.        label22.Caption:= DtmConexao.TDtmConexao.aMessage;
  748.     end;
  749.   end;
  750.  finally
  751.       //atualizatabela(sender);
  752.    DataModule1.CDSCADPROD.ResourceOptions.SilentMode := False;
  753.  
  754.    try
  755.  
  756.     carga := TCargaTabelas.Create(nil,Gauge1,DataModule1.CDSUSER,
  757.              DataModule2.cdscadprod,DataModule1.CDSCADPROD,DataModule2.CDSPROVUSER,Label22);
  758.    finally
  759. //    Factcarga:= TFacCargaTabelas.create;
  760. //    FactCarga.CargaTabelasModel;
  761.   end;
  762.   end;
  763.  end;
  764.  
  765. procedure TForm1.B1Click(Sender: TObject);
  766. begin
  767.  
  768.   if TvarauxVendas1.ModoOperacao = ModpreVenda then
  769.   begin
  770.  
  771.     If MessageDlg('Função disponível somente em modo vendas.', mterror, [mbOk], 0) = mrOk then
  772.     begin
  773.  
  774.     end;
  775.   end
  776.   else if TvarauxVendas1.ModoOperacao = ModVenda then
  777.   begin
  778.     if TvarauxVendas1.StatusVenda = sitVendendo then begin
  779.        try
  780.          Ativabalanca(Sender);
  781.        Except
  782.           MessageDlg('Sem Balança conectada', mterror, [mbOk], 0);
  783.        end;
  784.     end else
  785.     MessageDlg('Primeiro a venda.', mterror, [mbOk], 0);
  786.   end;
  787.  
  788. end;
  789.  
  790. procedure TForm1.BeforeDestruction;
  791. begin
  792.  
  793.   inherited BeforeDestruction;
  794.   List.Objeto.ParametrosImpressora.DisposeOf;
  795. end;
  796.  
  797. procedure TForm1.CaixaF11Click(Sender: TObject);
  798. begin
  799.   Timer2.Enabled := false;
  800.   Label22.Visible := true;
  801.   if TvarauxVendas1.ModoOperacao = Modprevenda then begin
  802.      MessageDlg('Função disponível somente em modo vendas.', mterror, [mbOk], 0);
  803.   end else
  804.   if TvarauxVendas1.ModoOperacao = ModVenda then
  805.   begin
  806.     if TvarauxVendas1.StatusVenda = sitOcioso then begin
  807.      Application.CreateForm(TForm4, Form4);
  808.      Form4.FTipoPermissao := AcessoCaixa;
  809. //     List.Objeto.LoginAcesso.Acessodest:= ftAcessoCaixa ;
  810.      Form4.showModal;
  811.     end else
  812.      MessageDlg('Primeiro finalize a operação de venda em aberto!', mterror, [mbOk], 0);
  813.   end;
  814. end;
  815.  
  816. procedure TForm1.CancelaravendaClick(Sender: TObject);
  817. var
  818.   buttonSelected: integer;
  819. begin
  820.   Timer2.Enabled := false;
  821.   Label22.Visible := true;
  822.   if TvarauxVendas1.ModoOperacao = ModVenda then
  823.   begin
  824.     if TvarauxVendas1.StatusVenda = sitVendendo then
  825.     begin
  826.       buttonSelected := MessageDlg('Deseja cancelar a venda?', mterror, mbOKCancel, 0);
  827.       if buttonSelected = mrOk then
  828.       begin
  829.         Application.CreateForm(TForm4, Form4);
  830.         Form4.FTipoPermissao := CancelamentodaVenda;
  831.        try
  832.          Form4.showModal;
  833.        finally
  834.          Form4.FreeOnRelease;
  835.        end;
  836.  
  837.       end;
  838.       if buttonSelected = mrCancel then
  839.       begin
  840.         mensagemlb22statusatual(Sender);
  841.       end;
  842.     end
  843.     else if TvarauxVendas1.StatusVenda = sitOcioso then
  844.     begin
  845.       ShowMessage('PRIMEIRO ABRA UMA VENDA!');
  846.     end;
  847.   end
  848.   else
  849.     { aqui inicia o modo prevenda }
  850.     if TvarauxVendas1.ModoOperacao = ModPreVenda then
  851.     begin
  852.       if TvarauxVendas1.StatusVenda = sitVendendo then
  853.       begin
  854.         buttonSelected := MessageDlg('Deseja cancelar a pre-venda?', mterror, mbOKCancel, 0);
  855.         if buttonSelected = mrOk then
  856.         begin
  857.           { Localizar os itens e apagar a prevenda }
  858.           DataModule2.IBCONSULTA.Close;
  859.           DataModule2.IBCONSULTA.Open;
  860.  
  861.           DataModule2.IBQuery1.SQL.Clear;
  862.           DataModule2.IBQuery1.SQL.Add
  863.             ('delete from PREVENDA_ITENS where VENDA_NUMERO = :PvdNumero and PDV_NUMERO = :Pnumpdv');
  864.           DataModule2.IBQuery1.ParamByName('PvdNumero').AsString := DataModule2.CDSPREVDAVENDA_NUMERO.AsString;
  865.           DataModule2.IBQuery1.ParamByName('Pnumpdv').AsString := DataModule2.CDSPREVDACAIXA_NUMERO.AsString;
  866.           DataModule2.IBQuery1.ExecSQL;
  867.           DataModule2.IBTransaction1.CommitRetaining;
  868.  
  869.           DataModule2.IBQuery1.Close;
  870.           DataModule2.IBCONSULTA.Close;
  871.  
  872.           DataModule2.CDSITENSPVDA.Close;
  873.           DataModule2.CDSPREVDA.Delete;
  874.           DataModule2.CDSPREVDA.ApplyUpdates(0);
  875.           DataModule2.CDSPREVDA.Refresh;
  876.  
  877.           DataModule2.CDSPREVDA.Close;
  878.  
  879.           Form1.edvdanumero.Clear;
  880.           Form1.edSituacao.Clear;
  881.           Form1.EDCodebar.SetFocus;
  882.           TVarAuxvendas.StatusVenda := SitOcioso;
  883.  
  884.           Form1.Label22.Caption := 'PRE-VENDA LIVRE';
  885.  
  886.         end;
  887.  
  888.       end else
  889.       if TvarauxVendas1.StatusVenda = sitOcioso then    begin
  890.         ShowMessage('Primeiro abra uma venda!');
  891.       end;
  892.     end;
  893.  
  894. end;
  895.  
  896. procedure TForm1.D1Click(Sender: TObject);
  897. begin
  898.   Application.CreateForm(TForm6, Form6);
  899.   Form6.showModal;
  900. end;
  901.  
  902. procedure TForm1.D2Click(Sender: TObject);
  903. begin
  904.    if TvarauxVendas1.StatusVenda = sitVendendo then begin
  905.     Application.CreateForm(TForm4, Form4);
  906.     //List.Objeto.LoginAcesso.Acessodest := ftAplicaDescontoTotal;
  907.     Form4.FTipoPermissao := AplicaDescontoTotalizador;
  908.     try
  909.       Form4.showModal;
  910.     finally
  911.       Form4.FreeOnRelease;
  912.     end;
  913. //    { Volto o foco para o EditCodebar }
  914.    end;
  915. end;
  916.  
  917. procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
  918. begin
  919.   { abrir a tela de descontos }
  920.   if (Key = #68) or (Key = #100) then
  921.   begin
  922.     Application.CreateForm(TForm4, Form4);
  923. //    List.Objeto.LoginAcesso.Acessodest := ftAplicarDescontos;
  924.     Form4.FTipoPermissao := Aplicardescontos;
  925.     TDtmItensdaVenda.CDSITENS.Refresh;
  926.     try
  927.      Form4.showModal;
  928.     finally
  929.      Form4.Close;
  930.      Form4.FreeOnRelease;
  931.     end;
  932.   end;
  933.   if Key = #9 then begin
  934.     EdCodeBar.setfocus;
  935.   end;
  936. end;
  937.  
  938. procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  939. begin
  940.  
  941.   if Key = VK_DELETE then
  942.   begin
  943.  
  944.     if TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_SITUACAO').AsString = 'DL' then
  945.     begin
  946.       Timer2.Enabled := true;
  947.       Label22.Caption := 'Produto ja cancelado da venda';
  948.       EDCodebar.SetFocus;
  949.     end
  950.     else if TDtmItensdaVenda.CDSITENS.FieldByName('ITENS_SITUACAO').AsString <> 'DL' then
  951.     begin
  952.       Application.CreateForm(TForm4, Form4);
  953. //      List.Objeto.LoginAcesso.Acessodest:= ftCancelaItensdaVenda;
  954.         Form4.FTipoPermissao := CancelaItemdavenda;
  955.       try
  956.         Form4.showModal;
  957.       finally
  958.         Form4.DisposeOf;
  959.       end;
  960.       EDCodebar.SetFocus;
  961.     end;
  962.   end;
  963. end;
  964.  
  965. procedure TForm1.DBgrid2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  966. begin
  967.   if Key = VK_DELETE then
  968.   begin
  969.     cancelaitenprevenda(Sender);
  970.   end;
  971. end;
  972.  
  973. procedure TForm1.EDCodebarEnter(Sender: TObject);
  974. begin
  975.   if (TopCaixa.TOperacionalCaixa.Caixa.Caixa.FieldByName('CAIXA_SITUACAO').AsString = 'FECHADO') or
  976.   (TopCaixa.TOperacionalCaixa.Caixa.Caixa.FieldByName('CAIXA_SITUACAO').AsString = '')
  977.   then
  978.   begin
  979.     Label22.Caption := 'CAIXA FECHADO';
  980.   end
  981.   else if (TopCaixa.TOperacionalCaixa.Caixa.Caixa.FieldByName('CAIXA_SITUACAO').AsString = 'ABERTO') then
  982.   begin
  983.     Label22.Caption := 'DIGITE OU PASSE O CODIGO DE BARRAS DO PRODUTO NA LEITORA.';
  984.     EDCodebar.Clear;
  985.   end
  986.   else
  987.  
  988. end;
  989.  
  990. procedure TForm1.EDCodebarExit(Sender: TObject);
  991. begin
  992.   TEdit(EdCodebar).Clear;
  993. end;
  994.  
  995. function retirarZeros(texto: string): string;
  996. begin
  997.   Result := texto;
  998.   while (pos('0', Result) = 1) do
  999.   begin
  1000.     Result := Copy(Result, 2, length(Result));
  1001.   end;
  1002. end;
  1003.  
  1004. procedure TForm1.EDCodebarKeyPress(Sender: TObject; var Key: Char);
  1005. var  i: integer; novastr, strxemx: String; strcodbar: string;
  1006.   codebal: string; vloupeso: string; vloupesoCV: currency;  QutPesavel: currency;
  1007.   x: string;
  1008. begin
  1009.   if TvarauxVendas1.ModoOperacao = ModVenda then
  1010.   begin
  1011.     if NOT(Key IN ['0' .. '9', '-', #13, #68, #100, #77, #109]) then
  1012.     begin
  1013.       Key := #0;
  1014.     end;
  1015.     if Key = #13 then
  1016.     begin
  1017.        FCodeBar := EdCodeBar.Text;
  1018.  
  1019.        TDtmItensdaVenda.SituacaoLeituraBalanca := SemLeitura;
  1020.        TDtmItensdaVenda.Formataquantidadestr(Edtqx.Text);
  1021.        TDtmItensdaVenda.Gridtocontrol := DBGrid1;
  1022.        TDtmItensdaVenda.RetornaGenIdVenda(DataModule1.INCQVENDA);
  1023.        TDtmItensdaVenda.EdCodeBartocontrol := EdCodeBar;
  1024.        TDtmItensdaVenda.Labeltocontrol := Label22;
  1025.  
  1026.        TDtmItensdaVenda.Insereitensdavenda( TDtmItensdaVenda.CDSITENS,DataModule1.CDSCADPROD,TDtmVendas.CDSVENDA
  1027.        ,FCodeBar,Panelproibido,ACBrBAL1,DataModule1.CDSBAL );
  1028.        Label22.caption := TDtmItensdaVenda.MessageDisplay;
  1029.  
  1030.        EDCodebar.SelectAll;
  1031.        EDCodebar.ClearSelection;
  1032.        Edtqx.Clear;
  1033.        Edtqx.Text := '1';
  1034.        DBGrid1.Columns.Items[0].Width := 1;
  1035.        DBGrid1.Columns.Items[1].Width := Shape3.Width;
  1036.        DBGrid1.Columns.Items[2].Width := Shape12.Width;
  1037.        DBGrid1.Columns.Items[3].Width := Shape5.Width;
  1038.        DBGrid1.Columns.Items[4].Width := Shape13.Width;
  1039.        DBGrid1.Columns.Items[5].Width := Shape6.Width;
  1040.        DBGrid1.Columns.Items[6].Width := Shape4.Width;
  1041.        DBGrid1.Columns.Items[7].Width := Shape7.Width;
  1042.     end else
  1043.     if (Key = #77) or (Key = #109) then
  1044.     begin
  1045.       { Limpo o editCodebar }
  1046.       EDCodebar.Clear;
  1047.       { Volto o foco para o EditCodebar }
  1048.       EDCodebar.SetFocus;
  1049.  
  1050.       for i := 0 to MainMenu1.Items.Count - 1 do begin
  1051.         if MainMenu1.Items[i].Visible = true then
  1052.         begin
  1053.           MainMenu1.Items[i].Visible := false;
  1054.         end
  1055.         else
  1056.           MainMenu1.Items[i].Visible := true;
  1057.  
  1058.       case MainMenu1.Items[i].Visible of
  1059.         true: EDCodebar.Clear;
  1060.         false:EDCodebar.Clear;
  1061.       end;
  1062.      end;
  1063.  
  1064.     end;
  1065.     { abrir a tela de descontos }
  1066.     if (Key = #68) or (Key = #100) then
  1067.     begin
  1068.       if TvarauxVendas1.StatusVenda = sitOcioso then
  1069.       begin
  1070.  
  1071.       end
  1072.       else if TvarauxVendas1.StatusVenda = sitVendendo then
  1073.       begin
  1074.         case TvarauxVendas1.StatusVenda of
  1075.           Sitvendendo : EDCodebar.Clear;
  1076.           SitOcioso:    EDCodebar.Clear;
  1077.         end;
  1078.         DBGrid1.SetFocus;
  1079.         EDCodebar.Clear;
  1080.         Label22.Caption := 'Selecione o produto para aplicar descontos!';
  1081.       end;
  1082.     end;
  1083.   end;
  1084.  
  1085.  
  1086. end;
  1087.  
  1088. procedure TForm1.EDCodebarKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  1089. begin
  1090.   if Key = VK_MULTIPLY then
  1091.   begin
  1092.     Form1.Edtqx.SetFocus;
  1093.   end;
  1094.   if Key = VK_DELETE then
  1095.   begin
  1096.     if TvarauxVendas1.ModoOperacao = ModVenda then
  1097.     begin
  1098.       Form1.DBGrid1.SetFocus;
  1099.       Label22.Caption := 'Selecione o produto á ser excluído!';
  1100.     end
  1101.     else if TvarauxVendas1.ModoOperacao = ModPreVenda then
  1102.     begin
  1103.       Form1.DBgrid2.SetFocus;
  1104.       Label22.Caption := 'Selecione o produto á ser excluído!';
  1105.     end;
  1106.  
  1107.   end;
  1108.   if Key = VK_BACK then
  1109.   begin
  1110.     EDCodebar.Clear;
  1111.   end;
  1112.  
  1113. end;
  1114.  
  1115. procedure TForm1.EdtqxKeyPress(Sender: TObject; var Key: Char);
  1116. begin
  1117.     if not (key in ['0'..'9',',',#8,#13]) then begin
  1118.     key:=#0;
  1119.     end;
  1120.   if Key = #13 then
  1121.   begin
  1122.     EDCodebar.SetFocus;
  1123.   end;
  1124. end;
  1125.  
  1126. procedure TForm1.ExecutaLeituraxClick(Sender: TObject);
  1127. begin
  1128.   Application.CreateForm(TForm4, Form4);
  1129.   acessotf := 3;   // impressao leitura x
  1130.   Form4.showModal; // Chamar a senha gerencial
  1131. end;
  1132.  
  1133. procedure TForm1.FecharavendaClick(Sender: TObject);
  1134. begin
  1135.  
  1136.   Timer2.Enabled := false;
  1137.   // Form6.showModal;
  1138.   if TvarauxVendas1.ModoOperacao = ModVenda then
  1139.   begin
  1140.     if TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString = 'FECHADA' { ABERTA/FECHADA/CANCELADA/ESTORNADA/PENDENTE } then
  1141.     begin
  1142.       ShowMessage('Venda já fechada, inicie uma nova venda');
  1143.     end
  1144.     else if TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString = 'ABERTA' { ABERTA/FECHADA/CANCELADA/ESTORNADA/PENDENTE } then
  1145.     begin
  1146.       if not TDtmItensdaVenda.CDSITENS.IsEmpty then
  1147.       begin
  1148.         if TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsCurrency > 0 then
  1149.         begin
  1150.  
  1151.           Form1.VENDA_NUMERO := strtoint(TDtmVendas.CDSVENDA.FieldByName('VENDA_NUMERO').AsString);
  1152.           Label22.Caption := 'Recebendo a venda';
  1153.            FrmEscolhaPagamento:= TFrmEscolhaPagamento.Create(Application);
  1154.            FrmEscolhaPagamento.ShowModal;
  1155.         end
  1156.         else if TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsCurrency <= 0 then
  1157.         begin
  1158.           ShowMessage('O valor não pode ser 0,00 ou o numero de itens não pode ser zero');
  1159.         end;
  1160.       end
  1161.       else if TDtmItensdaVenda.CDSITENS.IsEmpty then
  1162.       begin
  1163.         ShowMessage('O valor não pode ser 0,00 ou o numero de itens não pode ser zero');
  1164.       end;
  1165.     end;
  1166.     if TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString = 'CANCELADA' { ABERTA/FECHADA/CANCELADA/ESTORNADA/PENDENTE } then
  1167.     begin
  1168.       ShowMessage('Venda cancelada, inicie uma nova venda');
  1169.     end;
  1170.     if TDtmVendas.CDSVENDA.FieldByName('VENDA_SITUACAO').AsString = 'ESTORNADA' { ABERTA/FECHADA/CANCELADA/ESTORNADA/PENDENTE } then
  1171.     begin
  1172.       ShowMessage('Venda ESTORNADA, inicie uma nova venda');
  1173.     end;
  1174.   end
  1175.   else
  1176.  
  1177.     if TvarauxVendas1.ModoOperacao = ModpreVenda then
  1178.   begin
  1179.     if DataModule1.CDSCONFSISTEMAMONITOR_CONECTED.AsString = 'TRUE' then
  1180.     begin
  1181.  
  1182.       if DataModule2.CDSPREVDAVENDA_VALORTOTAL.AsCurrency > 0 then
  1183.       begin
  1184.  
  1185.         List.HardwareColecoes.H_AcbrPosPrinter.Zerar; { Volto a impressora para seu estado 0 }
  1186.  
  1187.         DataModule2.CDSITENSPVDA.First;
  1188.         while not DataModule2.CDSITENSPVDA.Eof do
  1189.         begin
  1190.  
  1191.           FactVendas.Metodosdavenda.TMemoVendas.Add(inttostr(DataModule2.CDSITENSPVDAITENS_POSICAOITEN.AsInteger) + ' ' +
  1192.             DataModule2.CDSITENSPVDAITENS_CODBARRAS.AsString + ' ' + DataModule2.CDSITENSPVDAITENS_DESCPRODUTO.AsString
  1193.             + ' ' + FormatFloat('##,###,##0.00', DataModule2.CDSITENSPVDAITENS_QUANTIDADE.AsFloat) + ' ' +
  1194.             DataModule2.CDSITENSPVDAITENS_UN.AsString + ' X ' + FormatFloat('##,###,##0.00',
  1195.             DataModule2.CDSITENSPVDAITENS_VLUN.AsFloat) + ' ' + FormatFloat('##,###,##0.00',
  1196.             DataModule2.CDSITENSPVDAITENS_TOTAL.AsFloat));
  1197.  
  1198.           DataModule2.CDSITENSPVDA.Next;
  1199.         end;
  1200.  
  1201.         FactVendas.Metodosdavenda.TMemoVendas.Add('');
  1202.         FactVendas.Metodosdavenda.TMemoVendas.Add('</e></fn></fb>');
  1203.         FactVendas.Metodosdavenda.TMemoVendas.Add(' ');
  1204.         FactVendas.Metodosdavenda.TMemoVendas.Add('QTD ITENS   =  ' + FormatFloat('##,###,##0.00',
  1205.           DataModule2.CDSPREVDAVENDA_NITENS.AsFloat));
  1206.         FactVendas.Metodosdavenda.TMemoVendas.Add(' ');
  1207.         FactVendas.Metodosdavenda.TMemoVendas.Add(FrmEscolhaPagamento.Memo1.Text);
  1208.         FactVendas.Metodosdavenda.TMemoVendas.Add('<n><e>TOTAL R$ ' + FormatFloat('##,###,##0.00',
  1209.           DataModule2.CDSPREVDAVENDA_VALORTOTAL.AsFloat) + ' </e></n>');
  1210.         FactVendas.Metodosdavenda.TMemoVendas.Add('</lf>  ');
  1211.         FactVendas.Metodosdavenda.TMemoVendas.Add('<ean13>' + Form1.edvdanumero.Text + ' </ean13>  ');
  1212.         FactVendas.Metodosdavenda.TMemoVendas.Add('</fn><n><ce> PRE-VENDA  ' + Form1.edvdanumero.Text + ' PDV N ' +
  1213.           DataModule2.CDSPREVDACAIXA_NUMERO.AsString + '</ce> </n></fb>');
  1214.  
  1215.         List.HardwareColecoes.H_AcbrPosPrinter.Imprimir(FactVendas.Metodosdavenda.TMemoVendas.Text);
  1216.         List.HardwareColecoes.H_AcbrPosPrinter.ImprimirLinha('</lf>');
  1217.         List.HardwareColecoes.H_AcbrPosPrinter.ImprimirLinha(List.Objeto.ParametrosImpressora.RetornaLista.ObjetoMiscelanias.CORTEPAPEL_STRING);
  1218.  
  1219.         DataModule2.CDSPREVDA.Edit;
  1220.         DataModule2.CDSPREVDAVENDA_SITUACAO.AsString := 'PREVENDA FECHADA';
  1221.         DataModule2.CDSPREVDA.Post;
  1222.         DataModule2.CDSPREVDA.ApplyUpdates(0);
  1223.         DataModule2.CDSPREVDA.Refresh;
  1224.         DataModule2.CDSPREVDA.Close;
  1225.         DataModule2.CDSITENSPVDA.Close;
  1226.         TVarAuxvendas.StatusVenda := SitOcioso;
  1227.         Form1.Label22.Caption := 'CAIXA LIVRE';
  1228.  
  1229.       end
  1230.       else
  1231.  
  1232.         if TDtmVendas.CDSVENDA.FieldByName('VENDA_VALORTOTAL').AsCurrency <= 0 then
  1233.       begin
  1234.         ShowMessage('O valor não pode ser 0,00 ou o numero de itens não pode ser zero');
  1235.  
  1236.       end
  1237.       else if TDtmItensdaVenda.CDSITENS.isEmpty then
  1238.       begin
  1239.         ShowMessage('O valor não pode ser 0,00 ou o numero de itens não pode ser zero');
  1240.       end;
  1241.     end
  1242.     else if DataModule1.CDSCONFSISTEMAMONITOR_CONECTED.AsString = 'FALSE' then
  1243.     begin
  1244.  
  1245.       if MessageDlg('Disponível apenas com servidor on-line, verifique a sua conexao.', mtConfirmation, [mbOk], 0) = mrOk
  1246.       then
  1247.  
  1248.     end;
  1249.   end;
  1250.  
  1251. end;
  1252.  
  1253. procedure TForm1.FormActivate(Sender: TObject);
  1254. var   i: integer; var Inicializa: TInicializacao;
  1255. begin
  1256.  
  1257.   FFormAjustado := VideoAdjust(Form1);
  1258.  end;
  1259.  procedure KillProcess(hWindowHandle: HWND);
  1260.  var
  1261.   hprocessID: integer;
  1262.   processHandle: THandle;
  1263.   DWResult: DWORD;
  1264. begin
  1265.    SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0, SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);
  1266.   if isWindow(hWindowHandle) then
  1267.   begin
  1268.     { Get the process identifier for the window }
  1269.     GetWindowThreadProcessID(hWindowHandle, @hprocessID);
  1270.     if hprocessID <> 0 then
  1271.     begin
  1272.       { Get the process handle }
  1273.       processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION, false, hprocessID);
  1274.       if processHandle <> 0 then
  1275.       begin
  1276.         { Terminate the process }
  1277.         TerminateProcess(processHandle, 0);
  1278.         CloseHandle(processHandle);
  1279.       end;
  1280.     end;
  1281.   end;
  1282. end;
  1283.  
  1284. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  1285. begin
  1286.   if TvarauxVendas1.StatusVenda = sitOcioso then
  1287.   begin
  1288.  
  1289.     {$IFDEF DEBUG}
  1290.     ReportMemoryLeaksOnShutDown := IsDebuggerPresent();
  1291.     {$ENDIF}
  1292.  
  1293.     cdsTemp.Close;
  1294.     FreeAndNil(FcdsTemp);
  1295.     PostMessage(FindWindow(nil, 'Pdvmonitor.exe'), WM_QUIT, 0, 0);
  1296.     { aqui alimenta a atividade do pdv para monitoramento do robo }
  1297.     DataModule1.CDSATIVIDADE.Open;
  1298.     DataModule1.CDSATIVIDADE.Edit;
  1299.     DataModule1.CDSATIVIDADEATIVIDADE.AsString := 'Aplicativo PDV Fechado no terminal';
  1300.     DataModule1.CDSATIVIDADE.Post;
  1301.     DataModule1.CDSATIVIDADE.ApplyUpdates(0);
  1302.     DataModule1.CDSATIVIDADE.Refresh;
  1303.     FatSaldoCliente.RenornaSaldoCliente.Free;
  1304.     TrayIcon1.BalloonHint := 'Aplicativo PDV Fechado no terminal';
  1305.     TrayIcon1.ShowBalloonHint;
  1306.  
  1307.     { fim }
  1308.   end
  1309.   else if TvarauxVendas1.StatusVenda = sitVendendo then
  1310.   begin
  1311.     If MessageDlg('Deseja fechar a aplicação?', mtConfirmation, [mbyes, mbno], 0) = mryes then
  1312.     begin
  1313.       Application.Terminate;
  1314.       ReleaseMutex( HMutex );
  1315.     end
  1316.     else
  1317.       Action := CANONE;
  1318.   end;
  1319.  
  1320.   List.destroilista;
  1321.   ListVendaMisc.destroilistavenda;
  1322.    if assigned ( FactVendas.Venda ) then
  1323.   begin
  1324.     FactVendas.Venda.disposeOf;
  1325.   end;
  1326. end;
  1327.  
  1328. procedure TForm1.FormCreate(Sender: TObject);
  1329.  Var
  1330.  FileName : PChar; Licencas: TVerLicenca;
  1331.  begin
  1332.   FactVendas := TFactVendas.create;
  1333.   Licencas :=  TVerLicenca.create;
  1334.   try
  1335.    Licencas.disparaLicenca;
  1336.   finally
  1337.     Licencas.disposeOf;
  1338.   end;
  1339.   FFormAjustado:= False;
  1340.   Label8.caption:= VersaoExe;
  1341.   FactoryGerarParcelas:= TFactoryGeraParcelas.create;
  1342. end;
  1343.  
  1344. procedure TForm1.FormShow(Sender: TObject);
  1345.  var i: integer;
  1346. begin
  1347.  
  1348.   DataModule1.CDSCONFSISTEMA.Open;
  1349.   DataModule1.CDSCONFSISTEMA.Refresh;
  1350.   Self.DBGrid1.height:= ReturnVideo;
  1351.  
  1352.    begin
  1353.     for i := 0 to MainMenu1.Items.Count - 1 do
  1354.       MainMenu1.Items[i].Visible := not MainMenu1.Items[i].Visible;
  1355.   end;
  1356.  
  1357.   EDCodebar.SetFocus;
  1358.   TvarauxVendas1.StatusBal:= SitSemleituraBal;
  1359.  
  1360.   carregatheme(Sender);
  1361.   brush.Style := bsclear;
  1362.   Form1.Label22.Visible := true;
  1363.    { Carrega um clientdataset vritual para utilização na prevenda }
  1364.       cdsTemp := TClientDataSet.Create(nil);
  1365.       cdsTemp.Close;
  1366.       cdsTemp.FieldDefs.Clear;
  1367.       cdsTemp.FieldDefs.Add('PREVDA_NUMPREVDA', ftInteger);
  1368.       cdsTemp.FieldDefs.Add('PREVDA_NUMPDV', ftInteger);
  1369.       cdsTemp.CreateDataSet;
  1370.       { Fim }
  1371.  
  1372.   DataModule1.CDSCONFSISTEMA.Open;
  1373.   DataModule1.CDSCONFSISTEMA.Refresh;
  1374.  
  1375.   if (( LoadParamsSystemModel.TLoadParamsSystem.aTLoadParamSystDataModel.ModoOpAplication =
  1376.        LoadParamsSystDataModel.tpSat)) then
  1377.   begin
  1378.     try
  1379.       //iniciasat;
  1380.      TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.Extrato := List.Objeto.Central.RetornatpextratoSat;
  1381.      TAcbrSatClassFactory.OnGetStateSat;
  1382.      TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.Inicializar;
  1383.      Label22.Caption := TAcbrSatClassFactory.EstadoOperacional;
  1384.      Label22.Caption := TAcbrSatClassFactory.MensagemRetorno;
  1385.      Label20.Caption := TAcbrSatClassFactory.retConsultaSat;
  1386.      LbFabSn.Caption := TAcbrSatClassFactory.SNaparelho;
  1387.      lsStatuslansat.Caption := TAcbrSatClassFactory.StateLan;
  1388.  
  1389.      if TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.Resposta.codigoDeRetorno = 08000 then
  1390.       begin
  1391.           form1.statussat := 1;
  1392.      end;
  1393.      if TAcbrSatClassFactory.SatModelEquipdata.AcbrSat1.Resposta.codigoDeRetorno <> 08000 then
  1394.      begin
  1395.           form1.statussat := 0;
  1396.       end;
  1397.  
  1398.       Form1.DBEdit1.DataSource := TDtmVendas.DSVENDA;
  1399.       Form1.DBEdit7.DataSource := TDtmVendas.DSVENDA;
  1400.       Form1.DBEdit3.DataSource := TDtmVendas.DSVENDA;
  1401.       Form1.DBEdit2.DataSource := TDtmVendas.DSVENDA;
  1402.       Form1.DBEdit9.DataSource := TDtmVendas.DSVENDA;
  1403.       Form1.DBgrid2.Visible := false;
  1404.       Form1.DBGrid1.Visible := true;
  1405.       Topvendas.TVarAuxvendas.StatusVenda := SitOcioso;
  1406.     except
  1407.       EDCodebar.SetFocus;
  1408.       { ... uso da ProcLib }
  1409.  
  1410.       Topvendas.TVarAuxvendas.StatusVenda := SitOcioso;
  1411.       Label20.Caption := TRetornoMessage.SAT_INIMESAGE[1];
  1412.       TvarauxVendas1.StatusVenda := sitocioso;
  1413.     end;
  1414.  
  1415.   end else
  1416.  if (( LoadParamsSystemModel.TLoadParamsSystem.aTLoadParamSystDataModel.ModoOpAplication =
  1417.        LoadParamsSystDataModel.tpprevenda)) then
  1418.    begin
  1419.     try
  1420.      // carregaparamescpos;
  1421.       Label22.Caption := 'Modo de pré-vendas';
  1422.  
  1423.       Form1.DBEdit1.DataSource := DataModule2.DSPREVDA;
  1424.       Form1.DBEdit7.DataSource := DataModule2.DSPREVDA;
  1425.       Form1.DBEdit3.DataSource := DataModule2.DSPREVDA;
  1426.       Form1.DBEdit2.DataSource := DataModule2.DSPREVDA;
  1427.       Form1.DBEdit9.DataSource := DataModule2.DSPREVDA;
  1428.       Form1.DBgrid2.Visible := true;
  1429.       Form1.DBGrid1.Visible := false;
  1430.       TvarauxVendas1.StatusVenda := sitOcioso;
  1431.  
  1432.     except
  1433.       EDCodebar.SetFocus;
  1434.       { ... uso da ProcLib }
  1435.       Topvendas.TVarAuxvendas.StatusVenda := SitOcioso;
  1436.     end;
  1437.   end;
  1438.  
  1439.   Top := 0;
  1440.   Left := 0;
  1441.   Width := Screen.Width;
  1442.   Height := Screen.Height;
  1443.  
  1444.   EDCodebar.SetFocus;
  1445.   EDCodebar.Clear;
  1446.   Application.Restore;
  1447.   Application.BringToFront;
  1448.  
  1449.  
  1450.   // Verificação do status do caixa
  1451.   // Abre a tabela do caixa e seta o ponteiro para ultima posição
  1452.  
  1453.   Form1.DBGrid1.Columns.Items[0].Width := 1;
  1454.   Form1.DBGrid1.Columns.Items[1].Width := Shape3.Width;
  1455.   Form1.DBGrid1.Columns.Items[2].Width := Shape12.Width;
  1456.   Form1.DBGrid1.Columns.Items[3].Width := Shape5.Width;
  1457.   Form1.DBGrid1.Columns.Items[4].Width := Shape13.Width;
  1458.   Form1.DBGrid1.Columns.Items[5].Width := Shape6.Width;
  1459.   Form1.DBGrid1.Columns.Items[6].Width := Shape4.Width;
  1460.   Form1.DBGrid1.Columns.Items[7].Width := Shape7.Width;
  1461.   Form1.DBGrid1.DataSource := TDtmItensdaVenda.DSItens;
  1462.   TDtmItensdaVenda.CDSITENS.Close;
  1463.  
  1464.   Form1.BorderStyle := bsnone;
  1465.   Timer2.Enabled := false;
  1466.  
  1467.   { ... uso da ProcLib }
  1468.   //exibesitcaixa(Sender);
  1469.   abrepdvmonitor(Sender); // aqui abre o Pdvmonitor e seta para true;
  1470.   Form1.edNumpdv.Text := inttostr(TAcbrSatClassFactory.SatModelEquipdata.aSatModelData.PDV_NCAIXA);
  1471.   { ... fim do uso da ProcLib }
  1472.  
  1473.     DataModule1.IBCONSULTA.Connected := false;
  1474.     DataModule1.IBCONSULTA.DatabaseName := DataModule1.SQLMASTER.Params.Values['Database'];
  1475.     DataModule1.IBCONSULTA.Params.Add('User_Name=SYSDBA');
  1476.     DataModule1.IBCONSULTA.Params.Add('Password=1234');
  1477.     DataModule1.IBCONSULTA.Connected := true;
  1478.  
  1479.   Label22.Caption := TopCaixa.TOperacionalCaixa.Caixa.SituacaoCaixa;
  1480.   Form1.handle;
  1481.   Form1.EDCodebar.SetFocus;
  1482.   SetForegroundWindow(handle);
  1483.  
  1484.   if  Topvendas.TVarAuxvendas.StatusVenda = SitOcioso then
  1485.   begin
  1486.     FactVendas.Venda.VerificaVendaAutomatica;
  1487.   end;
  1488.  
  1489. end;
  1490.  
  1491. procedure TForm1.I1Click(Sender: TObject);
  1492. begin
  1493.   if TvarauxVendas1.ModoOperacao = ModVenda then
  1494.   begin
  1495.     if TvarauxVendas1.StatusVenda = sitOcioso then
  1496.     begin
  1497.       Application.CreateForm(TForm4, Form4);
  1498.       List.Objeto.LoginAcesso.Acessodest:= ftReimprimeSatnaVenda;
  1499.       form4.showModal;
  1500.       // Form17.showModal;
  1501.     end;
  1502.   end
  1503.   else if TvarauxVendas1.ModoOperacao = ModPreVenda then
  1504.   begin
  1505.      MessageDlg('Função disponível somente em modo vendas.', mterror, [mbOk], 0);
  1506.   end;
  1507.  
  1508. end;
  1509.  
  1510. procedure TForm1.ImprimeExtrcliClick(Sender: TObject);
  1511. begin
  1512.   if TvarauxVendas1.ModoOperacao = ModPreVenda then
  1513.   begin
  1514.     MessageDlg('Função disponível somente em modo vendas.', mterror, [mbOk], 0);
  1515.   end;
  1516. end;
  1517.  
  1518. procedure TForm1.L1Click(Sender: TObject);
  1519.   var ListaEntrega: TDeliveryFactoryClass;
  1520. begin
  1521.       ListaEntrega := TDeliveryFactoryClass.Create;
  1522.       ListaEntrega.ListaEntrega;
  1523. end;
  1524.  
  1525. procedure TForm1.LimpaCodeBar;
  1526. begin
  1527.   EDCodebar.ClearSelection;
  1528.   EDCodebar.ClearUndo;
  1529.   EdCodeBar.Text := '';
  1530. end;
  1531.  
  1532. procedure TForm1.M1Click(Sender: TObject);
  1533. begin
  1534.   if TvarauxVendas1.ModoOperacao = ModVenda then
  1535.   begin
  1536.     TvarauxVendas1.ModoOperacao := ModpreVenda;
  1537.     TVarAuxvendas.StatusVenda := SitOcioso
  1538.   end
  1539.   else if TvarauxVendas1.ModoOperacao = ModpreVenda then
  1540.   begin
  1541.     TvarauxVendas1.ModoOperacao := ModVenda;
  1542.   end;
  1543. end;
  1544.  
  1545. procedure TForm1.MainMenu1Change(Sender: TObject; Source: TMenuItem; Rebuild: Boolean);
  1546. begin
  1547.   Timer2.Enabled := false;
  1548.   Label22.Visible := true;
  1549.   Label22.Caption := 'SELECIONADO O MENU DO SISTEMA';
  1550. end;
  1551.  
  1552. procedure TForm1.N1Click(Sender: TObject);
  1553. begin
  1554.   if TvarauxVendas1.ModoOperacao = ModVenda then
  1555.   begin
  1556.     if TvarauxVendas1.StatusVenda = sitVendendo then  begin
  1557.       Application.CreateForm(TForm3, Form3);
  1558.       Form3.showModal;
  1559.     end;
  1560.   end
  1561.   else
  1562.     If MessageDlg('Função disponível somente em modo vendas.', mterror, [mbOk], 0) = mrOk then
  1563.   end;
  1564.  
  1565.  
  1566. procedure TForm1.P1Click(Sender: TObject);
  1567. var FrmPesquisaClientes: TFrmPesquisaClientes;
  1568. var Permissao: TForm4;
  1569. begin
  1570.     FrmPesquisaClientes:= TFrmPesquisaClientes.create(Application);
  1571.     FrmPesquisaClientes.showModal;
  1572. end;
  1573.  
  1574. procedure TForm1.P2Click(Sender: TObject);
  1575. begin
  1576.   if TvarauxVendas1.StatusVenda = sitVendendo then
  1577.   begin
  1578.   end
  1579.   else if TvarauxVendas1.StatusVenda = sitOcioso then
  1580.   begin
  1581.  
  1582.     Application.CreateForm(TForm4, Form4);
  1583.     Form4.FTipoPermissao := PesquisarVendas;
  1584.     try
  1585.      Form4.showModal;
  1586.     finally
  1587.      Form4.Close;
  1588.      Form4.FreeOnRelease;
  1589.     end;
  1590.  
  1591.   end;
  1592. end;
  1593.  
  1594. procedure TForm1.P3Click(Sender: TObject);
  1595. begin
  1596.   if DataModule1.CDSCONFSISTEMAMONITOR_CONECTED.AsString = 'TRUE' then
  1597.   begin
  1598.     Application.CreateForm(TForm21, Form21);
  1599.     Form21.showModal;
  1600.   end
  1601.   else if DataModule1.CDSCONFSISTEMAMONITOR_CONECTED.AsString = 'FALSE' then
  1602.   begin
  1603.     if MessageDlg('Disponível apenas com servidor on-line, verifique a sua conexao.', mtConfirmation, [mbOk], 0) = mrOk
  1604.     then
  1605.   end;
  1606. end;
  1607.  
  1608. procedure TForm1.ProdutosF4Click(Sender: TObject);
  1609. begin
  1610.   Application.CreateForm(TForm9, Form9);
  1611.   Timer2.Enabled := false;
  1612.   Label22.Visible := true;
  1613.   mensagemlb22statusatual(Sender);
  1614.   try
  1615.     Form9.showModal;
  1616.   finally
  1617.     Form9.DisposeOf;
  1618.     EDCodebar.SelectAll;
  1619.     EDCodebar.ClearSelection;
  1620.     Edtqx.Clear;
  1621.     Edtqx.Text := '1';
  1622.   end;
  1623. end;
  1624.  
  1625. procedure TForm1.R1Click(Sender: TObject);
  1626. begin
  1627.      try
  1628.      DtmConexao.TDtmConexao.FDServidorConexao.Connected:= True;
  1629.      finally
  1630.      if DtmConexao.TDtmConexao.FDServidorConexao.Connected = True then
  1631.      begin
  1632.        if TvarauxVendas1.ModoOperacao = ModVenda then
  1633.        begin
  1634.           if TvarauxVendas1.StatusVenda = sitVendendo then
  1635.           begin
  1636.              Form23:= TForm23.Create(Application);
  1637.              Form23.showModal;
  1638.           end;
  1639.        end else
  1640.        MessageDlg(TTipo.tpMsgPDVToString(tpMsgErroRecebeFat), mtConfirmation, [mbOk], 0);
  1641.      end else
  1642.     MessageDlg(TTipo.tpMsgPDVToString(tpMsgSemConexaoServidor), mtConfirmation, [mbOk], 0);
  1643.    end;
  1644. end;
  1645.  
  1646. procedure TForm1.S1Click(Sender: TObject);
  1647. begin
  1648.  if TvarauxVendas1.StatusVenda = sitVendendo then
  1649.   begin
  1650.   FactVendedorSel:= TfactComissao.create;
  1651.   FactVendedorSel.createModel;
  1652.   FactVendedorSel.VendedorselModel.ConstructionQuery;
  1653.    if not FactVendedorSel.VendedorselModel.TBSelVendedor.isempty then
  1654.    begin
  1655.     FactVendedorSel.VendedorselModel.NumerodaVenda:= inttostr( TdtmVendas.NumeroVenda );
  1656.     FactVendedorSel.CreateFrmSelVendedor;
  1657.    end else
  1658.    MessageDlg('Não existem vendedores cadastrados', mterror, [mbOk], 0);
  1659.   end else
  1660.    MessageDlg('Primeiro inicie uma venda!', mterror, [mbOk], 0);
  1661.  
  1662. end;
  1663.  
  1664. procedure TForm1.SairdosistemaClick(Sender: TObject);
  1665. var MainHandle : THandle;
  1666. begin
  1667.   if TvarauxVendas1.StatusVenda = sitVendendo then
  1668.  begin
  1669.  
  1670.   end else
  1671.   if TvarauxVendas1.StatusVenda = sitOcioso then   begin
  1672.    { aqui alimenta a atividade do pdv para monitoramento do robo }
  1673.     TrayIcon1.BalloonHint := 'Aplicativo PDV Fechado no terminal';
  1674.     TrayIcon1.ShowBalloonHint;
  1675.     { fim }
  1676.       begin
  1677.       try
  1678.       MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID) ;
  1679.       SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF) ;
  1680.       CloseHandle(MainHandle) ;
  1681.       except
  1682.      end;
  1683.       Application.ProcessMessages;
  1684.    end;
  1685.       Application.Terminate;
  1686.   end;
  1687.  
  1688. end;
  1689.  
  1690. procedure TForm1.T3Click(Sender: TObject);
  1691.  var Factcarga:iFactCargatabelas;
  1692. begin
  1693.  Factcarga:= TFacCargaTabelas.create;
  1694.  Factcarga.TransfereMovimentacao.TranfereCarga(Gauge1);
  1695. end;
  1696.  
  1697. procedure TForm1.Timer2Timer(Sender: TObject);
  1698. begin
  1699.   With Label22 do
  1700.     Visible := not Visible;
  1701. end;
  1702.  
  1703. procedure TForm1.Timer3Timer(Sender: TObject);
  1704. begin
  1705.   Panelproibido.Visible := false;
  1706.   Timer3.Enabled := false;
  1707. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement