Advertisement
filhotecmail

AjustedeValores

Sep 24th, 2017
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 7.25 KB | None | 0 0
  1. unit EngineDescontoAcres;
  2.  
  3. interface
  4.  
  5. uses Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,Dialogs,Winapi.Windows, Winapi.Messages,
  6. System.SysUtils, System.Variants, Vcl.Graphics,DB,
  7.   Vcl.Controls, Vcl.Forms,FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
  8.   FireDAC.Stan.Async, FireDAC.Phys,StdCtrls,
  9.   FireDAC.Phys.FB, FireDAC.Phys.FBDef, FireDAC.VCLUI.Wait, FireDAC.Comp.Client,JvExDBGrids, JvDBGrid;
  10.  
  11.   type TipoOperacao = (Desconto,Acrescimos);
  12.   type TiporOperacaoaplDesc = (DescPercent,DescValor);
  13.   type TipoOperacaoPlAcres  = (AcrescPercent,AcrescValor);
  14.   type TAplicador = (Custo,venda);
  15.  
  16. type TEngineDescontoAcresc = class(TObject)
  17.      private
  18.     FFDTableProd: TFDMemtable;
  19.     FTipoOperacao: TipoOperacao;
  20.     FTiporOperacaoaplDesc: TiporOperacaoaplDesc;
  21.     FTipoOperacaoPlAcres: TipoOperacaoPlAcres;
  22.     FAplicador: TAplicador;
  23.     FValueIndexComboTipo: integer;
  24.     FValueIndexComboDescOp: integer;
  25.     FValordodesconto: Currency;
  26.     procedure setTipoOperacao(const Value: TipoOperacao);
  27.     procedure setAplicador(const Value: TAplicador);
  28.      {Private declaration}
  29.      protected
  30.      {Protected declaration}
  31.      public
  32.      {Public declaration declaration}
  33.      Property FDTableProd: TFDMemtable read FFDTableProd write FFDTableProd;
  34.      constructor Create(adataset: TDataset;Grid: TJVDbgrid); (*Metodos do Constructor*)
  35.      property TipoOperation : TipoOperacao read FTipoOperacao write setTipoOperacao;
  36.      property ValueIndexComboTipo: integer read FValueIndexComboTipo write FValueIndexComboTipo;
  37.      property ValueIndexComboDescOp: integer read FValueIndexComboDescOp write FValueIndexComboDescOp;
  38.      property TiporOperationcaoaplDesc : TiporOperacaoaplDesc read FTiporOperacaoaplDesc write FTiporOperacaoaplDesc;
  39.      property TipoOperationPlAcres : TipoOperacaoPlAcres read FTipoOperacaoPlAcres write FTipoOperacaoPlAcres;
  40.      property TipoAplicador : TAplicador read FAplicador write setAplicador;
  41.      procedure CheckBomBOTipoOperartion(aComboBox: TComboBox);
  42.      procedure CheckComboOperacaoDesc(aCombo: TComboBox);
  43.      property Valordodesconto: Currency read FValordodesconto write FValordodesconto;
  44.      function DescontoPercentual(const ValorProd, ValorDesconto: Currency): Currency;
  45.      destructor Destroy; override;
  46.  
  47.      published
  48.      {Protected declaration}
  49.      end;
  50.  
  51. implementation
  52.  
  53. { TTEngineDescontoAcresc }
  54.  
  55. uses DtmFrameworkConexao, FuncoesLibraryClass;
  56.  
  57. procedure TEngineDescontoAcresc.CheckBomBOTipoOperartion(aComboBox: TComboBox);
  58. begin
  59.   FValueIndexComboTipo:= aComboBox.ItemIndex;
  60.   case aComboBox.ItemIndex of
  61.    0: TipoOperation := Desconto;
  62.    1: TipoOperation := Desconto;
  63.    2: TipoOperation := Acrescimos;
  64.    3: TipoOperation := Acrescimos;
  65.   end;
  66.  
  67. end;
  68.  
  69. procedure TEngineDescontoAcresc.CheckComboOperacaoDesc(aCombo: TComboBox);
  70. begin
  71.  ValueIndexComboDescOp := aCombo.ItemIndex;
  72.  case aCombo.ItemIndex of
  73.   0: TipoAplicador := Custo ;
  74.   1: TipoAplicador := Venda ;
  75.  end;
  76. end;
  77.  
  78. constructor TEngineDescontoAcresc.Create(adataset: TDataset;Grid: TJVDbgrid);
  79.   var i,x: Integer; aFields: Tfields;
  80.     aux: string;
  81. begin
  82.        FFDTableProd := TFDMemtable.Create(Nil);
  83.    for I := 0 to adataset.Fields.Count -1 do begin
  84.  
  85.     FFDTableProd.FieldDefs.Add(adataset.Fields[i].FieldName,
  86.                 adataset.Fields[i].DataType,
  87.                 adataset.Fields[i].Size,
  88.                 adataset.Fields[i].Required);
  89.  
  90.    end;
  91.   FFDTableProd.CreateDataSet;
  92.   FFDTableProd.Open;
  93.  
  94.  
  95.     for i := 0 to Grid.SelectedRows.Count - 1 do
  96.     begin
  97.     FFDTableProd.Append;
  98.         aDataset.GotoBookmark(pointer(Grid.SelectedRows.Items[i]));
  99.     FFDTableProd.FieldByName('Id').AsInteger:= aDataset.FieldByName('Id').AsInteger;
  100.     FFDTableProd.FieldByName('Situacao').AsString:= aDataset.FieldByName('Situacao').AsString;
  101.     FFDTableProd.FieldByName('Data').AsDateTime:= aDataset.FieldByName('Data').AsDateTime;
  102.     FFDTableProd.FieldByName('Hora').AsDateTime:= aDataset.FieldByName('Hora').AsDateTime;
  103.     FFDTableProd.FieldByName('Nome do Produto').AsString:= aDataset.FieldByName('Nome do Produto').AsString;
  104.     FFDTableProd.FieldByName('Cód. Barras').AsString:= aDataset.FieldByName('Cód. Barras').AsString;
  105.     FFDTableProd.FieldByName('UN').AsString:= aDataset.FieldByName('UN').AsString;
  106.     FFDTableProd.FieldByName('Vl. un Compra').AsCurrency:= aDataset.FieldByName('Vl. un Compra').AsCurrency;
  107.     FFDTableProd.FieldByName('Etq Total').AsCurrency:= aDataset.FieldByName('Etq Total').AsCurrency;
  108.     FFDTableProd.FieldByName('Etq Mínimo').AsCurrency:= aDataset.FieldByName('Etq Mínimo').AsCurrency;
  109.     FFDTableProd.FieldByName('R$ Venda').AsCurrency:= aDataset.FieldByName('R$ Venda').AsCurrency;
  110.     FFDTableProd.FieldByName('Refencia').AsString:= aDataset.FieldByName('Refencia').AsString;
  111.     FFDTableProd.FieldByName('Marca').AsString:= aDataset.FieldByName('Marca').AsString;
  112.     FFDTableProd.FieldByName('Grupo').AsString:= aDataset.FieldByName('Grupo').AsString;
  113.     FFDTableProd.FieldByName('Sub-Grupo').AsString:= aDataset.FieldByName('Sub-Grupo').AsString;
  114.     FFDTableProd.FieldByName('Mkp%').AsCurrency:= aDataset.FieldByName('Mkp%').AsCurrency;
  115.     FFDTableProd.FieldByName('CST').AsString:= aDataset.FieldByName('CST').AsString;
  116.     FFDTableProd.FieldByName('Cfop').AsString:= aDataset.FieldByName('Cfop').AsString;
  117.     FFDTableProd.FieldByName('Tributação de saida').AsString:= aDataset.FieldByName('Tributação de saida').AsString;
  118.     FFDTableProd.FieldByName('Aliq%').AsCurrency:= aDataset.FieldByName('Aliq%').AsCurrency;
  119.     FFDTableProd.FieldByName('Ultima compra').AsDateTime:= aDataset.FieldByName('Ultima compra').AsDateTime;
  120.     FFDTableProd.FieldByName('Nfe').AsString:= aDataset.FieldByName('Nfe').AsString;
  121.     FFDTableProd.FieldByName('Vl. Última compra').AsCurrency:= aDataset.FieldByName('Vl. Última compra').AsCurrency;
  122.     FFDTableProd.FieldByName('Fornecedor').AsString:= aDataset.FieldByName('Fornecedor').AsString;
  123.     FFDTableProd.FieldByName('Ie fornecedor').AsString:= aDataset.FieldByName('Ie fornecedor').AsString;
  124.     FFDTableProd.Post;
  125.     end;
  126.   FormataCamposFields(FFDTableProd,'###,##0.00');
  127.  
  128. end;
  129.  
  130. function TEngineDescontoAcresc.DescontoPercentual(const ValorProd, ValorDesconto: Currency): Currency;
  131. begin
  132.  result:=  ValorProd - (ValorProd * ValorDesconto)/ 100;
  133. end;
  134.  
  135. destructor TEngineDescontoAcresc.Destroy;
  136. begin
  137.  
  138.   inherited;
  139. end;
  140.  
  141. procedure TEngineDescontoAcresc.setAplicador(const Value: TAplicador);
  142. begin
  143.    FAplicador := Value;
  144.    case Value of
  145.      Custo: begin CarregaWait('Carregando calculos para custo',300);
  146.  
  147.      end;
  148.      venda: CarregaWait('Carregando cálculo para venda',300);
  149.    end;
  150. end;
  151.  
  152. procedure TEngineDescontoAcresc.setTipoOperacao(const Value: TipoOperacao);
  153. begin
  154.    FTipoOperacao := Value;
  155.   case Value of
  156.    Desconto: begin
  157.     case FValueIndexComboTipo of
  158.     0: begin
  159.       CarregaWait('Carregando cálculo de descontos em Percentual',300) ;
  160.  
  161.     end;
  162.     1: CarregaWait('Carregando cálculo de descontos em Reais',300) ;
  163.    end;
  164.   end   ;
  165.    Acrescimos: begin
  166.     case FValueIndexComboTipo of
  167.     2: CarregaWait('Carregando cálculo de Acrescimos em Percentual',300)  ;
  168.     3: CarregaWait('Carregando cálculo de Acrescimos em Valor',300)  ;
  169.    end;
  170.   end;
  171.  end;
  172. end;
  173.  
  174. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement