Example #1
0
 public IEnumerable <Carga> ObterCargasDoPedido(int numPedido)
 {
     return(_repositorioCarga.ObterCargasDoPedido(numPedido));
 }
Example #2
0
        public void AlterarValorCarga(Pedido pedido, string nomeUsuario)
        {
            // buscar todas as cargas do pedido
            var cargas = _repositorioCarga.ObterCargasDoPedido(pedido.Num_Pedido);

            if (cargas != null)
            {
                foreach (var carga in cargas)
                {
                    // se foi alterado o cliente, trocar o cliente das cargas
                    if (pedido.Cod_Cliente != carga.Cod_Cliente)
                    {
                        carga.Cod_Cliente = pedido.Cod_Cliente;
                    }

                    // Se fornecedor foi trocado o fornecedor, trocar nas cargas
                    if (pedido.Cod_For != carga.Cod_For)
                    {
                        carga.Cod_For = pedido.Cod_For;
                    }

                    // Na carga o VALOR_PEDIDO = Pedido.Total_Liquido
                    carga.Valor_Pedido = pedido.Total_Liquido;

                    // Se Pedido.Total_Qtde for diferente do anterior
                    // então carga.Qtde_Pedido = Pedido.Total_Qtde
                    carga.Qtde_Pedido = pedido.Total_Qtde;

                    // Se Pedido.ValorLucro <> do anterior
                    // calcular Lucro
                    _repositorioCarga.CalcularLucro(carga, true);

                    //_repositorioCarga.Salvar(carga, nomeUsuario);

                    // atualizar o Valor_Pagar = carga.valor_carrega das contas onde contas.NumPedido = Id_Carga a Tipo_Conta = 2
                    var contas = _repositorioConta.ObterPorPedido(pedido.Num_Pedido, pedido.Cod_Empresa, (int)TipoFinanceiro.tfReceber);
                    if (contas != null)
                    {
                        foreach (var conta in contas)
                        {
                            conta.Valor_Pagar = carga.Valor_Carrega;
                            _repositorioConta.Salvar(conta, null, nomeUsuario);
                        }
                    }

                    // trocar o cliente do contas a receber tipo conta = 1
                    contas = _repositorioConta.ObterPorPedido(carga.Id_Carga, pedido.Cod_Empresa, (int)TipoFinanceiro.tfPedido);
                    if (contas != null)
                    {
                        foreach (var conta in contas)
                        {
                            if (pedido.Cod_Cliente != conta.Cod_Cliente)
                            {
                                conta.Cod_Cliente = pedido.Cod_Cliente;
                                _repositorioConta.Salvar(conta, null, nomeUsuario);
                            }
                        }
                    }
                }
            }
        }