Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type TVendaop = class
- private
- {Private declaration}
- FGridVD: TRichEdit;
- FTParametrosSistema: TParametrosSistema;
- FDatasetVendas: TFDquery;
- FDatasetItensVenda: TFDquery;
- //procedure StartCabecalhoGridVD( GridProd: TRichEdit );
- procedure ResetLineGrid(GridProd: TRichEdit);
- function PularLinha: String;
- protected
- {Protected declaration}
- public
- {Public declaration declaration}
- procedure SelecionaUltimaLinha;
- property Parametros: TParametrosSistema read FTParametrosSistema;
- procedure StartCabecalhoGridVD( GridProd: TRichEdit );
- procedure StartLineConsumidor( GridProd: TRichEdit; const Value: string );
- Procedure MontaDadosNoRich(GridProd: TRichEdit);
- procedure MontadadosdaVenda(GridProd: TRichEdit; Dataset: TFDquery);
- procedure AppendProdtoRitch(aDatasetItens: TFDquery); overload;
- procedure AppendProdtoRitch(aDatasetItens: TFDquery; L: TstringList); overload;
- procedure AppendProdtoRitchCancelbyCode(aDatasetItens: TFDquery); overload;
- constructor Create(GridProd: TRichEdit; DataseVendas, DatasetItensdaVenda: TFDquery); overload;
- (*Metodos do Constructor*)
- destructor Destroy; override;
- procedure AfterConstruction; override;
- procedure BeforeDestruction; override;
- published
- {Protected declaration}
- end;
- procedure TVendaop.AfterConstruction;
- begin
- inherited AfterConstruction;
- end;
- procedure TVendaop.AppendProdtoRitch( aDatasetItens: TFDquery );
- var i: Integer;
- nTamDescricao: Integer;
- fQuant, VlrLiquido: Double;
- sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
- sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
- sQuantidade: string[10];
- begin
- if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
- begin
- aDatasetItens.Refresh;
- end;
- FGridVD.Paragraph.Alignment:= taLeftJustify ;
- FGridVD.SelAttributes.Style := [];
- FGridVD.SelAttributes.Size := 10;
- sItem := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
- sDescricao := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
- sUnidade := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
- sVlrProduto := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
- aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
- sCodigo := stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
- Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
- sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
- fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
- if Frac(fQuant) > 0 then
- sQuantidade := formatcurr('###,###0.000',fQuant)
- else
- sQuantidade := formatcurr('###,###0.000',fQuant);
- sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
- LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
- ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
- nTamDescricao := EM_LIMITTEXT - Length(LinhaCmd) + 2;
- sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
- LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
- FGridVD.SelText := LinhaCmd + PularLinha;
- // SendMessage(FGridVD.Handle, WM_VSCROLL, SB_BOTTOM, 0);
- // SelecionaUltimaLinha;
- if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
- begin
- VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
- aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
- FGridVD.Lines.Add( padSpace(
- 'DESCONTO NO ITEM NRO.: '+ sItem + padLeft(FormatFloatBr
- (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
- + '|' + FormatFloatBr(VlrLiquido),
- 80, '|'));
- end;
- end;
- procedure TVendaop.AppendProdtoRitch(aDatasetItens: TFDquery; L: TstringList);
- var i: Integer;
- nTamDescricao: Integer;
- fQuant, VlrLiquido: Double;
- sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
- sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
- sQuantidade: string[10];
- begin
- if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
- begin
- aDatasetItens.Refresh;
- end;
- with aDatasetItens do
- begin
- sItem := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
- sDescricao := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
- sUnidade := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
- sVlrProduto := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
- aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
- sCodigo := stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
- Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
- sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
- fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
- if Frac(fQuant) > 0 then
- sQuantidade := formatcurr('###,###0.000',fQuant)
- else
- sQuantidade := formatcurr('###,###0.000',fQuant);
- sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
- LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
- ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
- nTamDescricao := 80 - Length(LinhaCmd) + 2;
- sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
- LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
- if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
- begin
- VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
- aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
- FGridVD.Lines.Add( padSpace(
- 'DESCONTO NO ITEM NRO.: '+ sItem + padLeft(FormatFloatBr
- (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
- + '|' + FormatFloatBr(VlrLiquido),
- 80, '|'));
- end;
- L.Add(LinhaCmd);
- end;
- end;
- procedure TVendaop.AppendProdtoRitchCancelbyCode(aDatasetItens: TFDquery);
- var i: Integer;
- nTamDescricao: Integer;
- fQuant, VlrLiquido: Double;
- sItem, sCodigo, sUnidade, sVlrUnitario, sVlrProduto,
- sVlrImpostos, LinhaCmd: String; sDescricao: string[19];
- sQuantidade: string[10];
- begin
- if not ( sistemaclass.Situacaodosistema = stCancelamentoItens ) and not ( sistemaclass.Situacaodosistema = stCancelamentobyCodebar ) then
- begin
- aDatasetItens.Refresh;
- end;
- FGridVD.Paragraph.Alignment:= taLeftJustify ;
- FGridVD.SelAttributes.Style := [];
- FGridVD.SelAttributes.Size := 10;
- sItem := IntToStrZero(aDatasetItens.FieldByName('ITENS_POSICAOITEN').AsInteger, 3);
- sDescricao := Trim(aDatasetItens.FieldByName('ITENS_DESCPRODUTO').AsString);
- sUnidade := Trim(aDatasetItens.FieldByName('ITENS_UN').AsString);
- sVlrProduto := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency *
- aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency );
- sCodigo := stringofChar( '0', ( 13 - length(Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString))))+
- Trim(aDatasetItens.FieldByName('ITENS_CODBARRAS').AsString);
- sVlrUnitario := FormatFloatBr(aDatasetItens.FieldByName('ITENS_VLUN').AsCurrency);
- fQuant := aDatasetItens.FieldByName('ITENS_QUANTIDADE').AsCurrency;
- if Frac(fQuant) > 0 then
- sQuantidade := formatcurr('###,###0.000',fQuant)
- else
- sQuantidade := formatcurr('###,###0.000',fQuant);
- sQuantidade := StringOfChar(' ', 4 - length(sQuantidade) )+sQuantidade;
- LinhaCmd := sItem + ' ' + sCodigo + ' ' + '[DesProd] ' +' '+ sQuantidade + ' ' +
- ' '+ PadLeft(sUnidade,2,' ') + ' X' + PadLeft(sVlrUnitario,5,' ') +' '+ ' '+PadLeft(sVlrProduto,8,' ');
- nTamDescricao := EM_LIMITTEXT - Length(LinhaCmd) + 2;
- sDescricao := AcbrUtil.PadRight(Copy(sDescricao, 1, nTamDescricao), nTamDescricao);
- LinhaCmd := StringReplace(LinhaCmd, '[DesProd]', sDescricao, [rfReplaceAll]);
- FGridVD.SelText := LinhaCmd + PularLinha;
- // SendMessage(FGridVD.Handle, WM_VSCROLL, SB_BOTTOM, 0);
- // SelecionaUltimaLinha;
- if aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency > 0 then
- begin
- VlrLiquido := (aDatasetItens.FieldByName('ITENS_TOTAL').AsCurrency -
- aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency);
- FGridVD.Lines.Add( padSpace(
- 'DESCONTO NO ITEM NRO.: '+ sItem + padLeft(FormatFloatBr
- (aDatasetItens.FieldByName('ITENS_DESCVL').AsCurrency, '-,0.00'), 15, ' ')
- + '|' + FormatFloatBr(VlrLiquido),
- 80, '|'));
- end;
- end;
- procedure TVendaop.BeforeDestruction;
- begin
- inherited BeforeDestruction;
- end;
- constructor TVendaop.Create(GridProd: TRichEdit; DataseVendas, DatasetItensdaVenda: TFDquery);
- begin
- FGridVD:= GridProd;
- FTParametrosSistema:= TParametrosSistema.Create;
- FDatasetVendas := DataseVendas;
- if DatasetItensdaVenda <> nil then
- begin
- FDatasetItensVenda:= DatasetItensdaVenda;
- end;
- end;
- destructor TVendaop.Destroy;
- begin
- inherited;
- FTParametrosSistema.DisposeOf;
- end;
- procedure TVendaop.MontadadosdaVenda(GridProd: TRichEdit; Dataset: TFDquery);
- begin
- ResetLineGrid(GridProd);
- with FDatasetVendas do
- begin
- with GridProd do
- begin
- SelText := concat( 'Data.:', FieldByName('DATA').Text , ' Hora.: ',
- FieldByName('HORA').Text ,' Usuario.: ', FieldByname('USUARIO').Text
- ,' Pdv nro.: ',FieldByName('CAIXA_NUMERO').Text,' Vd nro.: ', FieldByName('VENDA_NUMERO').Text , PularLinha );
- end;
- end;
- end;
- procedure TVendaop.MontaDadosNoRich(GridProd: TRichEdit);
- begin
- StartCabecalhoGridVD(GridProd);
- end;
- function TVendaop.PularLinha: String;
- begin
- result:= #13#10 ;
- end;
- procedure TVendaop.ResetLineGrid(GridProd: TRichEdit);
- begin
- with GridProd do
- begin
- Paragraph.Alignment:= taLeftJustify ;
- SelAttributes.Style := [];
- SelAttributes.Size := 8;
- end;
- end;
- procedure TVendaop.SelecionaUltimaLinha;
- var
- Line: Integer;
- begin
- with (FGridVD) do
- begin
- Line := Perform(EM_LINEFROMCHAR, SelStart, 0);
- SelStart := Perform(EM_LINEINDEX, Line, 0);
- SelLength := Length(Lines[Line]);
- end;
- end;
- procedure TVendaop.StartCabecalhoGridVD(GridProd: TRichEdit);
- var FTamanhoLinha: integer;
- begin
- with GridProd do
- begin
- Paragraph.Alignment:= taLeftJustify ;
- Dec(FTamanhoLinha);
- FTamanhoLinha:= 100;
- ReadOnly:= True;
- SelStart := GetTextLen;
- Paragraph.Alignment:= taCenter ;
- SelText := StringOfChar('.',FTamanhoLinha)+ PularLinha;
- SelAttributes.Size := 13;
- SelAttributes.Style := [fsBold];
- SelText := FTParametrosSistema.xRazao + PularLinha;
- SelText := FTParametrosSistema.xFant + PularLinha;
- SelAttributes.Style := [];
- SelAttributes.Size := 8;
- SelText := FTParametrosSistema.xCnpj + ' Ie.: ' + FTParametrosSistema.xIE + PularLinha;
- SelText := '' + PularLinha;
- SelText := 'Centro- São vicente - SP 11370295' + PularLinha;
- Paragraph.Alignment:= taCenter ;
- SelText := StringOfChar('.',FTamanhoLinha)+PularLinha;
- MontadadosdaVenda(GridProd,FdatasetVendas );
- seltext := PularLinha;
- if (Trim(FDatasetVendas.FieldByName('VENDANFP_CPF').AsString) <> '') then
- begin
- GridProd.Lines.add('CPF/CNPJ do Consumidor: '+
- IfThen( Trim(FDatasetVendas.FieldByName('VENDANFP_CPF').asstring)<>'',
- FormatarCNPJouCPF(FDatasetVendas.FieldByName('VENDANFP_CPF').AsString),
- ACBrStr('CONSUMIDOR NÃO IDENTIFICADO')));
- seltext:= PularLinha;
- SelText := StringOfChar('.',FTamanhoLinha);
- end;
- Paragraph.Alignment:= taCenter ;
- SelText := AcbrUtil.PadSpace('|COD|DESC|QTD|UN|VLUNR$|(VLTRR$)*|VLITEM R$',
- (EM_LIMITTEXT - 80), '|');
- seltext:= PularLinha;
- SelText := StringOfChar('.',FTamanhoLinha);
- seltext:= PularLinha;
- ResetLineGrid(GridProd);
- end;
- end;
- procedure TVendaop.StartLineConsumidor( GridProd: TRichEdit; const Value: string );
- var FTamanhoLinha: integer ;
- begin
- with GridProd do
- begin
- seltext:= PularLinha;
- FTamanhoLinha:= 160;
- seltext:= PularLinha;
- SelText := StringOfChar('.',FTamanhoLinha);
- Paragraph.Alignment:= taLeftJustify ;
- SelAttributes.Style := [];
- SelAttributes.Size := 8;
- SelText := ' Consumidor doc .: ' + value;
- seltext:= PularLinha;
- SelText := StringOfChar('.',FTamanhoLinha);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement