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 = 0) and (DifeFinanc <> 0) and (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 <> 0) and (DifeFinanc <> 0) then ResultadoString.Add('DIF. FINANCIAMENTO' + mlAlinhaDir(FormatFloat('#,##0.00', DifeFinanc),22,#32));
if (TaxaJuro = 0) and (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 = 0) and (DiferencaTotal <> 0) then begin NovoValorTotal := NovoValorTotal - DiferencaTotal; DiferencaTotal := 0; end;
|