Advertisement
Guest User

endaOpdRitchEdit

a guest
Aug 4th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 13.09 KB | None | 0 0
  1.  type TVendaop = class
  2.  
  3.    private
  4.    {Private declaration}
  5.    FGridVD: TRichEdit;
  6.    FTParametrosSistema: TParametrosSistema;
  7.    FDatasetVendas: TFDquery;
  8.    FDatasetItensVenda: TFDquery;
  9.    //procedure StartCabecalhoGridVD( GridProd: TRichEdit );
  10.    procedure ResetLineGrid(GridProd: TRichEdit);
  11.    function PularLinha: String;
  12.  
  13.    protected
  14.    {Protected declaration}
  15.    public
  16.    {Public declaration declaration}
  17.    procedure SelecionaUltimaLinha;
  18.    property Parametros: TParametrosSistema read FTParametrosSistema;
  19.    procedure StartCabecalhoGridVD( GridProd: TRichEdit );
  20.    procedure StartLineConsumidor( GridProd: TRichEdit; const Value: string );
  21.    Procedure MontaDadosNoRich(GridProd: TRichEdit);
  22.    procedure MontadadosdaVenda(GridProd: TRichEdit; Dataset: TFDquery);
  23.    procedure AppendProdtoRitch(aDatasetItens: TFDquery); overload;
  24.    procedure AppendProdtoRitch(aDatasetItens: TFDquery; L: TstringList); overload;
  25.    procedure AppendProdtoRitchCancelbyCode(aDatasetItens: TFDquery); overload;
  26.  
  27.      constructor Create(GridProd: TRichEdit; DataseVendas, DatasetItensdaVenda: TFDquery); overload;
  28.      (*Metodos do Constructor*)
  29.     destructor Destroy; override;
  30.     procedure AfterConstruction; override;
  31.     procedure BeforeDestruction; override;
  32.  
  33.    published
  34.    {Protected declaration}
  35.    end;
  36.  
  37. procedure TVendaop.AfterConstruction;
  38. begin
  39.   inherited AfterConstruction;
  40.  
  41.  
  42. end;
  43.  
  44. procedure TVendaop.AppendProdtoRitch( aDatasetItens: TFDquery );
  45.  var i: Integer;
  46.   nTamDescricao: Integer;
  47.   fQuant, VlrLiquido: Double;
  48.   sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
  49.   sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
  50.   sQuantidade: string[10];
  51. begin
  52.   if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
  53.   begin
  54.    aDatasetItens.Refresh;
  55.   end;
  56.  
  57.    FGridVD.Paragraph.Alignment:= taLeftJustify ;
  58.    FGridVD.SelAttributes.Style := [];
  59.    FGridVD.SelAttributes.Size := 10;
  60.  
  61.     sItem        := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
  62.     sDescricao   := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
  63.     sUnidade     := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
  64.     sVlrProduto  := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
  65.                      aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
  66.     sCodigo      :=  stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
  67.                      Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
  68.     sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
  69.     fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
  70.  
  71.     if Frac(fQuant) > 0 then
  72.       sQuantidade := formatcurr('###,###0.000',fQuant)
  73.     else
  74.     sQuantidade := formatcurr('###,###0.000',fQuant);
  75.     sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
  76.  
  77.     LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
  78.     ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
  79.  
  80.    nTamDescricao := EM_LIMITTEXT - Length(LinhaCmd) + 2;
  81.    sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
  82.  
  83.    LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
  84.    FGridVD.SelText := LinhaCmd + PularLinha;
  85.  
  86. //   SendMessage(FGridVD.Handle, WM_VSCROLL, SB_BOTTOM, 0);
  87. //   SelecionaUltimaLinha;
  88.  
  89.    if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
  90.      begin
  91.  
  92.       VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
  93.                      aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
  94.       FGridVD.Lines.Add( padSpace(
  95.               'DESCONTO NO ITEM NRO.:  '+ sItem + padLeft(FormatFloatBr
  96.                        (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
  97.               + '|' + FormatFloatBr(VlrLiquido),
  98.               80, '|'));
  99.  
  100.      end;
  101.   end;
  102.  
  103. procedure TVendaop.AppendProdtoRitch(aDatasetItens: TFDquery; L: TstringList);
  104. var i: Integer;
  105.   nTamDescricao: Integer;
  106.   fQuant, VlrLiquido: Double;
  107.   sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
  108.   sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
  109.   sQuantidade: string[10];
  110. begin
  111.   if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
  112.   begin
  113.    aDatasetItens.Refresh;
  114.   end;
  115.  
  116.   with aDatasetItens do
  117.  begin
  118.  
  119.     sItem        := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
  120.     sDescricao   := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
  121.     sUnidade     := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
  122.     sVlrProduto  := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
  123.                      aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
  124.     sCodigo      :=  stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
  125.                      Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
  126.     sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
  127.     fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
  128.  
  129.     if Frac(fQuant) > 0 then
  130.       sQuantidade := formatcurr('###,###0.000',fQuant)
  131.     else
  132.     sQuantidade := formatcurr('###,###0.000',fQuant);
  133.     sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
  134.  
  135.     LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
  136.     ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
  137.  
  138.    nTamDescricao := 80 - Length(LinhaCmd) + 2;
  139.    sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
  140.  
  141.    LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
  142.  
  143.    if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
  144.      begin
  145.  
  146.       VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
  147.                      aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
  148.       FGridVD.Lines.Add( padSpace(
  149.               'DESCONTO NO ITEM NRO.:  '+ sItem + padLeft(FormatFloatBr
  150.                        (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
  151.               + '|' + FormatFloatBr(VlrLiquido),
  152.               80, '|'));
  153.  
  154.      end;
  155.    L.Add(LinhaCmd);
  156.   end;
  157.  end;
  158.  
  159.  
  160.  
  161. procedure TVendaop.AppendProdtoRitchCancelbyCode(aDatasetItens: TFDquery);
  162. var i: Integer;
  163.   nTamDescricao: Integer;
  164.   fQuant, VlrLiquido: Double;
  165.   sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
  166.   sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
  167.   sQuantidade: string[10];
  168. begin
  169.   if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
  170.   begin
  171.    aDatasetItens.Refresh;
  172.   end;
  173.  
  174.    FGridVD.Paragraph.Alignment:= taLeftJustify ;
  175.    FGridVD.SelAttributes.Style := [];
  176.    FGridVD.SelAttributes.Size := 10;
  177.  
  178.     sItem        := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
  179.  
  180.     sDescricao   := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
  181.     sUnidade     := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
  182.     sVlrProduto  := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
  183.                      aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
  184.     sCodigo      :=  stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
  185.                      Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
  186.     sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
  187.     fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
  188.  
  189.     if Frac(fQuant) > 0 then
  190.       sQuantidade := formatcurr('###,###0.000',fQuant)
  191.     else
  192.     sQuantidade := formatcurr('###,###0.000',fQuant);
  193.     sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
  194.  
  195.     LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
  196.     ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
  197.  
  198.    nTamDescricao := EM_LIMITTEXT - Length(LinhaCmd) + 2;
  199.    sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
  200.  
  201.    LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
  202.    FGridVD.SelText := LinhaCmd + PularLinha;
  203.  
  204. //   SendMessage(FGridVD.Handle, WM_VSCROLL, SB_BOTTOM, 0);
  205. //   SelecionaUltimaLinha;
  206.  
  207.    if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
  208.      begin
  209.  
  210.       VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
  211.                      aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
  212.       FGridVD.Lines.Add( padSpace(
  213.               'DESCONTO NO ITEM NRO.:  '+ sItem + padLeft(FormatFloatBr
  214.                        (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
  215.               + '|' + FormatFloatBr(VlrLiquido),
  216.               80, '|'));
  217.  
  218.      end;
  219.  
  220. end;
  221.  
  222. procedure TVendaop.BeforeDestruction;
  223. begin
  224.   inherited BeforeDestruction;
  225.  
  226. end;
  227.  
  228. constructor TVendaop.Create(GridProd: TRichEdit; DataseVendas, DatasetItensdaVenda: TFDquery);
  229. begin
  230.   FGridVD:= GridProd;
  231.   FTParametrosSistema:= TParametrosSistema.Create;
  232.   FDatasetVendas := DataseVendas;
  233.   if  DatasetItensdaVenda <> nil then
  234.   begin
  235.   FDatasetItensVenda:= DatasetItensdaVenda;
  236.   end;
  237. end;
  238.  
  239. destructor TVendaop.Destroy;
  240. begin
  241.   inherited;
  242.   FTParametrosSistema.DisposeOf;
  243. end;
  244.  
  245. procedure TVendaop.MontadadosdaVenda(GridProd: TRichEdit; Dataset: TFDquery);
  246. begin
  247.   ResetLineGrid(GridProd);
  248.  with FDatasetVendas do
  249.  begin
  250.   with GridProd do
  251.   begin
  252.     SelText := concat( 'Data.:', FieldByName('DATA').Text , ' Hora.: ',
  253.              FieldByName('HORA').Text  ,' Usuario.: ', FieldByname('USUARIO').Text
  254.              ,' Pdv nro.: ',FieldByName('CAIXA_NUMERO').Text,' Vd nro.: ', FieldByName('VENDA_NUMERO').Text , PularLinha );
  255.   end;
  256.  end;
  257. end;
  258.  
  259. procedure TVendaop.MontaDadosNoRich(GridProd: TRichEdit);
  260. begin
  261.  StartCabecalhoGridVD(GridProd);
  262.  
  263. end;
  264.  
  265. function TVendaop.PularLinha: String;
  266. begin
  267.  result:= #13#10 ;
  268. end;
  269.  
  270. procedure TVendaop.ResetLineGrid(GridProd: TRichEdit);
  271. begin
  272.   with GridProd do
  273.   begin
  274.    Paragraph.Alignment:= taLeftJustify ;
  275.    SelAttributes.Style := [];
  276.    SelAttributes.Size := 8;
  277.   end;
  278. end;
  279.  
  280. procedure TVendaop.SelecionaUltimaLinha;
  281.  var
  282.   Line: Integer;
  283. begin
  284.   with (FGridVD) do
  285.   begin
  286.     Line      := Perform(EM_LINEFROMCHAR, SelStart, 0);
  287.     SelStart  := Perform(EM_LINEINDEX, Line, 0);
  288.     SelLength := Length(Lines[Line]);
  289.   end;
  290. end;
  291.  
  292. procedure TVendaop.StartCabecalhoGridVD(GridProd: TRichEdit);
  293.  var FTamanhoLinha: integer;
  294. begin
  295.   with GridProd do
  296.   begin
  297.    Paragraph.Alignment:= taLeftJustify ;
  298.    Dec(FTamanhoLinha);
  299.    FTamanhoLinha:=  100;
  300.    ReadOnly:= True;
  301.    SelStart := GetTextLen;
  302.  
  303.    Paragraph.Alignment:= taCenter ;
  304.    SelText := StringOfChar('.',FTamanhoLinha)+ PularLinha;
  305.    SelAttributes.Size := 13;
  306.    SelAttributes.Style := [fsBold];
  307.    SelText := FTParametrosSistema.xRazao + PularLinha;
  308.    SelText := FTParametrosSistema.xFant + PularLinha;
  309.    SelAttributes.Style := [];
  310.    SelAttributes.Size := 8;
  311.    SelText := FTParametrosSistema.xCnpj + ' Ie.: ' + FTParametrosSistema.xIE + PularLinha;
  312.    SelText := '' + PularLinha;
  313.    SelText := 'Centro- São vicente - SP 11370295' + PularLinha;
  314.    Paragraph.Alignment:= taCenter ;
  315.    SelText := StringOfChar('.',FTamanhoLinha)+PularLinha;
  316.    MontadadosdaVenda(GridProd,FdatasetVendas );
  317.    seltext := PularLinha;
  318.    if (Trim(FDatasetVendas.FieldByName('VENDANFP_CPF').AsString) <> '') then
  319.    begin
  320.  
  321.     GridProd.Lines.add('CPF/CNPJ do Consumidor: '+
  322.                 IfThen( Trim(FDatasetVendas.FieldByName('VENDANFP_CPF').asstring)<>'',
  323.                         FormatarCNPJouCPF(FDatasetVendas.FieldByName('VENDANFP_CPF').AsString),
  324.                         ACBrStr('CONSUMIDOR NÃO IDENTIFICADO')));
  325.     seltext:= PularLinha;
  326.     SelText := StringOfChar('.',FTamanhoLinha);
  327.     end;
  328.    Paragraph.Alignment:= taCenter ;
  329.    SelText := AcbrUtil.PadSpace('|COD|DESC|QTD|UN|VLUNR$|(VLTRR$)*|VLITEM R$',
  330.                                   (EM_LIMITTEXT - 80), '|');
  331.    seltext:= PularLinha;
  332.    SelText := StringOfChar('.',FTamanhoLinha);
  333.    seltext:= PularLinha;
  334.    ResetLineGrid(GridProd);
  335.   end;
  336. end;
  337.  
  338. procedure TVendaop.StartLineConsumidor( GridProd: TRichEdit; const Value: string );
  339.  var  FTamanhoLinha: integer ;
  340. begin
  341.    with GridProd do
  342.   begin
  343.    seltext:= PularLinha;
  344.    FTamanhoLinha:=  160;
  345.    seltext:= PularLinha;
  346.    SelText := StringOfChar('.',FTamanhoLinha);
  347.  
  348.    Paragraph.Alignment:= taLeftJustify ;
  349.    SelAttributes.Style := [];
  350.    SelAttributes.Size := 8;
  351.    SelText := ' Consumidor doc .: ' + value;
  352.    seltext:= PularLinha;
  353.    SelText := StringOfChar('.',FTamanhoLinha);
  354.   end;
  355. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement