Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit EngineDescontoAcres;
- interface
- uses Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,Dialogs,Winapi.Windows, Winapi.Messages,
- System.SysUtils, System.Variants, Vcl.Graphics,DB,
- Vcl.Controls, Vcl.Forms,FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
- FireDAC.Stan.Async, FireDAC.Phys,StdCtrls,
- FireDAC.Phys.FB, FireDAC.Phys.FBDef, FireDAC.VCLUI.Wait, FireDAC.Comp.Client,JvExDBGrids, JvDBGrid;
- type TipoOperacao = (Desconto,Acrescimos);
- type TiporOperacaoaplDesc = (DescPercent,DescValor);
- type TipoOperacaoPlAcres = (AcrescPercent,AcrescValor);
- type TAplicador = (Custo,venda);
- type TEngineDescontoAcresc = class(TObject)
- private
- FFDTableProd: TFDMemtable;
- FTipoOperacao: TipoOperacao;
- FTiporOperacaoaplDesc: TiporOperacaoaplDesc;
- FTipoOperacaoPlAcres: TipoOperacaoPlAcres;
- FAplicador: TAplicador;
- FValueIndexComboTipo: integer;
- FValueIndexComboDescOp: integer;
- FValordodesconto: Currency;
- procedure setTipoOperacao(const Value: TipoOperacao);
- procedure setAplicador(const Value: TAplicador);
- {Private declaration}
- protected
- {Protected declaration}
- public
- {Public declaration declaration}
- Property FDTableProd: TFDMemtable read FFDTableProd write FFDTableProd;
- constructor Create(adataset: TDataset;Grid: TJVDbgrid); (*Metodos do Constructor*)
- property TipoOperation : TipoOperacao read FTipoOperacao write setTipoOperacao;
- property ValueIndexComboTipo: integer read FValueIndexComboTipo write FValueIndexComboTipo;
- property ValueIndexComboDescOp: integer read FValueIndexComboDescOp write FValueIndexComboDescOp;
- property TiporOperationcaoaplDesc : TiporOperacaoaplDesc read FTiporOperacaoaplDesc write FTiporOperacaoaplDesc;
- property TipoOperationPlAcres : TipoOperacaoPlAcres read FTipoOperacaoPlAcres write FTipoOperacaoPlAcres;
- property TipoAplicador : TAplicador read FAplicador write setAplicador;
- procedure CheckBomBOTipoOperartion(aComboBox: TComboBox);
- procedure CheckComboOperacaoDesc(aCombo: TComboBox);
- property Valordodesconto: Currency read FValordodesconto write FValordodesconto;
- function DescontoPercentual(const ValorProd, ValorDesconto: Currency): Currency;
- destructor Destroy; override;
- published
- {Protected declaration}
- end;
- implementation
- { TTEngineDescontoAcresc }
- uses DtmFrameworkConexao, FuncoesLibraryClass;
- procedure TEngineDescontoAcresc.CheckBomBOTipoOperartion(aComboBox: TComboBox);
- begin
- FValueIndexComboTipo:= aComboBox.ItemIndex;
- case aComboBox.ItemIndex of
- 0: TipoOperation := Desconto;
- 1: TipoOperation := Desconto;
- 2: TipoOperation := Acrescimos;
- 3: TipoOperation := Acrescimos;
- end;
- end;
- procedure TEngineDescontoAcresc.CheckComboOperacaoDesc(aCombo: TComboBox);
- begin
- ValueIndexComboDescOp := aCombo.ItemIndex;
- case aCombo.ItemIndex of
- 0: TipoAplicador := Custo ;
- 1: TipoAplicador := Venda ;
- end;
- end;
- constructor TEngineDescontoAcresc.Create(adataset: TDataset;Grid: TJVDbgrid);
- var i,x: Integer; aFields: Tfields;
- aux: string;
- begin
- FFDTableProd := TFDMemtable.Create(Nil);
- for I := 0 to adataset.Fields.Count -1 do begin
- FFDTableProd.FieldDefs.Add(adataset.Fields[i].FieldName,
- adataset.Fields[i].DataType,
- adataset.Fields[i].Size,
- adataset.Fields[i].Required);
- end;
- FFDTableProd.CreateDataSet;
- FFDTableProd.Open;
- for i := 0 to Grid.SelectedRows.Count - 1 do
- begin
- FFDTableProd.Append;
- aDataset.GotoBookmark(pointer(Grid.SelectedRows.Items[i]));
- FFDTableProd.FieldByName('Id').AsInteger:= aDataset.FieldByName('Id').AsInteger;
- FFDTableProd.FieldByName('Situacao').AsString:= aDataset.FieldByName('Situacao').AsString;
- FFDTableProd.FieldByName('Data').AsDateTime:= aDataset.FieldByName('Data').AsDateTime;
- FFDTableProd.FieldByName('Hora').AsDateTime:= aDataset.FieldByName('Hora').AsDateTime;
- FFDTableProd.FieldByName('Nome do Produto').AsString:= aDataset.FieldByName('Nome do Produto').AsString;
- FFDTableProd.FieldByName('Cód. Barras').AsString:= aDataset.FieldByName('Cód. Barras').AsString;
- FFDTableProd.FieldByName('UN').AsString:= aDataset.FieldByName('UN').AsString;
- FFDTableProd.FieldByName('Vl. un Compra').AsCurrency:= aDataset.FieldByName('Vl. un Compra').AsCurrency;
- FFDTableProd.FieldByName('Etq Total').AsCurrency:= aDataset.FieldByName('Etq Total').AsCurrency;
- FFDTableProd.FieldByName('Etq Mínimo').AsCurrency:= aDataset.FieldByName('Etq Mínimo').AsCurrency;
- FFDTableProd.FieldByName('R$ Venda').AsCurrency:= aDataset.FieldByName('R$ Venda').AsCurrency;
- FFDTableProd.FieldByName('Refencia').AsString:= aDataset.FieldByName('Refencia').AsString;
- FFDTableProd.FieldByName('Marca').AsString:= aDataset.FieldByName('Marca').AsString;
- FFDTableProd.FieldByName('Grupo').AsString:= aDataset.FieldByName('Grupo').AsString;
- FFDTableProd.FieldByName('Sub-Grupo').AsString:= aDataset.FieldByName('Sub-Grupo').AsString;
- FFDTableProd.FieldByName('Mkp%').AsCurrency:= aDataset.FieldByName('Mkp%').AsCurrency;
- FFDTableProd.FieldByName('CST').AsString:= aDataset.FieldByName('CST').AsString;
- FFDTableProd.FieldByName('Cfop').AsString:= aDataset.FieldByName('Cfop').AsString;
- FFDTableProd.FieldByName('Tributação de saida').AsString:= aDataset.FieldByName('Tributação de saida').AsString;
- FFDTableProd.FieldByName('Aliq%').AsCurrency:= aDataset.FieldByName('Aliq%').AsCurrency;
- FFDTableProd.FieldByName('Ultima compra').AsDateTime:= aDataset.FieldByName('Ultima compra').AsDateTime;
- FFDTableProd.FieldByName('Nfe').AsString:= aDataset.FieldByName('Nfe').AsString;
- FFDTableProd.FieldByName('Vl. Última compra').AsCurrency:= aDataset.FieldByName('Vl. Última compra').AsCurrency;
- FFDTableProd.FieldByName('Fornecedor').AsString:= aDataset.FieldByName('Fornecedor').AsString;
- FFDTableProd.FieldByName('Ie fornecedor').AsString:= aDataset.FieldByName('Ie fornecedor').AsString;
- FFDTableProd.Post;
- end;
- FormataCamposFields(FFDTableProd,'###,##0.00');
- end;
- function TEngineDescontoAcresc.DescontoPercentual(const ValorProd, ValorDesconto: Currency): Currency;
- begin
- result:= ValorProd - (ValorProd * ValorDesconto)/ 100;
- end;
- destructor TEngineDescontoAcresc.Destroy;
- begin
- inherited;
- end;
- procedure TEngineDescontoAcresc.setAplicador(const Value: TAplicador);
- begin
- FAplicador := Value;
- case Value of
- Custo: begin CarregaWait('Carregando calculos para custo',300);
- end;
- venda: CarregaWait('Carregando cálculo para venda',300);
- end;
- end;
- procedure TEngineDescontoAcresc.setTipoOperacao(const Value: TipoOperacao);
- begin
- FTipoOperacao := Value;
- case Value of
- Desconto: begin
- case FValueIndexComboTipo of
- 0: begin
- CarregaWait('Carregando cálculo de descontos em Percentual',300) ;
- end;
- 1: CarregaWait('Carregando cálculo de descontos em Reais',300) ;
- end;
- end ;
- Acrescimos: begin
- case FValueIndexComboTipo of
- 2: CarregaWait('Carregando cálculo de Acrescimos em Percentual',300) ;
- 3: CarregaWait('Carregando cálculo de Acrescimos em Valor',300) ;
- end;
- end;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement