Esempio n. 1
0
        public string IncluirOrdemPagamento(OrdemPagamento ordemPagamento, bool origemConsultaOP, out int idOrdemPagamento)
        {
            DataAccess                  dao           = new DataAccess();
            List <_Transacao>           lstComandos   = new List <_Transacao>();
            Dictionary <string, string> lstParametros = new Dictionary <string, string>();
            BIZVeiculo                  bizVeiculo    = new BIZVeiculo();
            BIZFrete bizFrete = new BIZFrete();

            string Msg = string.Empty;

            try
            {
                Msg = ValidarCamposObrigatorios(ordemPagamento);
                idOrdemPagamento = 0;

                if (Msg == string.Empty)
                {
                    using (DataSet ds = dao.Pesquisar("SP_ORDEMPAGAMENTO_NOVONUMEROOP", lstParametros))
                    {
                        DataRow dr = ds.Tables[0].Rows[0];
                        ordemPagamento.numeroOP = dr[0].ToString();
                    }

                    lstParametros = MontarParametrosExecutarOrdemPagamento(ordemPagamento);

                    using (DataSet ds = dao.Pesquisar("SP_ORDEMPAGAMENTO_INCLUIR", lstParametros))
                    {
                        DataRow dr = ds.Tables[0].Rows[0];
                        idOrdemPagamento = int.Parse(dr[0].ToString());
                    }

                    lstComandos.AddRange(this.IncluirOrdemPagamentoItens(idOrdemPagamento, ordemPagamento.idObraEtapa, ordemPagamento.lstItens));

                    dao.ExecutarTransacao(lstComandos);

                    if (ordemPagamento.lstItens.Exists(x => x.idFrete != 0))
                    {
                        FretePagamento fretePagamento = new FretePagamento()
                        {
                            idFrete = ordemPagamento.lstItens.Where(x => x.idFrete != 0).FirstOrDefault().idFrete,
                            idOP    = idOrdemPagamento
                        };

                        bizFrete.IncluirPagamento(fretePagamento);
                    }

                    if (ordemPagamento.lstItens.Exists(x => x.idManutencao != 0))
                    {
                        Manutencao manutencao = new Manutencao()
                        {
                            idManutencao = ordemPagamento.lstItens.Where(x => x.idManutencao != 0).FirstOrDefault().idManutencao,
                            idOP         = idOrdemPagamento,
                        };

                        bizVeiculo.AtualizarManutencaoOrdemPagamento(manutencao);
                    }

                    if (ordemPagamento.lstItens.Exists(x => x.idOcorrenciaMulta != 0))
                    {
                        MultaOcorrencia ocorrencia = new MultaOcorrencia()
                        {
                            idOcorrencia = ordemPagamento.lstItens.Where(x => x.idOcorrenciaMulta != 0).FirstOrDefault().idOcorrenciaMulta,
                            idOP         = idOrdemPagamento
                        };

                        bizVeiculo.AtualizarMultaOcorrenciaOrdemPagamento(ocorrencia);
                    }
                }
            }
            catch (Exception ex)
            {
                string parametrosSQL = string.Empty;
                parametrosSQL = helper.ConcatenarParametrosSQL(lstParametros);

                LogErro log = new LogErro()
                {
                    procedureSQL  = "SP_ORDEMPAGAMENTO_INCLUIR",
                    parametrosSQL = parametrosSQL,
                    mensagemErro  = ex.ToString()
                };

                bizLogErro.IncluirLogErro(log);

                throw ex;
            }

            return(Msg);
        }