function Venda(xvd, xdesc) { this.vd = xvd; this.vd_mesadesc = xdesc; this.destroy = function() { } this.update = function( okHandler, failureHandler ) { this.okHandler = okHandler; this.failureHandler = failureHandler; var vd = this.vd; if (!vd) { console.error('vd null'); return; } var url = http.getUrl('contahub.cmds.vd.VendasCmd', 'getVendaCompleta') + "?vd=" + vd + "&t=" + (new Date()).getTime() ; http.callHTTP( url , function(dados) { console.log('getVendaCompleta', dados); if (!dados.vd_mesadesc) { dados.vd_mesadesc = ''; } var venda = guru.getVenda(); venda.dados = dados; if (venda.okHandler) { try { venda.okHandler(venda); } catch (e) { console.error(e); } } else { console.error("okHandler nao definido: ",venda); } } , function(msg) { var venda = guru.getVenda(); if (venda.failureHandler) { try { venda.failureHandler(msg); } catch (e) { console.error(e); } } else { window.alert("Falha ao atualizar venda " + venda.vd + " [" + msg + "]"); } } ); } this.nfEmitida = function() { return (this.dados.nf_nnf); } this.isAceitandoPedido = function() { return ! this.isEncerrada(); } this.isAceitandoAjustesEPagamentos = function() { return ! this.isFechada(); } this.isFechada = function() { return (this.dados.vd_hrfechamento); } this.isDelivery = function() { return (this.dados.vd_delivery=='S'); } this.getCli = function() { return (this.dados.cli); } this.isEncerrada = function() { return (this.dados.vd_hrencerramento) || this.isFechada(); } this.isInterna = function() { return (this.dados.vd_interna=='S'); } this.getItens = function() { return this.dados['_contahub.entities.VendaItem'] ? this.dados['_contahub.entities.VendaItem'] : this.dados['_itens']; } this.getPagamentos = function() { return this.dados['_contahub.entities.VendaPagamento'] ? this.dados['_contahub.entities.VendaPagamento'] : this.dados['_pagamentos']; } this.getEmp = function() { return this.dados.emp; } this.getVd = function() { if (!this.dados) { return 0; } return this.dados.vd; } this.getHrSaida = function() { return this.dados.vd_hrsaida; } this.getSenha = function() { var s = this.dados.vd_senha; return s; } this.getQtd = function() { if (this.dados) { this.dados.vd_qtditens; } return 0; } this.getPessoas = function() { return this.dados.vd_pessoas; } this.getMes = function() { return this.dados.mes; } this.getDesc = function() { return guru.Venda_desc( this.dados ); } this.getCarrinho = function() { if (!this.carrinho) { this.carrinho = new Array(); } return this.carrinho; } this.limpaCarrinho = function() { this.carrinho = new Array(); } this.incluiProdutoNoCarrinho = function(p) { if (!this.carrinho) { this.carrinho = new Array(); } this.carrinho[this.carrinho.length] = {prd: p, itm_qtd: 1, itm_obs: ''}; } this.setQtdProdutoNoCarrinho = function(i, q) { if (!this.carrinho) { return; } this.carrinho[i].itm_qtd = q; } this.getProdutoNoCarrinho = function(i) { if (!this.carrinho) { return null; } return this.carrinho[i]; } this.getVrProdutos = function() { return this.dados.vd_vrprodutos ? this.dados.vd_vrprodutos : 0; } this.getVrPagamentos = function() { return this.dados.vd_vrpagamentos ? this.dados.vd_vrpagamentos : 0; } this.getVrDescontos = function() { return this.dados.vd_vrdescontos ? this.dados.vd_vrdescontos : 0; } this.getVrCheio = function() { return this.dados.vd_vrcheio ? this.dados.vd_vrcheio : 0; } this.getVrRepique = function() { return this.dados._vd_vrrepique ? this.dados._vd_vrrepique : 0; } this.getTrn = function() { return this.dados.trn; } this.getTrnPercRepiqueDefault = function() { return this.dados.trn_percrepiquedefault; } this.getTrnCouvert = function() { return this.dados.trn_couvert; } this.getTrnManobrista = function() { return this.dados.trn_manobrista; } this.getVrCouvert = function() { return this.dados._vd_vrcouvert; } this.getPerfil = function() { return this.dados.vd_perfil; } this.getQtdCouvert = function() { return this.dados._vd_qtdcouvert; } this.getVrManobrista = function() { return this.dados._vd_vrmanobrista; } this.getQtdManobrista = function() { var r = this.dados.vd_qtdmanobrista; if (r) { return r; } return 0; } this.getVrExtras = function() { var r = this.dados.vd_vrextras; if (r) { return r; } return 0; } this.getVrEntrega= function() { var r = this.dados.vd_vrentrega; if (r) { return r; } return 0; } this.getVrTotal = function() { return util.arred2(this.getVrProdutos() + this.getVrRepique() + this.getVrCouvert() + this.getVrManobrista() + this.getVrExtras() + this.getVrEntrega()); } this.getVrFalta = function() { var r = this.dados.vd_vrfalta; if (r) { return r; } return 0; } this.getDividirPor = function() { return this.dados._vd_dividepor; } this.getVrPerCapta = function() { var p = this.getDividirPor(); if (p) { return util.arred2( this.getVrTotal()/p ); } return 0; } this.getVrRepiqueDiminuido = function() { var r = 0; if ( (this.getVrFalta()>0) && (this.getVrFalta()<=this.getVrRepique()) ) { r = util.arred2(this.getVrRepique()-this.getVrFalta()); } return r; } this.getVrRepiquePadrao = function() { var r = util.arred2(this.getVrProdutos()*this.getTrnPercRepiqueDefault()/100); return r; } this.getVrRepiqueAumentado = function() { var r = this.getVrRepique(); if ( this.getVrFalta()<0 ) { r = util.arred2(r-this.getVrFalta()); } return r; } this.getNome = function() { var r = this.dados.vd_nome; if (r) { return r; } return ''; } this.getCPF= function() { var r = this.dados.vd_cpf; if (r) { return r; } return ''; } this.getEMail= function() { var r = this.dados.vd_email; if (r) { return r; } return ''; } this.getProdutos = function( ordenadoPor ) { var itens = this.getItens(); var result = new Array(); var anterior = new Object(); for (var i=0; i < itens.length; i++) { itens[i].key = itens[i].prd + '-' + itens[i].prd_desc; if (anterior.key!=itens[i].key) { anterior = new Object(); result.push( anterior ); anterior.key = itens[i].key; anterior.itens = new Array(); anterior.itm_qtd = 0; anterior.itm_vrcheio = 0; anterior.itm_vrdesconto = 0; anterior.prd = itens[i].prd; anterior.itm = itens[i].itm; anterior.itm_desc = itens[i].itm_desc; anterior.prd_desc = itens[i].prd_desc; anterior.prd_unid = itens[i].prd_unid; anterior.itm_status = ''; } anterior.itens.push(itens[i]); if (itens[i].itm_vrdesconto==null) { itens[i].itm_vrdesconto = 0; } anterior.itm_qtd += itens[i].itm_qtd; anterior.itm_vrcheio = util.arred2(anterior.itm_vrcheio + itens[i].itm_qtd * itens[i].itm_vrunitario); anterior.itm_vrdesconto += itens[i].itm_vrdesconto; if (anterior.itm_status.indexOf(itens[i].itm_status)==-1) { anterior.itm_status += itens[i].itm_status; } if (itens[i].itm_obs && (itens[i].itm_obs!='') ) { anterior.itm_obs = true; } } return result; } }