Exemplo n.º 1
0
        private void AlterarCarga(Conta conta)
        {
            if (conta.Tipo_Conta == 2)
            {
                var carga = _repositorioCarga.First(x => x.Cod_Empresa == conta.Cod_Empresa &&
                                                    x.Num_Pedido == conta.Num_Pedido);
                if (carga != null)
                {
                    string situacao = "A";

                    if (conta.Situacao == "P")
                    {
                        situacao = "E";
                    }

                    carga.Situacao   = situacao;
                    carga.Financeiro = situacao;

                    _repositorioCarga.Update(carga);
                }
            }
        }
Exemplo n.º 2
0
        public int Salvar(Carga carga, string nomeUsuario)
        {
            if (carga.Cod_Cliente == 0)
            {
                throw new Exception("O cliente é obrigatório!");
            }
            if (carga.Cod_For == 0)
            {
                throw new Exception("O fornecedor é obrigatório!");
            }
            if (carga.Num_Pedido == 0)
            {
                throw new Exception("O número do pedido é obrigatório!");
            }
            if (carga.Num_Carga <= 0)
            {
                throw new Exception("O número da carga é obrigatório!");
            }
            if (carga.Valor_Frete <= 0)
            {
                throw new Exception("O valor do frete é obrigatório!");
            }
            if (carga.Qtde <= 0)
            {
                throw new Exception("A quantidade é obrigatório!");
            }
            if (carga.Cod_Contato == 0)
            {
                throw new Exception("O contato é obrigatório!");
            }

            if (_repositorioCarga.GetList(x => x.Cod_Empresa == carga.Cod_Empresa && x.Num_Carga == carga.Num_Carga &&
                                          x.Letra == carga.Letra && x.Id_Carga != carga.Id_Carga).Any())
            {
                throw new Exception("Número da carga ja existe, escolha outro número");
            }

            bool incluindo = (carga.Id_Carga == 0);

            if (carga.Id_Carga > 0)
            {
                if (ParcelaCargaIguais(carga) == false)
                {
                    throw new Exception("Valor da carga difere do valor das parcelas. Verifique as parcelas!");
                }
            }

            CalcularLucro(carga, true);

            try
            {
                if (carga.Id_Carga == 0)
                {
                    _servicoPermissao.Permitir(AcaoUsuario.Incluir, _tabela, nomeUsuario);
                    carga.Usu_Inc = PermissaoUsuario.GravarUsuarioDataHora(nomeUsuario);
                    _repositorioCarga.Insert(ref carga);
                }
                else
                {
                    _servicoPermissao.Permitir(AcaoUsuario.Alterar, _tabela, nomeUsuario);
                    carga.Usu_Alt = PermissaoUsuario.GravarUsuarioDataHora(nomeUsuario);
                    _repositorioCarga.Update(carga);
                }

                if (carga.Situacao == "C") // se for cancelado
                {
                    _servicoConta.ExcluirParcelas(carga.Id_Carga, carga.Cod_Empresa);
                }
                else
                {
                    if (incluindo)
                    {
                        MontarParcelas(carga);
                    }
                    else
                    {
                        VerificarParcelasCargaClienteDiferente(carga, nomeUsuario);
                    }
                }

                SalvarVencimentos(carga);
                SalvarObservacao(carga);

                // TODO: ver saldo
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return(carga.Id_Carga);
        }