Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- /**
- * @ngdoc service
- * @name orcamentoApp.automotiva.calculos
- * @description
- * # automotiva.calculos
- * Factory in the orcamentoApp.
- */
- angular.module('orcamentoApp').factory('automotivaCalculos', function($q, e670comModel, e044intModel, sessaoModel) {
- var _parametros = {};
- var __totalKM = 0;
- var _colunas = [
- 'valjan',
- 'valfev',
- 'valmar',
- 'valabr',
- 'valmai',
- 'valjun',
- 'valjul',
- 'valago',
- 'valset',
- 'valout',
- 'valnov',
- 'valdez'
- ];
- var _meses= [
- 'JAN',
- 'FEV',
- 'MAR',
- 'ABR',
- 'MAI',
- 'JUN',
- 'JUL',
- 'AGO',
- 'SET',
- 'OUT',
- 'NOV',
- 'DEZ'
- ];
- // Verifica se o mes está ativo ou não
- function _verificarMes(meses){
- if (typeof(meses) == 'undefined')
- {
- meses = {JAN : true}
- };
- var _retorno= [];
- for(var key in _meses)
- {
- if (meses[_meses[key]])
- {
- _retorno.push(key);
- }
- }
- return _retorno;
- }
- // Identifica a quantidade de meses ativos
- function _qtdMeses(obj)
- {
- if (typeof(obj) == 'undefined')
- {
- return 1;
- }
- var _qtd = 0;
- for(var key in obj)
- {
- if (obj[key])
- {
- _qtd++;
- }
- }
- return _qtd;
- }
- // Calcula um resumo dos valores
- function _resumirValores(obj){
- // Variavel totoal
- var _totalValor = 0;
- // percorre resumos
- for(var key in obj.contas){
- obj.contas[key].valtot = obj.contas[key].valjan +
- obj.contas[key].valfev +
- obj.contas[key].valmar +
- obj.contas[key].valabr +
- obj.contas[key].valmai +
- obj.contas[key].valjun +
- obj.contas[key].valjul +
- obj.contas[key].valago +
- obj.contas[key].valset +
- obj.contas[key].valout +
- obj.contas[key].valnov +
- obj.contas[key].valdez;
- _totalValor += obj.contas[key].valtot;
- }
- // Preenche valor
- obj.resumo.VLRTOT = _totalValor;
- // retonar obj
- return obj;
- }
- function _calcular(obj) {
- var deferred = $q.defer();
- // objeto principal
- var lista = {
- contas : [],
- resumo : {
- VLRTOT : 0,
- KMPTOT : 0,
- BEM : ''
- }
- };
- // Recebe novos dados
- var _parametros = typeof(obj) !== 'undefined' ? obj : null;
- // Verifica se objeto não esta nulo
- if (_parametros == null) {return false;};
- if (!_parametros.hasOwnProperty('CODEMP')){
- _parametros.CODEMP = sessaoModel.parametros.empresa.CODEMP;
- }
- // promessas
- var promisses = [];
- promisses.push(e670comModel.carregarUnico(_parametros.CODCOM));
- promisses.push(e044intModel.carregarUnico(_parametros.CODEMP,_parametros.CODCCU));
- $q.all(promisses).then(function(resolved){
- var combustivel = resolved[0].dados[0];
- var ctacontas = resolved[1][0];
- // Recebe valor de Valor por km
- var _lankpl = typeof(_parametros.LANKPL) == 'undefined' ? 0 : parseFloat(_parametros.LANKPL);
- // Recebe valor de KM / l
- var _lanvpk = typeof(_parametros.LANVPK) == 'undefined' ? 0 : parseFloat(_parametros.LANVPK);
- // Valores de quilometragens (efetua tratamentos)
- var _horjan = typeof(_parametros.HORJAN) == 'undefined' ? 0 : parseFloat(_parametros.HORJAN);
- var _horfev = typeof(_parametros.HORFEV) == 'undefined' ? 0 : parseFloat(_parametros.HORFEV);
- var _hormar = typeof(_parametros.HORMAR) == 'undefined' ? 0 : parseFloat(_parametros.HORMAR);
- var _horabr = typeof(_parametros.HORABR) == 'undefined' ? 0 : parseFloat(_parametros.HORABR);
- var _hormai = typeof(_parametros.HORMAI) == 'undefined' ? 0 : parseFloat(_parametros.HORMAI);
- var _horjun = typeof(_parametros.HORJUN) == 'undefined' ? 0 : parseFloat(_parametros.HORJUN);
- var _horjul = typeof(_parametros.HORJUL) == 'undefined' ? 0 : parseFloat(_parametros.HORJUL);
- var _horago = typeof(_parametros.HORAGO) == 'undefined' ? 0 : parseFloat(_parametros.HORAGO);
- var _horset = typeof(_parametros.HORSET) == 'undefined' ? 0 : parseFloat(_parametros.HORSET);
- var _horout = typeof(_parametros.HOROUT) == 'undefined' ? 0 : parseFloat(_parametros.HOROUT);
- var _hornov = typeof(_parametros.HORNOV) == 'undefined' ? 0 : parseFloat(_parametros.HORNOV);
- var _hordez = typeof(_parametros.HORDEZ) == 'undefined' ? 0 : parseFloat(_parametros.HORDEZ);
- lista.resumo.KMPTOT = _horjan + _horfev + _hormar + _horabr + _hormai + _horjun +
- _horjul + _horago + _horset + _horout + _hornov + _hordez;
- lista.resumo.BEM = _parametros.CODBEM;
- // calcular manutenção
- if (_lanvpk != 0)
- {
- lista.contas.push({
- codigo : ctacontas.CTAMAN,
- conta : ctacontas.DESMAN,
- valjan : _horjan * _lanvpk,
- valfev : _horfev * _lanvpk,
- valmar : _hormar * _lanvpk,
- valabr : _horabr * _lanvpk,
- valmai : _hormai * _lanvpk,
- valjun : _horjun * _lanvpk,
- valjul : _horjul * _lanvpk,
- valago : _horago * _lanvpk,
- valset : _horset * _lanvpk,
- valout : _horout * _lanvpk,
- valnov : _hornov * _lanvpk,
- valdez : _hordez * _lanvpk,
- });
- }
- else
- {
- lista.contas.push({
- codigo : ctacontas.CTAMAN,
- conta : ctacontas.DESMAN,
- valjan : 0,
- valfev : 0,
- valmar : 0,
- valabr : 0,
- valmai : 0,
- valjun : 0,
- valjul : 0,
- valago : 0,
- valset : 0,
- valout : 0,
- valnov : 0,
- valdez : 0,
- });
- }
- // calcular combustivel
- if (_lanvpk != 0)
- {
- lista.contas.push({
- codigo : ctacontas.CTACOM,
- conta : ctacontas.DESCOM,
- valjan : (_lankpl * _horjan) * combustivel.VALJAN,
- valfev : (_lankpl * _horfev) * combustivel.VALFEV,
- valmar : (_lankpl * _hormar) * combustivel.VALMAR,
- valabr : (_lankpl * _horabr) * combustivel.VALABR,
- valmai : (_lankpl * _hormai) * combustivel.VALMAI,
- valjun : (_lankpl * _horjun) * combustivel.VALJUN,
- valjul : (_lankpl * _horjul) * combustivel.VALJUL,
- valago : (_lankpl * _horago) * combustivel.VALAGO,
- valset : (_lankpl * _horset) * combustivel.VALSET,
- valout : (_lankpl * _horout) * combustivel.VALOUT,
- valnov : (_lankpl * _hornov) * combustivel.VALNOV,
- valdez : (_lankpl * _hordez) * combustivel.VALDEZ,
- });
- }
- else
- {
- lista.contas.push({
- codigo : ctacontas.CTACOM,
- conta : ctacontas.DESCOM,
- valjan : 0,
- valfev : 0,
- valmar : 0,
- valabr : 0,
- valmai : 0,
- valjun : 0,
- valjul : 0,
- valago : 0,
- valset : 0,
- valout : 0,
- valnov : 0,
- valdez : 0,
- });
- }
- if (!_parametros.hasOwnProperty('CODEQP')) {
- // calcular impostos
- if (typeof(_parametros.VLRIMP) != 'undefined')
- {
- var _qtdMImp = _qtdMeses(_parametros.MESIMP);
- var _MImp = _verificarMes(_parametros.MESIMP);
- var _vlrMImp = parseFloat(_parametros.VLRIMP) / _qtdMImp;
- lista.contas.push({codigo : ctacontas.CTAIMP, conta : ctacontas.DESIMP});
- var pos = lista.contas.length - 1;
- for(var key in _colunas)
- {
- if (_MImp.indexOf(key) !== -1)
- {
- lista.contas[pos][_colunas[key]] = _vlrMImp;
- }
- else
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- }
- else
- {
- lista.contas.push({codigo : ctacontas.CTAIMP, conta : ctacontas.DESIMP});
- for(var key in _colunas)
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- } else {
- // calcular revisão
- if (typeof(_parametros.VLRREV) != 'undefined')
- {
- var _qtdMRev = _qtdMeses(_parametros.MESREV);
- var _MRev = _verificarMes(_parametros.MESREV);
- var _vlrMRev = parseFloat(_parametros.VLRREV) / _qtdMRev;
- lista.contas.push({codigo : ctacontas.CTAREV, conta : 'Revisão'});
- var pos = lista.contas.length - 1;
- for(var key in _colunas)
- {
- if (_MRev.indexOf(key) !== -1)
- {
- lista.contas[pos][_colunas[key]] = _vlrMRev;
- }
- else
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- }
- else
- {
- lista.contas.push({codigo : ctacontas.CTAREV, conta : ctacontas.DESREV});
- for(var key in _colunas)
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- }
- // calcular seguro
- if (typeof(_parametros.VLRSEG) != 'undefined')
- {
- var _qtdMSeg = _qtdMeses(_parametros.MESSEG);
- var _MSeg = _verificarMes(_parametros.MESSEG);
- var _vlrMSeg = parseFloat(_parametros.VLRSEG) / _qtdMSeg;
- lista.contas.push({codigo : ctacontas.CTASEG, conta : ctacontas.DESSEG});
- var pos = lista.contas.length - 1;
- for(var key in _colunas)
- {
- if (_MSeg.indexOf(key) !== -1)
- {
- lista.contas[pos][_colunas[key]] = _vlrMSeg;
- }
- else
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- }
- else
- {
- lista.contas.push({codigo : ctacontas.CTASEG, conta : ctacontas.DESSEG});
- for(var key in _colunas)
- {
- lista.contas[pos][_colunas[key]] = 0;
- }
- }
- // Calcular depreciação
- var _vlrdep = typeof(_parametros.VLRDEP) == 'undefined' ? 0 : parseFloat(_parametros.VLRDEP);
- if (_vlrdep == 0)
- {
- lista.contas.push({
- codigo : ctacontas.CTADEP,
- conta : ctacontas.DESDEP,
- valjan : 0,
- valfev : 0,
- valmar : 0,
- valabr : 0,
- valmai : 0,
- valjun : 0,
- valjul : 0,
- valago : 0,
- valset : 0,
- valout : 0,
- valnov : 0,
- valdez : 0,
- });
- }
- else
- {
- lista.contas.push({
- codigo : ctacontas.CTADEP,
- conta : ctacontas.DESDEP,
- valjan : _vlrdep / 12,
- valfev : _vlrdep / 12,
- valmar : _vlrdep / 12,
- valabr : _vlrdep / 12,
- valmai : _vlrdep / 12,
- valjun : _vlrdep / 12,
- valjul : _vlrdep / 12,
- valago : _vlrdep / 12,
- valset : _vlrdep / 12,
- valout : _vlrdep / 12,
- valnov : _vlrdep / 12,
- valdez : _vlrdep / 12,
- });
- }
- // resumir bem
- var _lista = _resumirValores(lista);
- deferred.resolve(_lista);
- });
- return deferred.promise;
- }
- // Objeto principal
- var automotiva = {
- pronto : false,
- parametros : _parametros,
- // Retorno de dados
- lista: {
- contas : [],
- resumo : {}
- },
- // Processar contas
- calcularContas : function(obj){
- var deferred = $q.defer();
- _calcular(obj).then(function(data){
- automotiva.lista = data;
- automotiva.pronto = true;
- deferred.resolve(angular.copy(automotiva));
- });
- return deferred.promise;
- }
- }
- return automotiva;
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement