Calculos - misc

Top  Previous  Next

// Total do estoque é 200,00. um produto custa 50,00 

// que percentual o meu produto representa do 200,00? (25%)

 

x := (CustoProduto * 100) / TotalEstoque 

 

--------------------------------------------------------------

 

// Como saber a margem de lucro?

 

// Ex.: comprei um item por 5,00

//      vendi por 6,00

//      como saber a margem?

 

MARGEM := ( [ValorFinal - ValorInicial] / ValorInicial ) * 100

 

Logo: [ValorFinal - ValorInicial] ::: 6 - 5 = 1

      / ValorInicial              ::: 1 / 5 = 0,20

      * 100                       ::: 20%!  

 

-------------------------------------------------------------

 

// * Tenho 128 RAM total, ocupada: 54 RAM

//  Qual é o % que está ocupado e está livre?

 

T = 128

O = 54

 

% Ocupada = (T/O) * 100

% Livre   = 100 - ((T/O) * 100)

 

-------------------------------------------------------------

// * Como calcular o DELTA? Ex.: exemplo comparado com este mes

// que lucrei 245 quanto eu evolui em % em relacao ao mes anterior

// que no exemplo foi 200...

 

Delta = (( ValorAtual - ValorAnterior ) * 100) / ValorAnterior;

 

-------------------------------------------------------------

// * Margem de venda sobre custo / Qual o meu lucro?

 

VariacaoPercentual = ((ValorAnterior / ValorAtual) -1) * 100

 

-------------------------------------------------------------

// * Qual é a margem de lucro? (custo sobre venda)

 

result = 100 - ((custo / venda) * 100)

 

-------------------------------------------------------------

// * Calculo de parcelas (complexo)

 

staxa          = Juros a cobrar %

svalor         = Valor Total da Compra

staxaperioc    = Taxa de periocidade (15/30 dias)

vlr_corrigido  = Valor Total já corrigido

sparcela       = Valor de Cada Parcela

qtd_parcel     = Quantas Parcelas

 

  // calcular a taxa da periocidade

  staxaperioc:= val(str((staxa/100+1)^((DataPrimeiroVcto-HOJE)/30),25,20))

 

  // atualizar o svalor até a data do primeiro vcto, com taxa efetiva do período, não é taxa linear

  vlr_corrigido:=round(svalor*staxaperioc,2)

 

  // calculo da parcela

  // para pagamentos sem entrada

  sparcela:=vlr_corrigido*(((1+(staxaperioc/100))^qtd_parcel)*(staxaperioc/100)/

                                  (((1+(staxaperioc/100))^qtd_parcel)-1))

 

   // para pagamento com 1 entrada (no ato) 

   sparcela:=vlr_corrigido/(1+((((1+(staxaperioc/100))^(qtd_parcel-1))-1)/

                                       (((1+(staxaperioc/100))^(qtd_parcel-1))*(staxaperioc/100))))

 

 

---------------- ESTE EXEMPLO ESTAVA FUNCIONANDO NUM SISTEMA DE PARCELAMENTO ---------------------

 

  // Inicia variaveis

  Data         := TmlData.Create(nil);

  PrimeiroVcto := TmlData.Create(nil);

  Data.Atual;

  PrimeiroVcto.SetData([DateToStr(PriVenc)]);

  NParcelas    := Trunc(TotalParcelas);

 

  // Pega a taxa de juros do arqupa

  TaxaQuery              := TmlQuery.Create(nil);

  TaxaQuery.DatabaseName := 'frente';

  if TaxaQuery.Select('taxajuro from arqupa') then

    TaxaJuro := TaxaQuery.GetValor('taxajuro')

  else

    TaxaJuro := 0;

  TaxaQuery.Free;

 

  ValorTotal := ValorCupom - Entrada; // desconta do valor principal a entrada

 

  ///////////////////////////// // Isolado para q nao atualize o capital até a data 1ª pagto

  // Calcular a taxa da Periocidade - Atualiza a primeira parcela

  // TaxaPerioc := Power((TaxaJuro/100+1),((PrimeiroVcto.GetIntervalo(Data))/30));

  //atualizar o ValorTotal até a data do primeiro vcto, com taxa efetiva do período, não é taxa linear

  //ValorTotal := mlRound(ValorTotal * TaxaPerioc,2);

 

  // Este comando "com entrada" define se os juros serão calculados a partir

  // do valor total da compra, ou incluindo a entrada. (parametrizado no supervisor)

  ComEntrada        := True;

  JurosParcelaUnica := True;

 

  if ParaQuery.Select('comentrada from arqupa') then ComEntrada        := ParaQuery.CampoS('comentrada');

  if ParaQuery.Select('jrsparunic from arqupa') then JurosParcelaUnica := ParaQuery.CampoS('jrsparunic');

 

  if ValorCupom < 1 then TaxaJuro := 0;

 

  TaxaJuros := TaxaJuro; // Esta var é usada na impressao

 

  if TaxaJuro > 0 then

  begin

    if ComEntrada then

      ValorParcela := ValorTotal/(1+((Power((1+(TaxaJuro/100)),(NParcelas-1))-1)/

                      (Power((1+(TaxaJuro/100)),(NParcelas-1))*(TaxaJuro/100))))

    else  // Esse calculo aqui abaixo calcula juros acima do normal (usado pela coopertupy)

      if (JurosParcelaUnica) and (NParcelas = 1) then

        ValorParcela := ValorTotal

      else

        ValorParcela := ValorTotal * (Power((1+(TaxaJuro/100)),NParcelas)*(TaxaJuro/100)/

                                     (Power((1+(TaxaJuro/100)),NParcelas)-1));

  end

  else

    ValorParcela := (ValorTotal / NParcelas);

 

  //calculo da parcela

  Data.SetData([DateToStr(PrimeiroVcto.GetDateTime)]);

  // No resultadoString SEMPRE deve começar com parcelas nada de linhas em branco antes

  ResultadoString.Clear;

  DifeFinanc := (mlRound(ValorParcela,2) * NParcelas)-(ValorCupom-Entrada);

  For I := 1 to NParcelas do

  begin

    // Não mexe no primeiro vencimento

    if I > 1 then

      Data.SetAjuste(0,1,0);

    // Atenção SE FOR ALTERAR AQUI MODIFIQUE A LINHA NO RECEBIMENTO QUE GRAVA O ARQUIVO .C!!

    if (TaxaJuro = 0and (DifeFinanc <> 0and (I = NParcelas) then

      ResultadoString.Add(mlStrZero(I,2) + ' PARCELA ' + LowerCase(mlTiraAcentos(Data.GetData)) + ' -> ' +

                          mlAlinhaDir(FormatFloat('#,##0.00',mlRound(ValorParcela - DifeFinanc,2)),11,#32))

    else

      ResultadoString.Add(mlStrZero(I,2) + ' PARCELA ' + LowerCase(mlTiraAcentos(Data.GetData)) + ' -> ' +

                          mlAlinhaDir(FormatFloat('#,##0.00',mlRound(ValorParcela,2)),11,#32));

  end;

  ResultadoString.Add('N. PARCELAS'        + mlAlinhaDir(IntToStr(NParcelas),29,#32));

  if (TaxaJuro <> 0and (DifeFinanc <> 0) then

    ResultadoString.Add('DIF. FINANCIAMENTO' + mlAlinhaDir(FormatFloat('#,##0.00', DifeFinanc),22,#32));

 

  if (TaxaJuro = 0and (DifeFinanc <> 0) then

    ResultadoString.Add('SOMA PARCELAS '     + mlAlinhaDir(#32 + FormatFloat('#,##0.00', (((mlRound(ValorParcela,2)) * NParcelas)+Entrada) - DifeFinanc),26,'.'))

  else

    ResultadoString.Add('SOMA PARCELAS '     + mlAlinhaDir(#32 + FormatFloat('#,##0.00', ((mlRound(ValorParcela,2)) * NParcelas)+Entrada),26,'.'));

 

  NovoValorTotal  := (mlRound(ValorParcela,2) * NParcelas)+(Entrada);

  DiferencaTotal  := (mlRound(ValorParcela,2) * NParcelas)-(ValorCupom-Entrada);

  NParcelasTotal  := NParcelas;

  ValorCadaParcela:= ValorParcela;

 

  if (TaxaJuros = 0and (DiferencaTotal <> 0) then

  begin

    NovoValorTotal := NovoValorTotal - DiferencaTotal;

    DiferencaTotal := 0;

  end;