JSFiddle - React, Tailwind, and code Playground

by gschutz

JavaScript

(function(){
    var pedidos = new Array();
    
    var Pedido = {
        itens: [],
        representante: false,
        departamento: false,
        adicionar_item: function(item){
            var item = item || {};
            Pedido.itens.push(item);
            console.log('Item '+ Pedido.itens.indexOf(item) +' adicionado com sucesso');
        },
        remover_item: function(item){
            // this 'indexOf' is not crossbrowser, can be changed to jQuery approach if needed, or define a prototype
            var index = Pedido.itens.indexOf(item);
            if (index > -1) {
                array.splice(index, 1);
                console.log('Item '+ index +' removido com sucesso');
            } else {
                console.log('O item especificado não foi encontrado.');
            }
        },
        fechar_pedido: function(){
            if( !Pedido.departamento )
                console.log('Departamento é obrigatório.');
            if( !Pedido.representante )
                console.log('Representante de Vendas é obrigatório.');
        
            var comissao = {},
                comissao_liquida = 0,
                venda_bruta_comissionada = 0;
            for( i in Pedido.itens ) {
                item = Pedido.itens[i];
                comissao = Pedido.calcular_comissao(item.departamento, item.valor);
                comissao_liquida += comissao.liquida;
                venda_bruta_comissionada += item.valor;
            }
    
            Pedido.venda_bruta_comissionada = venda_bruta_comissionada;
            Pedido.comissao_liquida = comissao_liquida;
            Pedido.percentual_comissao = comissao_liquida/venda_bruta_comissionada;
            
            Pedido.valor_nf = Pedido.venda_bruta_comissionada + Pedido.comissao_liquida;
            Pedido.numero_nf = pedidos.length + 1;
            
            console.log(Pedido);
            return Pedido;
        },
        calcular_comissao: function(departamento, valor_total)...