Ejemplo n.º 1
0
        public void GravaNovoProduto(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_PRODUTO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_PRODUTO>();

                    Doran_Servicos_ORM.TB_PRODUTO novo = new Doran_Servicos_ORM.TB_PRODUTO();

                    novo.CODIGO_PRODUTO       = dados["CODIGO_PRODUTO"].ToString();
                    novo.DESCRICAO_PRODUTO    = dados["DESCRICAO_PRODUTO"].ToString();
                    novo.UNIDADE_MEDIDA_VENDA = dados["UNIDADE_MEDIDA_VENDA"].ToString();
                    novo.PRECO_PRODUTO        = Convert.ToDecimal(dados["PRECO_PRODUTO"]);
                    novo.ALIQ_ISS             = Convert.ToDecimal(dados["ALIQ_ISS_SERVICO"]);

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public void GravaNovo(Dictionary <string, object> dados, List <string> DESTINATARIOS, decimal ID_USUARIO, string LOGIN_USUARIO)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    object[] items          = (object[])dados["NUMERO_ITENS"];
                    string   CLIENTE        = "";
                    string   CODIGO_PRODUTO = "";

                    for (int i = 0; i < items.Count(); i++)
                    {
                        var query1 = (from linha in ctx.TB_PEDIDO_VENDAs
                                      where linha.NUMERO_PEDIDO == Convert.ToDecimal(dados["NUMERO_PEDIDO"]) &&
                                      linha.NUMERO_ITEM == Convert.ToDecimal(items.GetValue(i))
                                      select new
                        {
                            linha.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE,
                            linha.CODIGO_PRODUTO_PEDIDO
                        }).ToList();

                        foreach (var item in query1)
                        {
                            CLIENTE         = item.NOMEFANTASIA_CLIENTE.Trim();
                            CODIGO_PRODUTO += string.Concat("[", item.CODIGO_PRODUTO_PEDIDO.Trim(), "]");
                        }

                        System.Data.Linq.Table <Doran_Servicos_ORM.TB_FOLLOW_UP_ITEM_PEDIDO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_FOLLOW_UP_ITEM_PEDIDO>();

                        Doran_Servicos_ORM.TB_FOLLOW_UP_ITEM_PEDIDO novo = new Doran_Servicos_ORM.TB_FOLLOW_UP_ITEM_PEDIDO();

                        novo.NUMERO_PEDIDO        = Convert.ToDecimal(dados["NUMERO_PEDIDO"]);
                        novo.NUMERO_ITEM          = Convert.ToDecimal(items.GetValue(i));
                        novo.ID_USUARIO_FOLLOW_UP = ID_USUARIO;
                        novo.DATA_HORA_FOLLOW_UP  = DateTime.Now;
                        novo.TEXTO_FOLLOW_UP      = dados["TEXTO_FOLLOW_UP"].ToString();

                        Entidade.InsertOnSubmit(novo);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert_PEDIDO_VENDA(ctx, novo, Entidade.ToString(),
                                                                                                     Convert.ToDecimal(dados["NUMERO_PEDIDO"]), ID_USUARIO);
                    }

                    ctx.SubmitChanges();

                    if (DESTINATARIOS.Count > 0)
                    {
                        using (Doran_Email_Posicao_Pedido email = new Doran_Email_Posicao_Pedido(ID_USUARIO))
                        {
                            string _OBS = string.Concat(LOGIN_USUARIO.ToUpper(), " salvou uma nova mensagem de Follow Up no item do pedido ", dados["NUMERO_PEDIDO"].ToString(),
                                                        "<br /><br />", dados["TEXTO_FOLLOW_UP"].ToString(), "<br /><br />",
                                                        dados["ASSINATURA"].ToString());

                            email.NUMERO_PEDIDO  = Convert.ToDecimal(dados["NUMERO_PEDIDO"]);
                            email.CLIENTE        = CLIENTE;
                            email.CODIGO_PRODUTO = CODIGO_PRODUTO;
                            email.HISTORICO      = _OBS;
                            email.DESTINATARIOS  = DESTINATARIOS;
                            email.ID_CONTA_EMAIL = Convert.ToDecimal(dados["ID_CONTA_EMAIL"]);
                            email.FROM_ADDRESS   = dados["FROM_ADDRESS"].ToString();

                            email.Envia_Email_Posicao_Pedido();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO);
                throw ex;
            }
        }
Ejemplo n.º 3
0
        public List <object> Salva_Custos(List <Dictionary <string, object> > LINHAS)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    decimal NUMERO_ORCAMENTO      = 0;
                    decimal NUMERO_ITEM_ORCAMENTO = 0;

                    foreach (Dictionary <string, object> CUSTO in LINHAS)
                    {
                        NUMERO_ORCAMENTO      = Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]);
                        NUMERO_ITEM_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]);

                        var query = (from linha in ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs
                                     where linha.NUMERO_ORCAMENTO == Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]) &&
                                     linha.NUMERO_ITEM_ORCAMENTO == Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]) &&
                                     linha.NUMERO_CUSTO_VENDA == Convert.ToDecimal(CUSTO["NUMERO_CUSTO_VENDA"])
                                     select linha).ToList();

                        if (query.Count() > 0)
                        {
                            foreach (var item in query)
                            {
                                string VALOR_CUSTO = CUSTO["CUSTO_ITEM_ORCAMENTO"].ToString().Replace(".", ",");

                                item.CUSTO_ITEM_ORCAMENTO = Convert.ToDecimal(VALOR_CUSTO);
                                item.PREVISAO_ENTREGA     = Convert.ToDateTime(CUSTO["PREVISAO_ENTREGA"]);
                                item.OBS_CUSTO_VENDA      = string.IsNullOrEmpty(CUSTO["OBS_CUSTO_VENDA"].ToString()) ? "" :
                                                            CUSTO["OBS_CUSTO_VENDA"].ToString();

                                if (string.IsNullOrEmpty(CUSTO["CODIGO_FORNECEDOR"].ToString()))
                                {
                                    CUSTO["CODIGO_FORNECEDOR"] = null;
                                }

                                item.CODIGO_FORNECEDOR = Convert.ToDecimal(CUSTO["CODIGO_FORNECEDOR"]);

                                item.CODIGO_FORNECEDOR = item.CODIGO_FORNECEDOR.HasValue ? item.CODIGO_FORNECEDOR : null;

                                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs.GetModifiedMembers(item),
                                                                                                ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs.ToString(), Convert.ToDecimal(CUSTO["ID_USUARIO"]));
                            }
                        }
                        else
                        {
                            System.Data.Linq.Table <TB_CUSTO_ITEM_ORCAMENTO_VENDA> Entidade = ctx.GetTable <TB_CUSTO_ITEM_ORCAMENTO_VENDA>();

                            TB_CUSTO_ITEM_ORCAMENTO_VENDA novo = new TB_CUSTO_ITEM_ORCAMENTO_VENDA();

                            string VALOR_CUSTO = CUSTO["CUSTO_ITEM_ORCAMENTO"].ToString().Replace(".", ",");

                            novo.NUMERO_ORCAMENTO      = Convert.ToDecimal(CUSTO["NUMERO_ORCAMENTO"]);
                            novo.NUMERO_ITEM_ORCAMENTO = Convert.ToDecimal(CUSTO["NUMERO_ITEM_ORCAMENTO"]);
                            novo.NUMERO_CUSTO_VENDA    = Convert.ToDecimal(CUSTO["NUMERO_CUSTO_VENDA"]);
                            novo.CUSTO_ITEM_ORCAMENTO  = Convert.ToDecimal(VALOR_CUSTO);
                            novo.PREVISAO_ENTREGA      = Convert.ToDateTime(CUSTO["PREVISAO_ENTREGA"]);
                            novo.OBS_CUSTO_VENDA       = string.IsNullOrEmpty(CUSTO["OBS_CUSTO_VENDA"].ToString()) ? "" :
                                                         CUSTO["OBS_CUSTO_VENDA"].ToString();

                            if (string.IsNullOrEmpty(CUSTO["CODIGO_FORNECEDOR"].ToString()))
                            {
                                CUSTO["CODIGO_FORNECEDOR"] = null;
                            }

                            novo.CODIGO_FORNECEDOR = Convert.ToDecimal(CUSTO["CODIGO_FORNECEDOR"]);

                            novo.CODIGO_FORNECEDOR = novo.CODIGO_FORNECEDOR.HasValue ? novo.CODIGO_FORNECEDOR : null;

                            Entidade.InsertOnSubmit(novo);

                            Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(CUSTO["ID_USUARIO"]));
                        }
                    }

                    ctx.SubmitChanges();

                    List <object> retorno = new List <object>();

                    using (Doran_Comercial_Orcamentos item = new Doran_Comercial_Orcamentos(NUMERO_ORCAMENTO, Convert.ToDecimal(LINHAS[0]["ID_USUARIO"])))
                    {
                        retorno = item.Recalcula_Custos(NUMERO_ITEM_ORCAMENTO);
                    }

                    return(retorno);
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(LINHAS[0]["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 4
0
        public static Dictionary <string, string> Creditos_do_Cliente(decimal CODIGO_CLIENTE, string DataInicial, string DataFinal, decimal ID_EMPRESA)
        {
            DateTime dt1 = Convert.ToDateTime(DataInicial);
            DateTime dt2 = Convert.ToDateTime(DataFinal);

            dt2 = dt2.AddDays(1);

            Dictionary <string, string> retorno = new Dictionary <string, string>();

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var faturamento = (from linha in ctx.TB_NOTA_SAIDAs
                                   where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                   (linha.DATA_EMISSAO_NF >= dt1 &&
                                    linha.DATA_EMISSAO_NF < dt2) &&
                                   (linha.STATUS_NF == 2 || linha.STATUS_NF == 4)

                                   select linha).Sum(fat => fat.TOTAL_NF);

                if (faturamento.HasValue)
                {
                    retorno.Add("Faturamento", ((decimal)faturamento).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("Faturamento", 0.ToString("c", CultureInfo.CurrentCulture));
                }

                DateTime amanha = DateTime.Today;
                amanha = amanha.AddDays(1);

                var aReceber = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_VENCIMENTO >= amanha &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ar => ar.VALOR_TOTAL);

                if (aReceber.HasValue)
                {
                    retorno.Add("aReceber", ((decimal)aReceber).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("aReceber", 0.ToString("c", CultureInfo.CurrentCulture));
                }


                var Recebido = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                (linha.DATA_PAGAMENTO >= dt1 &&
                                 linha.DATA_PAGAMENTO < dt2) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(pa => pa.VALOR_TOTAL);

                if (Recebido.HasValue)
                {
                    retorno.Add("Recebido", ((decimal)Recebido).ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("Recebido", 0.ToString("c", CultureInfo.CurrentCulture));
                }

                decimal Inadimplente = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER, CODIGO_CLIENTE, ID_EMPRESA);

                if (Inadimplente > (decimal)0.00)
                {
                    retorno.Add("Inadimplente", "<span style='color: red;'>" + Inadimplente.ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Inadimplente", "<span>" + Inadimplente.ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }

                var limiteCliente = (from linha in ctx.TB_CLIENTEs
                                     where linha.ID_CLIENTE == CODIGO_CLIENTE
                                     select new
                {
                    linha.TB_LIMITE.VALOR_LIMITE
                }).ToList();

                decimal _limiteCliente = 0;

                foreach (var item in limiteCliente)
                {
                    _limiteCliente = (decimal)item.VALOR_LIMITE;
                }

                var EmAberto = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ab => ab.VALOR_TOTAL);

                if (EmAberto > _limiteCliente)
                {
                    EmAberto = EmAberto - _limiteCliente;
                }
                else
                {
                    EmAberto = 0;
                }

                EmAberto += Doran_Limite_Credito_Cliente.Limite_Excedido_Cliente(CODIGO_CLIENTE);

                if (EmAberto > (decimal)0.00)
                {
                    retorno.Add("Excedido", "<span style='color: red;'>" + ((decimal)EmAberto).ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Excedido", ((decimal)EmAberto).ToString("c", CultureInfo.CurrentCulture));
                }

                var Abatimentos = (from linha in ctx.GetTable <TB_SALDO_CLIENTE_FORNECEDOR>()
                                   orderby linha.CODIGO_CLIENTE, linha.SALDO_RESTANTE

                                   where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                   linha.SALDO_RESTANTE > (decimal)0.00

                                   select linha).Sum(a => a.SALDO_RESTANTE);

                if (Abatimentos.HasValue)
                {
                    retorno.Add("Abatimentos", "<span style='color: navy;'>" + ((decimal)Abatimentos).ToString("c", CultureInfo.CurrentCulture) + "</span>");
                }
                else
                {
                    retorno.Add("Abatimentos", ((decimal)0.00).ToString("c", CultureInfo.CurrentCulture));
                }

                // Data e Valor da Ultima Compra

                var ultimaCompra = (from linha in ctx.TB_NOTA_SAIDAs
                                    orderby linha.CODIGO_CLIENTE_NF, linha.DATA_EMISSAO_NF descending
                                    where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                    linha.STATUS_NF == 4
                                    select new { linha.DATA_EMISSAO_NF, linha.TOTAL_SERVICOS_NF }).Take(1).ToList();

                if (ultimaCompra.Any())
                {
                    foreach (var item in ultimaCompra)
                    {
                        retorno.Add("data_ultima_compra", ApoioXML.TrataData2(item.DATA_EMISSAO_NF));
                        retorno.Add("valor_ultima_compra", ((decimal)item.TOTAL_SERVICOS_NF).ToString("c"));
                    }
                }
                else
                {
                    retorno.Add("data_ultima_compra", "");
                    retorno.Add("valor_ultima_compra", ((decimal)0.00).ToString("c"));
                }

                // Maior compra

                var maiorCompra = (from linha in ctx.TB_NOTA_SAIDAs
                                   orderby linha.CODIGO_CLIENTE_NF, linha.DATA_EMISSAO_NF
                                   where linha.CODIGO_CLIENTE_NF == CODIGO_CLIENTE &&
                                   linha.STATUS_NF == 4
                                   select linha).Max(m => m.TOTAL_SERVICOS_NF);

                retorno.Add("maior_compra", maiorCompra.HasValue ? ((decimal)maiorCompra).ToString("c") : ((decimal)0.00).ToString("c"));

                return(retorno);
            }
        }
Ejemplo n.º 5
0
        public void GravaNovoContato(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_CLIENTE_CONTATO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_CLIENTE_CONTATO>();

                    Doran_Servicos_ORM.TB_CLIENTE_CONTATO novo = new Doran_Servicos_ORM.TB_CLIENTE_CONTATO();

                    novo.ID_CLIENTE                   = Convert.ToDecimal(dados["ID_CLIENTE"]);
                    novo.NOME_CONTATO_CLIENTE         = dados["NOME_CONTATO_CLIENTE"].ToString();
                    novo.TELEFONE_CONTATO_CLIENTE     = dados["TELEFONE_CONTATO_CLIENTE"].ToString();
                    novo.FAX_CONTATO_CLIENTE          = dados["FAX_CONTATO_CLIENTE"].ToString();
                    novo.EMAIL_CONTATO_CLIENTE        = dados["EMAIL_CONTATO_CLIENTE"].ToString();
                    novo.OBS_CONTATO_CLIENTE          = dados["OBS_CONTATO_CLIENTE"].ToString();
                    novo.RECEBE_COPIA_NOTA_ELETRONICA = Convert.ToDecimal(dados["RECEBE_COPIA_NOTA_ELETRONICA"]);
                    novo.SENHA_PORTAL                 = dados["SENHA_PORTAL"].ToString();

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 6
0
        private void GravaCustos(decimal SEQUENCIA_ITEM, decimal NUMERO_ITEM_ORCAMENTO, DateTime entrega, decimal ID_USUARIO)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var item = (from linha in ctx.TB_ITEM_ORCAMENTO_VENDAs
                            orderby linha.NUMERO_ORCAMENTO, linha.NUMERO_ITEM
                            where linha.NUMERO_ORCAMENTO == NOVO_NUMERO_ORCAMENTO
                            select linha).ToList().Skip((int)SEQUENCIA_ITEM).First();

                var query = (from linha in ctx.TB_CUSTO_ITEM_ORCAMENTO_VENDAs
                             orderby linha.NUMERO_ORCAMENTO, linha.NUMERO_ITEM_ORCAMENTO
                             where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO &&
                             linha.NUMERO_ITEM_ORCAMENTO == NUMERO_ITEM_ORCAMENTO
                             select linha).ToList();

                foreach (var item1 in query)
                {
                    System.Data.Linq.Table <TB_CUSTO_ITEM_ORCAMENTO_VENDA> Entidade = ctx.GetTable <TB_CUSTO_ITEM_ORCAMENTO_VENDA>();

                    TB_CUSTO_ITEM_ORCAMENTO_VENDA novo = new TB_CUSTO_ITEM_ORCAMENTO_VENDA();

                    novo.NUMERO_ORCAMENTO      = NOVO_NUMERO_ORCAMENTO;
                    novo.NUMERO_ITEM_ORCAMENTO = item.NUMERO_ITEM;
                    novo.NUMERO_CUSTO_VENDA    = item1.NUMERO_CUSTO_VENDA;
                    novo.CUSTO_ITEM_ORCAMENTO  = item1.CUSTO_ITEM_ORCAMENTO;
                    novo.PREVISAO_ENTREGA      = entrega;
                    novo.OBS_CUSTO_VENDA       = item1.OBS_CUSTO_VENDA;

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);
                }

                ctx.SubmitChanges();
            }
        }
Ejemplo n.º 7
0
        private string AtualizaStatusPedido(decimal?NUMERO_PEDIDO, decimal?NUMERO_ITEM, decimal?QTDE_A_FATURAR, decimal?QTDE_PEDIDO)
        {
            string retorno = "";

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                try
                {
                    ctx.Connection.Open();
                    ctx.Transaction = ctx.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);

                    var totalQtde = (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                     where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO &&
                                     linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM &&
                                     new List <decimal?>()
                    {
                        1, 2
                    }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF)
                                     select linha.QTDE_ITEM_NF).Sum();

                    decimal status        = 0;
                    decimal codigo_status = 0;

                    if (totalQtde < QTDE_PEDIDO)
                    {
                        status = 2;
                    }

                    if (totalQtde >= QTDE_PEDIDO)
                    {
                        status = 3;
                    }

                    ////////////////////////
                    var numerosInternos = (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                           where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO &&
                                           linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM &&
                                           new List <decimal?>()
                    {
                        1, 2
                    }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF)
                                           select linha.NUMERO_ITEM_NF).ToList().Distinct();

                    string cNumerosInternos = "";

                    foreach (var item in numerosInternos)
                    {
                        cNumerosInternos += string.Concat(item.ToString(), "/");
                    }

                    if (cNumerosInternos.Length > 0)
                    {
                        cNumerosInternos = cNumerosInternos.Substring(0, cNumerosInternos.Length - 1);
                    }

                    var numerosNF = (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                     where linha.NUMERO_PEDIDO_VENDA == NUMERO_PEDIDO &&
                                     linha.NUMERO_ITEM_PEDIDO_VENDA == NUMERO_ITEM &&
                                     new List <decimal?>()
                    {
                        1, 2
                    }.Contains(linha.TB_NOTA_SAIDA.STATUS_NF)
                                     select linha.TB_NOTA_SAIDA.NUMERO_NF).ToList().Distinct();

                    string cNumerosNF = "";

                    foreach (var item in numerosNF)
                    {
                        cNumerosNF += string.Concat(item.ToString(), "/");
                    }

                    if (cNumerosNF.Length > 0)
                    {
                        cNumerosNF = cNumerosNF.Substring(0, cNumerosNF.Length - 1);
                    }

                    var query = (from linha in ctx.TB_STATUS_PEDIDOs
                                 where linha.STATUS_ESPECIFICO == status
                                 select new
                    {
                        linha.DESCRICAO_STATUS_PEDIDO,
                        linha.COR_STATUS,
                        linha.COR_FONTE_STATUS,
                        linha.CODIGO_STATUS_PEDIDO
                    }).ToList();

                    string qtdeC_Faturada = totalQtde.HasValue ? totalQtde.ToString() : "0";
                    qtdeC_Faturada = qtdeC_Faturada.Replace(",", ".");

                    string qtdeC_Faturar = "0";

                    if (totalQtde.HasValue)
                    {
                        qtdeC_Faturar = status == 2 ? (QTDE_PEDIDO - totalQtde).ToString() : "0";
                    }

                    qtdeC_Faturar = qtdeC_Faturar.Replace(",", ".");

                    foreach (var item in query)
                    {
                        retorno = string.Concat("[{NUMERO_PEDIDO: ", NUMERO_PEDIDO.ToString(),
                                                ", NUMERO_ITEM: ", NUMERO_ITEM.ToString(), ", COR_STATUS: '", item.COR_STATUS.Trim(),
                                                "', COR_FONTE_STATUS: '", item.COR_FONTE_STATUS.Trim(), "', DESCRICAO_STATUS_PEDIDO: '",
                                                item.DESCRICAO_STATUS_PEDIDO.Trim(), "', CODIGO_STATUS_PEDIDO: ", item.CODIGO_STATUS_PEDIDO,
                                                ", QTDE_A_FATURAR: ", qtdeC_Faturar, ", QTDE_FATURADA: ", qtdeC_Faturada,
                                                ", NUMEROS_INTERNOS: '", cNumerosInternos, "', NUMEROS_NF: '", cNumerosNF, "'}],");

                        codigo_status = item.CODIGO_STATUS_PEDIDO;
                    }

                    var pedido = (from linha in ctx.TB_PEDIDO_VENDAs
                                  where linha.NUMERO_PEDIDO == NUMERO_PEDIDO &&
                                  linha.NUMERO_ITEM == NUMERO_ITEM
                                  select linha).ToList();

                    DateTime _hoje = DateTime.Now;

                    foreach (var item in pedido)
                    {
                        var DATA_STATUS_ANTERIOR = (from linha in ctx.TB_MUDANCA_STATUS_PEDIDOs
                                                    where linha.NUMERO_PEDIDO_VENDA == item.NUMERO_PEDIDO &&
                                                    linha.NUMERO_ITEM_VENDA == item.NUMERO_ITEM
                                                    select linha).Any() ?

                                                   (from linha in ctx.TB_MUDANCA_STATUS_PEDIDOs
                                                    where linha.NUMERO_PEDIDO_VENDA == item.NUMERO_PEDIDO &&
                                                    linha.NUMERO_ITEM_VENDA == item.NUMERO_ITEM
                                                    select linha.DATA_MUDANCA).Max() : item.DATA_PEDIDO;

                        System.Data.Linq.Table <Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO>();

                        Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO novo = new Doran_Servicos_ORM.TB_MUDANCA_STATUS_PEDIDO();

                        novo.NUMERO_PEDIDO_VENDA  = item.NUMERO_PEDIDO;
                        novo.NUMERO_ITEM_VENDA    = item.NUMERO_ITEM;
                        novo.DATA_MUDANCA         = _hoje;
                        novo.ID_USUARIO           = ID_USUARIO;
                        novo.ID_STATUS_ANTERIOR   = item.STATUS_ITEM_PEDIDO;
                        novo.ID_STATUS_NOVO       = codigo_status;
                        novo.DATA_STATUS_ANTERIOR = DATA_STATUS_ANTERIOR;
                        novo.ID_PRODUTO           = item.ID_PRODUTO_PEDIDO;

                        Entidade.InsertOnSubmit(novo);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert_PEDIDO_VENDA(ctx, novo, Entidade.ToString(), item.NUMERO_PEDIDO, ID_USUARIO);

                        ctx.SubmitChanges();

                        item.QTDE_A_FATURAR            = status == 2 ? QTDE_PEDIDO - totalQtde : 0;
                        item.ID_USUARIO_ITEM_A_FATURAR = 0;
                        item.ITEM_A_FATURAR            = 0;
                        item.STATUS_ITEM_PEDIDO        = codigo_status;

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update_PEDIDO_VENDA(ctx, ctx.TB_PEDIDO_VENDAs.GetModifiedMembers(item),
                                                                                                     ctx.TB_PEDIDO_VENDAs.ToString(), (decimal)NUMERO_PEDIDO, ID_USUARIO);

                        ctx.SubmitChanges();
                    }

                    ctx.Transaction.Commit();
                }
                catch
                {
                    ctx.Transaction.Rollback();
                    throw;
                }

                return(retorno);
            }
        }
Ejemplo n.º 8
0
        public Dictionary <string, object> Calcula_e_Grava_Item_Nota_Entrada(Dictionary <string, object> dados)
        {
            string str_conn = ConfigurationManager.ConnectionStrings["Doran_Servicos_ORM.Properties.Settings.Doran_ERP_ServicosConnectionString"].ConnectionString;

            using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext())
            {
                string CODIGO_CFOP    = dados["CODIGO_CFOP_ITEM_NFE"].ToString();
                string CLAS_FISCAL_NF = dados["CODIGO_CF_ITEM_NFE"].ToString();


                decimal VALOR_TOTAL_ITEM_NFE = Convert.ToDecimal(dados["VALOR_TOTAL_ITEM_NFE"]);
                decimal VALOR_IPI_ITEM_NFE   = Math.Round(VALOR_TOTAL_ITEM_NFE * (Convert.ToDecimal(dados["ALIQ_IPI_ITEM_NFE"]) / 100), 2);

                decimal ALIQ_ICMS_ITEM_NFE = Convert.ToDecimal(dados["ALIQ_ICMS_ITEM_NFE"]);
                decimal BASE_ICMS_ITEM_NFE = dados.ContainsKey("BASE_ICMS_ITEM_NFE") ?
                                             Convert.ToDecimal(dados["BASE_ICMS_ITEM_NFE"]) :
                                             Convert.ToDecimal(dados["VALOR_TOTAL_ITEM_NFE"]);

                decimal VALOR_ICMS_ITEM_NFE = Math.Round(BASE_ICMS_ITEM_NFE * (ALIQ_ICMS_ITEM_NFE / 100), 2);

                decimal BASE_ICMS_SUBS_ITEM_NFE  = Convert.ToDecimal(dados["BASE_ICMS_SUBS_ITEM_NFE"]);
                decimal VALOR_ICMS_SUBS_ITEM_NFE = Convert.ToDecimal(dados["VALOR_ICMS_SUBS_ITEM_NFE"]);

                try
                {
                    ctx1.Connection.ConnectionString = str_conn;
                    ctx1.Connection.Open();
                    ctx1.Transaction = ctx1.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);

                    decimal ID_PRODUTO = 0;

                    if (!dados.ContainsKey("ID_PRODUTO"))
                    {
                        var query = (from linha1 in ctx1.TB_PRODUTOs
                                     where linha1.CODIGO_PRODUTO == dados["CODIGO_PRODUTO_ITEM_NFE"].ToString()
                                     select new
                        {
                            linha1.ID_PRODUTO
                        }).ToList();

                        foreach (var item in query)
                        {
                            ID_PRODUTO = item.ID_PRODUTO;
                        }
                    }
                    else
                    {
                        if (!decimal.TryParse(dados["ID_PRODUTO"].ToString(), out ID_PRODUTO))
                        {
                            throw new Exception("ID de produto inv&aacute;lido");
                        }

                        ID_PRODUTO = Convert.ToDecimal(dados["ID_PRODUTO"]);
                    }

                    var existeProduto = (from linha1 in ctx1.TB_PRODUTOs
                                         where linha1.ID_PRODUTO == ID_PRODUTO
                                         select linha1).Any();

                    if (!existeProduto)
                    {
                        throw new Exception("C&oacute;digo de produto n&atilde;o cadastrado");
                    }

                    System.Data.Linq.Table <TB_ITEM_NOTA_ENTRADA> Entidade = ctx1.GetTable <TB_ITEM_NOTA_ENTRADA>();

                    TB_ITEM_NOTA_ENTRADA novo = new TB_ITEM_NOTA_ENTRADA();

                    novo.NUMERO_SEQ_NFE             = _NUMERO_SEQ;
                    novo.ID_PRODUTO_ITEM_NFE        = ID_PRODUTO;
                    novo.CODIGO_PRODUTO_ITEM_NFE    = dados["CODIGO_PRODUTO_ITEM_NFE"].ToString().Trim();
                    novo.DESCRICAO_PRODUTO_ITEM_NFE = dados["DESCRICAO_PRODUTO_ITEM_NFE"].ToString().Trim();
                    novo.CODIGO_CF_ITEM_NFE         = dados["CODIGO_CF_ITEM_NFE"].ToString();
                    novo.CODIGO_ST_ITEM_NFE         = dados["CODIGO_ST_ITEM_NFE"].ToString();
                    novo.CODIGO_CFOP_ITEM_NFE       = dados["CODIGO_CFOP_ITEM_NFE"].ToString();
                    novo.QTDE_ITEM_NFE            = Convert.ToDecimal(dados["QTDE_ITEM_NFE"]);
                    novo.VALOR_UNITARIO_ITEM_NFE  = Convert.ToDecimal(dados["VALOR_UNITARIO_ITEM_NFE"]);
                    novo.VALOR_TOTAL_ITEM_NFE     = VALOR_TOTAL_ITEM_NFE;
                    novo.ALIQ_ICMS_ITEM_NFE       = ALIQ_ICMS_ITEM_NFE;
                    novo.VALOR_ICMS_ITEM_NFE      = VALOR_ICMS_ITEM_NFE;
                    novo.BASE_ICMS_ITEM_NFE       = BASE_ICMS_ITEM_NFE;
                    novo.ALIQ_IPI_ITEM_NFE        = Convert.ToDecimal(dados["ALIQ_IPI_ITEM_NFE"]);
                    novo.VALOR_IPI_ITEM_NFE       = VALOR_IPI_ITEM_NFE;
                    novo.BASE_ICMS_SUBS_ITEM_NFE  = BASE_ICMS_SUBS_ITEM_NFE;
                    novo.VALOR_ICMS_SUBS_ITEM_NFE = VALOR_ICMS_SUBS_ITEM_NFE;
                    novo.PERC_IVA_ITEM_NFE        = Convert.ToDecimal(dados["PERC_IVA_ITEM_NFE"]);
                    novo.DATA_CHEGADA_ITEM_NFE    = DateTime.Now;
                    novo.NUMERO_LOTE_ITEM_NFE     = dados["NUMERO_LOTE_ITEM_NFE"].ToString();

                    novo.NUMERO_PEDIDO_COMPRA       = dados.ContainsKey("NUMERO_PEDIDO_COMPRA") ? Convert.ToDecimal(dados["NUMERO_PEDIDO_COMPRA"]) : 0;
                    novo.NUMERO_ITEM_COMPRA         = dados.ContainsKey("NUMERO_ITEM_COMPRA") ? Convert.ToDecimal(dados["NUMERO_ITEM_COMPRA"]) : 0;
                    novo.SALDO_ITEM_NFE             = Convert.ToDecimal(dados["QTDE_ITEM_NFE"]);
                    novo.ABATIMENTO_CONCEDIDO       = dados.ContainsKey("ABATIMENTO_CONCEDIDO") ? Convert.ToDecimal(dados["ABATIMENTO_CONCEDIDO"]) : 0;
                    novo.ALIQ_ICMS_SAIDA_ICMS_ST    = dados.ContainsKey("ALIQ_ICMS_SAIDA_ICMS_ST") ? Convert.ToDecimal(dados["ALIQ_ICMS_SAIDA_ICMS_ST"]) : 0;
                    novo.PERCENTUAL_IPI_A_RECUPERAR = dados.ContainsKey("PERCENTUAL_IPI_A_RECUPERAR") ? Convert.ToDecimal(dados["PERCENTUAL_IPI_A_RECUPERAR"]) : 0;

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx1, novo, Entidade.ToString(), ID_USUARIO);

                    ctx1.SubmitChanges();

                    var CFOP_DEVOLUCAO = (from linha1 in ctx1.TB_CFOPs
                                          where linha1.CODIGO_CFOP == novo.CODIGO_CFOP_ITEM_NFE
                                          select linha1.OPERACAO_DEVOLUCAO).ToList().First();

                    if (novo.ABATIMENTO_CONCEDIDO == 1 && CFOP_DEVOLUCAO == 1)
                    {
                        using (Doran_Saldo_Cliente_Fornecedor abatimento_cliente = new Doran_Saldo_Cliente_Fornecedor(Convert.ToDecimal(dados["ID_USUARIO"])))
                        {
                            abatimento_cliente.NUMERO_SEQ_NF_ENTRADA  = novo.NUMERO_SEQ_NFE;
                            abatimento_cliente.NUMERO_ITEM_NF_ENTRADA = novo.NUMERO_SEQ_ITEM_NFE;
                            abatimento_cliente.Grava_Futuro_Abatimento_Cliente(novo.VALOR_TOTAL_ITEM_NFE, ctx1);
                        }
                    }

                    Dictionary <string, decimal> linha = new Dictionary <string, decimal>();

                    linha.Add("TOTAL_PRODUTOS_NFE", VALOR_TOTAL_ITEM_NFE);
                    linha.Add("TOTAL_IPI_NFE", VALOR_IPI_ITEM_NFE);
                    linha.Add("BASE_ICMS_NFE", BASE_ICMS_ITEM_NFE);
                    linha.Add("VALOR_ICMS_NFE", VALOR_ICMS_ITEM_NFE);
                    linha.Add("BASE_ICMS_SUBS_NFE", BASE_ICMS_SUBS_ITEM_NFE);
                    linha.Add("VALOR_ICMS_SUBS_NFE", VALOR_ICMS_SUBS_ITEM_NFE);

                    Dictionary <string, object> retorno = Calcula_e_Grava_Totais_Nota_Entrada(ctx1, linha, true);

                    ctx1.Transaction.Commit();

                    return(retorno);
                }
                catch
                {
                    ctx1.Transaction.Rollback();
                    throw;
                }
            }
        }
Ejemplo n.º 9
0
        public void Grava_Dados_Cliente_e_Fornecedor(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var existe_cnpj = (from linha in ctx.GetTable <TB_CLIENTE>()

                                   orderby linha.CNPJ_CLIENTE

                                   where linha.CNPJ_CLIENTE == dados["CNPJ_CLIENTE"].ToString()

                                   select linha).Any();

                if (existe_cnpj)
                {
                    throw new Exception("J&aacute; existe um cliente cadastrado com este CNPJ [" + dados["CNPJ_CLIENTE"].ToString() + "]");
                }

                var existe_nome_fantasia = (from linha in ctx.GetTable <TB_CLIENTE>()

                                            orderby linha.NOMEFANTASIA_CLIENTE

                                            where linha.NOMEFANTASIA_CLIENTE == dados["NOMEFANTASIA_CLIENTE"].ToString()

                                            select linha).Any();

                if (existe_nome_fantasia)
                {
                    throw new Exception("J&aacute; existe um cliente cadastrado com este nome fantasia [" + dados["NOMEFANTASIA_CLIENTE"].ToString() + "]");
                }

                decimal id_uf = decimal.TryParse(dados["ESTADO_ENTREGA"].ToString(), out id_uf) ?
                                Convert.ToDecimal(dados["ESTADO_ENTREGA"]) : 0;

                decimal cidade = decimal.TryParse(dados["CIDADE_ENTREGA"].ToString(), out cidade) ?
                                 Convert.ToDecimal(dados["CIDADE_ENTREGA"]) : 0;

                decimal id_uf1 = decimal.TryParse(dados["ESTADO_COBRANCA"].ToString(), out id_uf1) ?
                                 Convert.ToDecimal(dados["ESTADO_COBRANCA"]) : 0;

                decimal cidade1 = decimal.TryParse(dados["CIDADE_COBRANCA"].ToString(), out cidade1) ?
                                  Convert.ToDecimal(dados["CIDADE_COBRANCA"]) : 0;

                System.Data.Linq.Table <Doran_Servicos_ORM.TB_CLIENTE> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_CLIENTE>();

                Doran_Servicos_ORM.TB_CLIENTE novo = new Doran_Servicos_ORM.TB_CLIENTE();

                novo.NOME_CLIENTE         = dados["NOME_CLIENTE"].ToString();
                novo.NOMEFANTASIA_CLIENTE = dados["NOMEFANTASIA_CLIENTE"].ToString();
                novo.CNPJ_CLIENTE         = dados["CNPJ_CLIENTE"].ToString();
                novo.IE_CLIENTE           = dados["IE_CLIENTE"].ToString();
                novo.IE_SUFRAMA           = dados["IE_SUFRAMA"].ToString();

                novo.ENDERECO_FATURA   = dados["ENDERECO_FATURA"].ToString();
                novo.NUMERO_END_FATURA = dados["NUMERO_END_FATURA"].ToString();
                novo.COMP_END_FATURA   = dados["COMP_END_FATURA"].ToString();

                novo.CEP_FATURA      = dados["CEP_FATURA"].ToString();
                novo.BAIRRO_FATURA   = dados["BAIRRO_FATURA"].ToString();
                novo.CIDADE_FATURA   = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                novo.ESTADO_FATURA   = Convert.ToDecimal(dados["ESTADO_FATURA"]);
                novo.TELEFONE_FATURA = dados["TELEFONE_FATURA"].ToString();

                novo.ENDERECO_ENTREGA   = dados["ENDERECO_ENTREGA"].ToString();
                novo.NUMERO_END_ENTREGA = dados["NUMERO_END_ENTREGA"].ToString();
                novo.COMP_END_ENTREGA   = dados["COMP_END_ENTREGA"].ToString();

                novo.CEP_ENTREGA      = dados["CEP_ENTREGA"].ToString();
                novo.BAIRRO_ENTREGA   = dados["BAIRRO_ENTREGA"].ToString();
                novo.CIDADE_ENTREGA   = cidade;
                novo.ESTADO_ENTREGA   = id_uf;
                novo.TELEFONE_ENTREGA = dados["TELEFONE_ENTREGA"].ToString();

                novo.ENDERECO_COBRANCA = dados["ENDERECO_COBRANCA"].ToString();
                novo.CEP_COBRANCA      = dados["CEP_COBRANCA"].ToString();
                novo.BAIRRO_COBRANCA   = dados["BAIRRO_COBRANCA"].ToString();
                novo.CIDADE_COBRANCA   = cidade1;
                novo.ESTADO_COBRANCA   = id_uf1;
                novo.TELEFONE_COBRANCA = dados["TELEFONE_COBRANCA"].ToString();

                novo.CODIGO_CP_CLIENTE = Convert.ToDecimal(dados["CODIGO_CP_CLIENTE"]);
                novo.ID_LIMITE         = Convert.ToDecimal(dados["ID_LIMITE_CLIENTE"]);

                novo.CODIGO_VENDEDOR_CLIENTE = Convert.ToDecimal(dados["CODIGO_VENDEDOR_CLIENTE"]);
                novo.OBS_CLIENTE             = dados["OBS_CLIENTE"].ToString();
                novo.PESSOA = Convert.ToDecimal(dados["PESSOA"]);

                novo.EMAIL_CLIENTE     = dados["EMAIL_CLIENTE"].ToString();
                novo.ENVIO_NFE_CLIENTE = Convert.ToDecimal(dados["ENVIO_NFE_CLIENTE"]);

                novo.CODIGO_EMITENTE = Convert.ToDecimal(dados["ID_EMPRESA"]);

                novo.CLIENTE_BLOQUEADO = Convert.ToDecimal(dados["CLIENTE_BLOQUEADO"]);

                novo.FORNECEDOR          = Convert.ToDecimal(dados["FORNECEDOR"]);
                novo.DATA_ULTIMA_FATURA  = new DateTime(1901, 01, 01);
                novo.VALOR_ULTIMA_FATURA = 0;
                novo.DATA_CADASTRO       = DateTime.Now;

                novo.CODIGO_REGIAO = dados["CODIGO_REGIAO"].ToString();

                Entidade.InsertOnSubmit(novo);

                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                if (novo.FORNECEDOR == 1)
                {
                    // Grava Fornecedor

                    var fornecedor_cnpj = (from linha in ctx.GetTable <TB_FORNECEDOR>()

                                           orderby linha.CNPJ_FORNECEDOR

                                           where linha.CNPJ_FORNECEDOR == dados["CNPJ_CLIENTE"].ToString()

                                           select linha).ToList();

                    var fornecedor_nome_fantasia = (from linha in ctx.GetTable <TB_FORNECEDOR>()

                                                    orderby linha.NOME_FANTASIA_FORNECEDOR

                                                    where linha.NOME_FANTASIA_FORNECEDOR == dados["NOMEFANTASIA_CLIENTE"].ToString()

                                                    select linha).ToList();

                    if (!fornecedor_cnpj.Any() && !fornecedor_nome_fantasia.Any())
                    {
                        Table <TB_FORNECEDOR> Entidade1 = ctx.GetTable <TB_FORNECEDOR>();

                        TB_FORNECEDOR novo1 = new TB_FORNECEDOR();

                        novo1.NOME_FORNECEDOR          = dados["NOME_CLIENTE"].ToString();
                        novo1.NOME_FANTASIA_FORNECEDOR = dados["NOMEFANTASIA_CLIENTE"].ToString();
                        novo1.CNPJ_FORNECEDOR          = dados["CNPJ_CLIENTE"].ToString();
                        novo1.IE_FORNECEDOR            = dados["IE_CLIENTE"].ToString();

                        novo1.ENDERECO_FORNECEDOR   = dados["ENDERECO_FATURA"].ToString();
                        novo1.NUMERO_END_FORNECEDOR = dados["NUMERO_END_ENTREGA"].ToString();
                        novo1.COMPL_END_FORNECEDOR  = dados["COMP_END_FATURA"].ToString();
                        novo1.CEP_FORNECEDOR        = dados["CEP_FATURA"].ToString();
                        novo1.BAIRRO_FORNECEDOR     = dados["BAIRRO_FATURA"].ToString();

                        novo1.ID_MUNICIPIO_FORNECEDOR = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                        novo1.ID_UF_FORNECEDOR        = Convert.ToDecimal(dados["ESTADO_FATURA"]);

                        novo1.TELEFONE1_FORNECEDOR = dados["TELEFONE_FATURA"].ToString();
                        novo1.TELEFONE2_FORNECEDOR = string.Empty;

                        novo1.FAX_FORNECEDOR = string.Empty;
                        novo1.OBS_FORNECEDOR = string.Empty;

                        novo1.EMAIL_FORNECEDOR = dados["EMAIL_CLIENTE"].ToString();

                        novo1.CONTATO_FORNECEDOR = string.Empty;

                        novo1.CLIENTE = 1;

                        novo1.CODIGO_EMITENTE = Convert.ToDecimal(dados["ID_EMPRESA"]);

                        Entidade1.InsertOnSubmit(novo1);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo1, Entidade1.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                    }
                    else
                    {
                        foreach (var item in fornecedor_nome_fantasia)
                        {
                            item.NOME_FORNECEDOR          = dados["NOME_CLIENTE"].ToString();
                            item.NOME_FANTASIA_FORNECEDOR = dados["NOMEFANTASIA_CLIENTE"].ToString();
                            item.CNPJ_FORNECEDOR          = dados["CNPJ_CLIENTE"].ToString();
                            item.IE_FORNECEDOR            = dados["IE_CLIENTE"].ToString();

                            item.ENDERECO_FORNECEDOR   = dados["ENDERECO_FATURA"].ToString();
                            item.NUMERO_END_FORNECEDOR = dados["NUMERO_END_ENTREGA"].ToString();
                            item.COMPL_END_FORNECEDOR  = dados["COMP_END_FATURA"].ToString();
                            item.CEP_FORNECEDOR        = dados["CEP_FATURA"].ToString();
                            item.BAIRRO_FORNECEDOR     = dados["BAIRRO_FATURA"].ToString();

                            item.ID_MUNICIPIO_FORNECEDOR = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                            item.ID_UF_FORNECEDOR        = Convert.ToDecimal(dados["ESTADO_FATURA"]);

                            item.TELEFONE1_FORNECEDOR = dados["TELEFONE_FATURA"].ToString();
                            item.TELEFONE2_FORNECEDOR = string.Empty;

                            item.FAX_FORNECEDOR = string.Empty;
                            item.OBS_FORNECEDOR = string.Empty;

                            item.EMAIL_FORNECEDOR = dados["EMAIL_CLIENTE"].ToString();

                            item.CLIENTE = 1;

                            item.CODIGO_EMITENTE = Convert.ToDecimal(dados["ID_EMPRESA"]);

                            Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.GetTable <TB_FORNECEDOR>().GetModifiedMembers(item),
                                                                                            "TB_FORNECEDOR", Convert.ToDecimal(dados["ID_USUARIO"]));
                        }
                    }
                }

                ctx.SubmitChanges();
            }
        }
Ejemplo n.º 10
0
        public List <string> GraficoCreditoCliente(decimal CODIGO_CLIENTE)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                DateTime amanha = DateTime.Today;
                amanha = amanha.AddDays(1);

                var aReceber = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_VENCIMENTO >= amanha &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ar => ar.VALOR_TOTAL);

                if (!aReceber.HasValue)
                {
                    aReceber = 0;
                }

                decimal Inadimplente = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER, CODIGO_CLIENTE, ID_EMPRESA);

                var limiteCliente = (from linha in ctx.TB_CLIENTEs
                                     where linha.ID_CLIENTE == CODIGO_CLIENTE
                                     select new
                {
                    linha.TB_LIMITE.VALOR_LIMITE
                }).ToList();

                decimal _limiteCliente = 0;

                foreach (var item in limiteCliente)
                {
                    _limiteCliente = (decimal)item.VALOR_LIMITE;
                }

                var EmAberto = (from linha in ctx.TB_FINANCEIROs
                                where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.CREDITO_DEBITO == 0

                                select linha).Sum(ab => ab.VALOR_TOTAL);

                EmAberto += Doran_Limite_Credito_Cliente.Limite_Excedido_Cliente(CODIGO_CLIENTE);

                if (EmAberto > _limiteCliente)
                {
                    EmAberto = EmAberto - _limiteCliente;
                }
                else
                {
                    EmAberto = 0;
                }

                var Abatimentos = (from linha in ctx.GetTable <TB_SALDO_CLIENTE_FORNECEDOR>()
                                   orderby linha.CODIGO_CLIENTE, linha.SALDO_RESTANTE

                                   where linha.CODIGO_CLIENTE == CODIGO_CLIENTE &&
                                   linha.SALDO_RESTANTE > (decimal)0.00

                                   select linha).Sum(a => a.SALDO_RESTANTE);

                string _aReceber = aReceber.ToString();
                _aReceber = _aReceber.Replace(",", ".");

                string _Inadimplente = Inadimplente.ToString();
                _Inadimplente = _Inadimplente.Replace(",", ".");

                string _emAberto = EmAberto.ToString();
                _emAberto = _emAberto.Replace(",", ".");

                string _Abatimentos = Abatimentos.HasValue ? Abatimentos.ToString() : "";
                _Abatimentos = _Abatimentos.Replace(",", ".");

                List <string> retorno = new List <string>();

                retorno.Add("['Total a Receber', " + _aReceber + "]");
                retorno.Add("['Total Inadimplente', " + _Inadimplente + "]");
                retorno.Add("['Limite de Crédito Excedido', " + _emAberto + " ]");
                retorno.Add("['Abatimento(s)', " + _Abatimentos + " ]");

                return(retorno);
            }
        }
Ejemplo n.º 11
0
        public List <object> Imprime_Pedido_Fornecedor(decimal ID_CONTA_EMAIL, string CNPJ_EMITENTE, decimal ID_USUARIO, string LOGIN_USUARIO)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query = (from linha in ctx1.TB_CONFIG_VENDAs
                             where linha.ID_CONFIGURACAO_VENDAS == 1
                             select linha.LOGOTIPO_ORCAMENTO_VENDAS).ToList();

                foreach (var item in query)
                {
                    LOGOTIPO = ConfigurationManager.AppSettings["PastaVirtual"] + item.Trim();
                }
            }

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var STATUS_CONFIRMADO = (from linha in ctx.TB_STATUS_PEDIDO_COMPRAs
                                         where linha.STATUS_ESPECIFICO_ITEM_COMPRA == 6
                                         select linha.CODIGO_STATUS_COMPRA).ToList().First();

                var query = (from linha in ctx.TB_PEDIDO_COMPRAs
                             orderby linha.NUMERO_PEDIDO_COMPRA, linha.NUMERO_ITEM_COMPRA
                             where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA &&
                             linha.NUMERO_ITEM_COMPRA == _ITENS[0] &&
                             linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR

                             select linha).ToList();

                foreach (var item in query)
                {
                    TB_EMITENTE EMITENTE = new TB_EMITENTE();

                    Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext();

                    EMITENTE = (from linha in ctx1.TB_EMITENTEs
                                orderby linha.CNPJ_EMITENTE
                                where linha.CNPJ_EMITENTE == CNPJ_EMITENTE

                                select linha).ToList().First();

                    htmlPEDIDO.Append(@"<table border=""0"" width=""770""><tbody>
<tr>
<td>&nbsp; </td>
<td align=""right""><b>Cota&ccedil;&atilde;o de Compra N&ordm;</b>" + item.NUMERO_PEDIDO_COMPRA.ToString() + @" </td>
<td align=""right"">" + ApoioXML.TrataData2(item.DATA_ITEM_COMPRA) + @"</td>
<td align=""right""></td></tr></tbody></table>
<hr align=""left"" width=""770"">
<table border=""0"" width=""770"">
<tbody>
<tr>
<td><img src='" + LOGOTIPO + @"'></td>
<td></td></tr>
<tr>
<td valign=""top"">" + EMITENTE.NOME_EMITENTE.Trim() + @"<br>" + EMITENTE.ENDERECO_EMITENTE.Trim() + " " + EMITENTE.NUMERO_END_EMITENTE.Trim() + " " + EMITENTE.COMPLEMENTO_END_EMITENTE.Trim() + "<br />" + EMITENTE.TB_MUNICIPIO.NOME_MUNICIPIO.Trim() + @" - " + EMITENTE.TB_MUNICIPIO.TB_UF.SIGLA_UF + @" - BRASIL<br><b>Tel.:</b>" + EMITENTE.TELEFONE_EMITENTE.Trim() + " - <b>Fax:</b>" + EMITENTE.FAX_EMITENTE.Trim() + "<br><b>CNPJ:</b>" + EMITENTE.CNPJ_EMITENTE.Trim() + "<br><br><b>Contato(a):</b>" + LOGIN_USUARIO.Trim() + "<br><b>e-mail:</b> " + EMITENTE.EMAIL_EMITENTE.Trim() + @" - <b>site:</b>http://www.indufix.com.br<br></td>
<td style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" valign=""top""><b>Fornecedor:</b><br>" + item.CODIGO_FORNECEDOR.ToString() + @" - " + item.TB_FORNECEDOR.NOME_FORNECEDOR.Trim() + "<br>" + item.TB_FORNECEDOR.ENDERECO_FORNECEDOR.Trim() + " " + item.TB_FORNECEDOR.NUMERO_END_FORNECEDOR.Trim() + " " + item.TB_FORNECEDOR.COMPL_END_FORNECEDOR.Trim() + "<br>" + item.TB_FORNECEDOR.TB_MUNICIPIO.NOME_MUNICIPIO.Trim() + " - " + item.TB_FORNECEDOR.TB_MUNICIPIO.TB_UF.SIGLA_UF + " - " + item.TB_FORNECEDOR.CEP_FORNECEDOR.Trim() + "<br><b>CNPJ:</b>" + item.TB_FORNECEDOR.CNPJ_FORNECEDOR.Trim() + " - <b>I.E.:</b>" + item.TB_FORNECEDOR.IE_FORNECEDOR.Trim() + "<br><b>Contato: </b>" + item.TB_FORNECEDOR.CONTATO_FORNECEDOR.Trim() + "<br><b>Telefone:</b>" + item.TB_FORNECEDOR.TELEFONE1_FORNECEDOR.Trim() + " <br><strong>e-mail:</strong> " + item.TB_FORNECEDOR.EMAIL_FORNECEDOR.Trim() + @"</td></tr></tbody></table><br>
<table style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" width=""770"">
<tbody>
<tr>
<td><b>Condições de Fornecimento</b><br><br><b>Pagamento:</b>" + item.TB_COND_PAGTO.DESCRICAO_CP.Trim() + @"</td>
<td><br></td></tr></tbody></table>
<div style=""TEXT-ALIGN: center; WIDTH: 770px; HEIGHT: 40px""></div>
<table style=""BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid"" width=""770"">
<tbody>
<tr>
<td style=""BORDER-BOTTOM: 1px solid""><b>Produto</b> </td>
<td style=""BORDER-BOTTOM: 1px solid""><b>C&oacute;digo</b> </td>
<td style=""BORDER-BOTTOM: 1px solid"" align=""middle""><b>UN</b> </td>
<td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Qtde.</b> </td>
<td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Pre&ccedil;o</b> </td>
<td style=""BORDER-BOTTOM: 1px solid"" align=""right""><b>Total Item</b> </td>
<td style=""BORDER-BOTTOM: 1px solid"" align=""middle""><b>Entrega</b> </td></tr>
");

                    NOME_FORNECEDOR = item.TB_FORNECEDOR.NOME_FANTASIA_FORNECEDOR.Trim();
                    NOME_FORNECEDOR = NOME_FORNECEDOR.Replace(" ", "_");
                    NOME_FORNECEDOR = ApoioXML.TrataSinais(NOME_FORNECEDOR);

                    ctx1.Dispose();
                }

                // Produtos

                decimal TOTAL_PRODUTOS = 0;
                decimal TOTAL_ICMS     = 0;
                decimal TOTAL_ICMS_ST  = 0;
                decimal TOTAL_IPI      = 0;
                decimal TOTAL_PEDIDO   = 0;

                var query1 = (from linha in ctx.TB_PEDIDO_COMPRAs

                              where linha.NUMERO_PEDIDO_COMPRA == NUMERO_PEDIDO_COMPRA &&
                              _ITENS.Contains(linha.NUMERO_ITEM_COMPRA) &&
                              linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR

                              select linha).ToList();

                foreach (var item in query1)
                {
                    decimal PRECO_FINAL = 0;

                    if (item.TIPO_DESCONTO_ITEM_COMPRA == 1)
                    {
                        PRECO_FINAL = (decimal)item.PRECO_FINAL_FORNECEDOR - (decimal)item.VALOR_DESCONTO_ITEM_COMPRA;
                    }
                    else
                    {
                        PRECO_FINAL = Math.Round((decimal)item.PRECO_FINAL_FORNECEDOR * (1 - ((decimal)item.VALOR_DESCONTO_ITEM_COMPRA / 100)), 4);
                    }


                    string VENDEDOR = (from linha in ctx.TB_ASSOCIACAO_COMPRA_VENDAs
                                       where linha.NUMERO_PEDIDO_COMPRA == item.NUMERO_PEDIDO_COMPRA &&
                                       linha.NUMERO_ITEM_COMPRA == item.NUMERO_ITEM_COMPRA
                                       select linha).Any() ?

                                      (from linha in ctx.TB_ASSOCIACAO_COMPRA_VENDAs
                                       where linha.NUMERO_PEDIDO_COMPRA == item.NUMERO_PEDIDO_COMPRA &&
                                       linha.NUMERO_ITEM_COMPRA == item.NUMERO_ITEM_COMPRA
                                       select linha.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.TB_VENDEDORE.NOME_VENDEDOR).First().Trim() :

                                      string.Empty;

                    VENDEDOR = VENDEDOR.Length > 0 ?
                               "<br />Vendedor(a): " + VENDEDOR : "";

                    htmlPEDIDO.Append(@"<tr style=""border-bottom: solid 1px;"">
<td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + item.TB_PRODUTO.DESCRICAO_PRODUTO.Trim() + VENDEDOR + @"
</td>
<td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + item.CODIGO_PRODUTO_COMPRA.Trim() + @"
</td>
<td style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + item.UNIDADE_ITEM_COMPRA + @"
</td>
<td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + ((decimal)item.QTDE_ITEM_COMPRA).ToString("n") + @"
</td>
<td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + PRECO_FINAL.ToString().Valor_Moeda(4) + @"
</td>
<td align=""right"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + ((decimal)item.VALOR_TOTAL_ITEM_COMPRA).ToString("c") + @"
</td>
<td align=""center"" style=""border-left-width: 1px; border-left-style: solid; font-size: 9pt;"" valign=""top"">
" + ApoioXML.TrataData2(item.PREVISAO_ENTREGA_ITEM_COMPRA) + @"
</td>
</tr>
");

                    if (item.OBS_ITEM_COMPRA.Length > 0)
                    {
                        htmlPEDIDO.Append(@"<tr>
<td style=""BORDER-BOTTOM: 1px solid"" colspan=7>" + item.OBS_ITEM_COMPRA + @"</td>
</tr>");
                    }

                    TOTAL_PRODUTOS += (decimal)item.VALOR_TOTAL_ITEM_COMPRA;
                    TOTAL_ICMS     += (decimal)item.VALOR_ICMS_ITEM_COMPRA;
                    TOTAL_ICMS_ST  += (decimal)item.VALOR_ICMS_ST_ITEM_COMPRA;
                    TOTAL_IPI      += (decimal)item.VALOR_IPI_ITEM_COMPRA;
                    TOTAL_PEDIDO   += (decimal)item.VALOR_TOTAL_ITEM_COMPRA +
                                      (decimal)item.VALOR_IPI_ITEM_COMPRA +
                                      (decimal)item.VALOR_ICMS_ST_ITEM_COMPRA;

                    if (StatusEspecifico(item.STATUS_ITEM_COMPRA) == 2)
                    {
                        item.STATUS_ITEM_COMPRA = STATUS_CONFIRMADO; // Pedido Confirmado

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_PEDIDO_COMPRAs.GetModifiedMembers(item),
                                                                                        ctx.TB_PEDIDO_COMPRAs.ToString(), ID_USUARIO);
                    }
                }

                htmlPEDIDO.Append(@"</tbody></table>
<hr align=""left"" width=""770"">

<table width=""770"">
<tbody>
<tr>
<td style=""WIDTH: 50%""></td>
<td>
<table width=""100%"">
<tbody>
<tr>
<td align=""right""><b>Sub Total:</b> </td>
<td align=""right"">" + TOTAL_PRODUTOS.ToString("c") + @"</td></tr>
<tr>
<td align=""right""><b>Total de IPI:</b> </td>
<td align=""right"">" + TOTAL_IPI.ToString("c") + @"</td></tr>
<tr>
<td align=""right""><b>Total de ICMS:</b> </td>
<td align=""right"">" + TOTAL_ICMS.ToString("c") + @"</td></tr>
<tr>
<td align=""right""><b>Total de ICMS ST:</b> </td>
<td align=""right"">" + TOTAL_ICMS_ST.ToString("c") + @"</td></tr>
<tr>
<td align=""right""><b>Total do Pedido:</b> </td>
<td align=""right"">" + TOTAL_PEDIDO.ToString("c") + " </td></tr></tbody></table></td></tr></tbody></table>");

                ctx.SubmitChanges();
            }

            Grava_PDF_Pedido(htmlPEDIDO);

            Merge(_Arquivo);

            List <object> retorno = new List <object>();

            retorno.Add(ConfigurationManager.AppSettings["PastaVirtualPDF"] + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf");

            using (Doran_ERP_Servicos_DadosDataContext ctx2 = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query1 = (from linha in ctx2.TB_PEDIDO_COMPRAs
                              orderby linha.NUMERO_PEDIDO_COMPRA, linha.NUMERO_ITEM_COMPRA
                              where linha.NUMERO_ITEM_COMPRA == _ITENS[0] &&
                              linha.CODIGO_FORNECEDOR == CODIGO_FORNECEDOR

                              select linha).ToList();

                retorno.Add(query1.First().STATUS_ITEM_COMPRA);
                retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.DESCRICAO_STATUS_PEDIDO_COMPRA.Trim());
                retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.COR_STATUS_PEDIDO_COMPRA.Trim());
                retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.COR_FONTE_STATUS_PEDIDO_COMPRA.Trim());
                retorno.Add(query1.First().TB_STATUS_PEDIDO_COMPRA.STATUS_ESPECIFICO_ITEM_COMPRA);

                if (ID_CONTA_EMAIL > 0)
                {
                    string pdf = ConfigurationManager.AppSettings["PastaFisicaPDF"] + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf";

                    var pasta_anexos = (from linha in ctx2.GetTable <TB_EMAIL_CONTA>()
                                        where linha.ID_CONTA_EMAIL == ID_CONTA_EMAIL
                                        select linha.PASTA_ANEXOS).ToList().First();

                    arquivo_final = pasta_anexos.EndsWith("\\") ?
                                    pasta_anexos + "PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf" :
                                    pasta_anexos + "\\PEDIDO_COTACAO_COMPRA_" + NUMERO_PEDIDO_COMPRA.ToString() + "_" + NOME_FORNECEDOR + ".pdf";

                    File.Copy(pdf, arquivo_final, true);

                    retorno.Add(arquivo_final);
                }
            }

            return(retorno);
        }
Ejemplo n.º 12
0
        public void GravaNovaConta(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_CONTA_CORRENTE> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_CONTA_CORRENTE>();

                    Doran_Servicos_ORM.TB_CONTA_CORRENTE novo = new Doran_Servicos_ORM.TB_CONTA_CORRENTE();

                    novo.NUMERO_AGENCIA        = dados["NUMERO_AGENCIA"].ToString();
                    novo.NUMERO_CONTA          = dados["NUMERO_CONTA"].ToString();
                    novo.NUMERO_BANCO          = Convert.ToDecimal(dados["NUMERO_BANCO"]);
                    novo.ULTIMA_REMESSA        = Convert.ToDecimal(dados["ULTIMA_REMESSA"]);
                    novo.CONTROLE_NOSSO_NUMERO = dados["CONTROLE_NOSSO_NUMERO"].ToString();

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 13
0
        public void Grava_Dados_Faturamento(Dictionary <string, object> dados)
        {
            try
            {
                decimal NUMERO_PEDIDO_VENDA = 0;

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    var query = (from item in ctx.TB_DADOS_FATURAMENTOs
                                 where item.NUMERO_PEDIDO == Convert.ToDecimal(dados["NUMERO_PEDIDO"])
                                 select item).ToList();

                    if (!query.Any())
                    {
                        System.Data.Linq.Table <Doran_Servicos_ORM.TB_DADOS_FATURAMENTO> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_DADOS_FATURAMENTO>();

                        Doran_Servicos_ORM.TB_DADOS_FATURAMENTO novo = new Doran_Servicos_ORM.TB_DADOS_FATURAMENTO();

                        novo.NUMERO_PEDIDO         = Convert.ToDecimal(dados["NUMERO_PEDIDO"]);
                        novo.NUMERACAO             = dados["NUMERACAO"].ToString();
                        novo.ESPECIE               = dados["ESPECIE"].ToString();
                        novo.MARCA                 = dados["MARCA"].ToString();
                        novo.QTDE_NF               = Convert.ToDecimal(dados["QTDE_NF"]);
                        novo.NUMERO_PEDIDO_CLIENTE = dados["NUMERO_PEDIDO_CLIENTE"].ToString();
                        novo.OBS_NF                = dados["OBS_NF"].ToString();

                        Entidade.InsertOnSubmit(novo);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                    }
                    else
                    {
                        foreach (var item in query)
                        {
                            item.NUMERACAO             = dados["NUMERACAO"].ToString();
                            item.ESPECIE               = dados["ESPECIE"].ToString();
                            item.MARCA                 = dados["MARCA"].ToString();
                            item.QTDE_NF               = Convert.ToDecimal(dados["QTDE_NF"]);
                            item.NUMERO_PEDIDO_CLIENTE = dados["NUMERO_PEDIDO_CLIENTE"].ToString();
                            item.OBS_NF                = dados["OBS_NF"].ToString();

                            if (Convert.ToDecimal(dados["CODIGO_COND_PAGTO"]) != item.TB_PEDIDO_VENDA.TB_ITEM_ORCAMENTO_VENDA.TB_ORCAMENTO_VENDA.CODIGO_COND_PAGTO)
                            {
                                Atualiza_Condicao_Pagamento(Convert.ToDecimal(dados["CODIGO_COND_PAGTO"]),
                                                            item.TB_PEDIDO_VENDA.NUMERO_ORCAMENTO, ctx, Convert.ToDecimal(dados["ID_USUARIO"]));

                                NUMERO_PEDIDO_VENDA = item.NUMERO_PEDIDO.Value;
                            }

                            Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_DADOS_FATURAMENTOs.GetModifiedMembers(item),
                                                                                            ctx.TB_DADOS_FATURAMENTOs.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                        }
                    }

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 14
0
        public void GravaNovoCiclista(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_CICLISTA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_CICLISTA>();

                    Doran_Servicos_ORM.TB_CICLISTA novo = new Doran_Servicos_ORM.TB_CICLISTA();

                    novo.NOME_CICLISTA  = dados["NOME_CICLISTA"].ToString();
                    novo.CICLISTA_ATIVO = Convert.ToDecimal(dados["CICLISTA_ATIVO"]);

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, "TB_CICLISTA", Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO_ORIGINAL"]));
                throw ex;
            }
        }
Ejemplo n.º 15
0
        private void Gerar_Contas_a_Receber(Doran_ERP_Servicos_DadosDataContext ctx)
        {
            var query1 = (from item in ctx.TB_FINANCEIROs
                          where item.NUMERO_SEQ_NF_SAIDA == _NUMERO_SEQ
                          select item).ToList();

            foreach (var linha in query1)
            {
                ctx.TB_FINANCEIROs.DeleteOnSubmit(linha);
                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Delete(ctx, linha, ctx.TB_FINANCEIROs.ToString(), ID_USUARIO);
            }

            ctx.SubmitChanges();

            var query = (from nota in ctx.TB_NOTA_SAIDAs
                         where nota.NUMERO_SEQ == _NUMERO_SEQ
                         select new
            {
                nota.CODIGO_CLIENTE_NF,
                nota.TOTAL_NF,
                nota.TOTAL_SERVICOS_NF,
                nota.TB_COND_PAGTO.CODIGO_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA1_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA2_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA3_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA4_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA5_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA6_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA7_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA8_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA9_CP,
                nota.TB_COND_PAGTO.DIAS_PARCELA10_CP,
                nota.TB_COND_PAGTO.QTDE_PARCELAS_CP
            }).ToList();

            foreach (var item in query)
            {
                if (item.QTDE_PARCELAS_CP == 1)
                {
                    Table <TB_FINANCEIRO> Entidade = ctx.GetTable <TB_FINANCEIRO>();

                    TB_FINANCEIRO novo   = new TB_FINANCEIRO();
                    DateTime      VENCTO = DateTime.Today;
                    VENCTO = VENCTO.AddDays(1);
                    VENCTO = VENCTO.AddSeconds(-1);
                    VENCTO = VENCTO.AddDays((double)item.DIAS_PARCELA1_CP);

                    novo.DATA_LANCAMENTO       = DateTime.Now;
                    novo.DATA_VENCIMENTO       = VENCTO;
                    novo.DATA_PAGAMENTO        = new DateTime(1901, 1, 1);
                    novo.NUMERO_SEQ_NF_ENTRADA = 0;
                    novo.NUMERO_SEQ_NF_SAIDA   = _NUMERO_SEQ;
                    novo.CODIGO_CLIENTE        = item.CODIGO_CLIENTE_NF;
                    novo.CODIGO_FORNECEDOR     = 0;
                    novo.HISTORICO             = string.Format("NOTA FISCAL: {0} - CLIENTE: {1} - VENDEDOR: {2}", _NUMERO_NF, _CLIENTE.Trim(), _VENDEDOR.Trim());
                    novo.VALOR             = item.TOTAL_NF;
                    novo.VALOR_DESCONTO    = 0;
                    novo.VALOR_ACRESCIMO   = 0;
                    novo.VALOR_TOTAL       = item.TOTAL_NF;
                    novo.CREDITO_DEBITO    = 0;
                    novo.NUMERO_NF_SAIDA   = _NUMERO_NF;
                    novo.NUMERO_NF_ENTRADA = 0;
                    novo.VALOR_MULTA       = 0;
                    novo.PERC_JUROS_DIA    = 0;
                    novo.CODIGO_EMITENTE   = ID_EMPRESA;
                    novo.ID_PLANO          = "5.1.1.001";
                    novo.VALOR_APROXIMADO  = 0;

                    novo.MARCA_REMESSA         = 0;
                    novo.REMESSA               = 0;
                    novo.RETORNO               = 0;
                    novo.NUMERO_BANCO          = 0;
                    novo.INSTRUCAO_REMESSA     = 0;
                    novo.NOSSO_NUMERO_BANCARIO = string.Empty;

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);

                    ctx.SubmitChanges();
                }
                else
                {
                    Dictionary <DateTime, decimal> Parcelas =
                        Calcula_Vencimentos_e_Valores(item.TOTAL_SERVICOS_NF.Value, item.TOTAL_NF.Value, item.CODIGO_CP);

                    foreach (DateTime key in Parcelas.Keys)
                    {
                        Table <TB_FINANCEIRO> Entidade = ctx.GetTable <TB_FINANCEIRO>();

                        TB_FINANCEIRO novo = new TB_FINANCEIRO();

                        novo.DATA_LANCAMENTO       = DateTime.Now;
                        novo.DATA_VENCIMENTO       = key;
                        novo.DATA_PAGAMENTO        = new DateTime(1901, 1, 1);
                        novo.NUMERO_SEQ_NF_ENTRADA = 0;
                        novo.NUMERO_SEQ_NF_SAIDA   = _NUMERO_SEQ;
                        novo.CODIGO_CLIENTE        = item.CODIGO_CLIENTE_NF;
                        novo.CODIGO_FORNECEDOR     = 0;
                        novo.HISTORICO             = string.Format("NOTA FISCAL: {0} - CLIENTE: {1} - VENDEDOR: {2}", _NUMERO_NF, _CLIENTE.Trim(), _VENDEDOR.Trim());
                        novo.VALOR             = Parcelas[key];
                        novo.VALOR_DESCONTO    = 0;
                        novo.VALOR_ACRESCIMO   = 0;
                        novo.VALOR_TOTAL       = Parcelas[key];
                        novo.CREDITO_DEBITO    = 0;
                        novo.NUMERO_NF_SAIDA   = _NUMERO_NF;
                        novo.NUMERO_NF_ENTRADA = 0;
                        novo.VALOR_MULTA       = 0;
                        novo.PERC_JUROS_DIA    = 0;
                        novo.CODIGO_EMITENTE   = ID_EMPRESA;
                        novo.ID_PLANO          = "5.1.1.001";

                        novo.VALOR_APROXIMADO      = 0;
                        novo.MARCA_REMESSA         = 0;
                        novo.REMESSA               = 0;
                        novo.RETORNO               = 0;
                        novo.NUMERO_BANCO          = 0;
                        novo.INSTRUCAO_REMESSA     = 0;
                        novo.NOSSO_NUMERO_BANCARIO = string.Empty;

                        Entidade.InsertOnSubmit(novo);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);

                        ctx.SubmitChanges();
                    }
                }
            }
        }
Ejemplo n.º 16
0
        public void Atualiza_Cliente_e_Fornecedor(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query = (from item in ctx.GetTable <TB_CLIENTE>()
                             where item.ID_CLIENTE == Convert.ToDecimal(dados["ID_CLIENTE"])
                             select item).ToList();

                if (query.Count() == 0)
                {
                    throw new Exception("N&atilde;o foi poss&iacute;vel encontrar o cliente com o ID [" + dados["ID_CLIENTE"].ToString() + "]");
                }

                decimal id_uf = decimal.TryParse(dados["ESTADO_ENTREGA"].ToString(), out id_uf) ?
                                Convert.ToDecimal(dados["ESTADO_ENTREGA"]) : 0;

                decimal cidade = decimal.TryParse(dados["CIDADE_ENTREGA"].ToString(), out cidade) ?
                                 Convert.ToDecimal(dados["CIDADE_ENTREGA"]) : 0;

                decimal id_uf1 = decimal.TryParse(dados["ESTADO_COBRANCA"].ToString(), out id_uf1) ?
                                 Convert.ToDecimal(dados["ESTADO_COBRANCA"]) : 0;

                decimal cidade1 = decimal.TryParse(dados["CIDADE_COBRANCA"].ToString(), out cidade1) ?
                                  Convert.ToDecimal(dados["CIDADE_COBRANCA"]) : 0;

                string CNPJ = "";

                foreach (var cliente in query)
                {
                    CNPJ = dados["CNPJ_CLIENTE"].ToString();

                    cliente.NOME_CLIENTE         = dados["NOME_CLIENTE"].ToString();
                    cliente.NOMEFANTASIA_CLIENTE = dados["NOMEFANTASIA_CLIENTE"].ToString();
                    cliente.CNPJ_CLIENTE         = dados["CNPJ_CLIENTE"].ToString();
                    cliente.IE_CLIENTE           = dados["IE_CLIENTE"].ToString();
                    cliente.IE_SUFRAMA           = dados["IE_SUFRAMA"].ToString();

                    cliente.ENDERECO_FATURA   = dados["ENDERECO_FATURA"].ToString();
                    cliente.NUMERO_END_FATURA = dados["NUMERO_END_FATURA"].ToString();
                    cliente.COMP_END_FATURA   = dados["COMP_END_FATURA"].ToString();

                    cliente.CEP_FATURA      = dados["CEP_FATURA"].ToString();
                    cliente.BAIRRO_FATURA   = dados["BAIRRO_FATURA"].ToString();
                    cliente.CIDADE_FATURA   = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                    cliente.ESTADO_FATURA   = Convert.ToDecimal(dados["ESTADO_FATURA"]);
                    cliente.TELEFONE_FATURA = dados["TELEFONE_FATURA"].ToString();

                    cliente.ENDERECO_ENTREGA   = dados["ENDERECO_ENTREGA"].ToString();
                    cliente.NUMERO_END_ENTREGA = dados["NUMERO_END_ENTREGA"].ToString();
                    cliente.COMP_END_ENTREGA   = dados["COMP_END_ENTREGA"].ToString();
                    cliente.CEP_ENTREGA        = dados["CEP_ENTREGA"].ToString();
                    cliente.BAIRRO_ENTREGA     = dados["BAIRRO_ENTREGA"].ToString();
                    cliente.CIDADE_ENTREGA     = cidade;
                    cliente.ESTADO_ENTREGA     = id_uf;
                    cliente.TELEFONE_ENTREGA   = dados["TELEFONE_ENTREGA"].ToString();

                    cliente.ENDERECO_COBRANCA = dados["ENDERECO_COBRANCA"].ToString();
                    cliente.CEP_COBRANCA      = dados["CEP_COBRANCA"].ToString();
                    cliente.BAIRRO_COBRANCA   = dados["BAIRRO_COBRANCA"].ToString();
                    cliente.CIDADE_COBRANCA   = cidade1;
                    cliente.ESTADO_COBRANCA   = id_uf1;
                    cliente.TELEFONE_COBRANCA = dados["TELEFONE_COBRANCA"].ToString();

                    cliente.CODIGO_CP_CLIENTE = Convert.ToDecimal(dados["CODIGO_CP_CLIENTE"]);
                    cliente.ID_LIMITE         = Convert.ToDecimal(dados["ID_LIMITE_CLIENTE"]);

                    cliente.CODIGO_VENDEDOR_CLIENTE = Convert.ToDecimal(dados["CODIGO_VENDEDOR_CLIENTE"]);
                    cliente.OBS_CLIENTE             = dados["OBS_CLIENTE"].ToString();

                    cliente.EMAIL_CLIENTE     = dados["EMAIL_CLIENTE"].ToString();
                    cliente.ENVIO_NFE_CLIENTE = Convert.ToDecimal(dados["ENVIO_NFE_CLIENTE"]);
                    cliente.PESSOA            = Convert.ToDecimal(dados["PESSOA"]);

                    cliente.CLIENTE_BLOQUEADO = Convert.ToDecimal(dados["CLIENTE_BLOQUEADO"]);

                    cliente.FORNECEDOR = Convert.ToDecimal(dados["FORNECEDOR"]);

                    cliente.CODIGO_REGIAO = dados["CODIGO_REGIAO"].ToString();

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.GetTable <TB_CLIENTE>().GetModifiedMembers(cliente),
                                                                                    "TB_CLIENTE", Convert.ToDecimal(dados["ID_USUARIO"]));
                }

                // Atualiza Fornecedor

                var query1 = (from item in ctx.TB_FORNECEDORs
                              orderby item.CNPJ_FORNECEDOR
                              where item.CNPJ_FORNECEDOR == dados["CNPJ_CLIENTE"].ToString()
                              select item).ToList();

                var query2 = (from item in ctx.TB_FORNECEDORs
                              orderby item.NOME_FANTASIA_FORNECEDOR
                              where item.NOME_FANTASIA_FORNECEDOR == dados["NOMEFANTASIA_CLIENTE"].ToString()
                              select item).ToList();

                if (query1.Any() || query2.Any())
                {
                    var query3 = query1.Any() ? query1 : query2;

                    foreach (var novo1 in query3)
                    {
                        novo1.NOME_FORNECEDOR          = dados["NOME_CLIENTE"].ToString();
                        novo1.NOME_FANTASIA_FORNECEDOR = dados["NOMEFANTASIA_CLIENTE"].ToString();
                        novo1.IE_FORNECEDOR            = dados["IE_CLIENTE"].ToString();

                        novo1.ENDERECO_FORNECEDOR   = dados["ENDERECO_FATURA"].ToString();
                        novo1.NUMERO_END_FORNECEDOR = dados["NUMERO_END_ENTREGA"].ToString();
                        novo1.COMPL_END_FORNECEDOR  = dados["COMP_END_FATURA"].ToString();
                        novo1.CEP_FORNECEDOR        = dados["CEP_FATURA"].ToString();
                        novo1.BAIRRO_FORNECEDOR     = dados["BAIRRO_FATURA"].ToString();

                        novo1.ID_MUNICIPIO_FORNECEDOR = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                        novo1.ID_UF_FORNECEDOR        = Convert.ToDecimal(dados["ESTADO_FATURA"]);

                        novo1.TELEFONE1_FORNECEDOR = dados["TELEFONE_FATURA"].ToString();

                        novo1.EMAIL_FORNECEDOR = dados["EMAIL_CLIENTE"].ToString();

                        novo1.CODIGO_EMITENTE = Convert.ToDecimal(dados["ID_EMPRESA"]);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_FORNECEDORs.GetModifiedMembers(novo1),
                                                                                        ctx.TB_FORNECEDORs.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                    }
                }
                else
                {
                    Table <TB_FORNECEDOR> Entidade1 = ctx.GetTable <TB_FORNECEDOR>();

                    TB_FORNECEDOR novo1 = new TB_FORNECEDOR();

                    novo1.NOME_FORNECEDOR          = dados["NOME_CLIENTE"].ToString();
                    novo1.NOME_FANTASIA_FORNECEDOR = dados["NOMEFANTASIA_CLIENTE"].ToString();
                    novo1.CNPJ_FORNECEDOR          = dados["CNPJ_CLIENTE"].ToString();
                    novo1.IE_FORNECEDOR            = dados["IE_CLIENTE"].ToString();

                    novo1.ENDERECO_FORNECEDOR   = dados["ENDERECO_FATURA"].ToString();
                    novo1.NUMERO_END_FORNECEDOR = dados["NUMERO_END_ENTREGA"].ToString();
                    novo1.COMPL_END_FORNECEDOR  = dados["COMP_END_FATURA"].ToString();
                    novo1.CEP_FORNECEDOR        = dados["CEP_FATURA"].ToString();
                    novo1.BAIRRO_FORNECEDOR     = dados["BAIRRO_FATURA"].ToString();

                    novo1.ID_MUNICIPIO_FORNECEDOR = Convert.ToDecimal(dados["CIDADE_FATURA"]);
                    novo1.ID_UF_FORNECEDOR        = Convert.ToDecimal(dados["ESTADO_FATURA"]);

                    novo1.TELEFONE1_FORNECEDOR = dados["TELEFONE_FATURA"].ToString();
                    novo1.TELEFONE2_FORNECEDOR = string.Empty;

                    novo1.FAX_FORNECEDOR = string.Empty;
                    novo1.OBS_FORNECEDOR = string.Empty;

                    novo1.EMAIL_FORNECEDOR = dados["EMAIL_CLIENTE"].ToString();

                    novo1.CONTATO_FORNECEDOR = string.Empty;

                    novo1.CLIENTE = 1;

                    novo1.CODIGO_EMITENTE = Convert.ToDecimal(dados["ID_EMPRESA"]);

                    Entidade1.InsertOnSubmit(novo1);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo1, Entidade1.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                }

                ctx.SubmitChanges();
            }
        }
Ejemplo n.º 17
0
        public string Monta_Vencimentos_NF()
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                decimal?COBRANCA_ISENTA = 0;

                _NUMERO_SEQ = COBRANCA_ISENTA == 1 ? -1 : _NUMERO_SEQ;

                CultureInfo cultura = CultureInfo.CurrentCulture;
                string[]    dias    = cultura.DateTimeFormat.DayNames;

                var query1 = from linha in ctx.TB_FINANCEIROs
                             where linha.NUMERO_SEQ_NF_SAIDA == _NUMERO_SEQ

                             select new
                {
                    VENCIMENTO = linha.DATA_VENCIMENTO,
                    VALOR      = linha.VALOR_TOTAL
                };

                DataTable dt1 = ApoioXML.ToDataTable(ctx, query1);

                dt1.Columns.Add("DIA");

                foreach (DataRow linha in dt1.Rows)
                {
                    linha["DIA"] = dias[(int)((DateTime)linha["VENCIMENTO"]).DayOfWeek].ToUpper();
                }

                string retorno = "";

                if (dt1.Rows.Count > 0)
                {
                    System.IO.StringWriter tr = new System.IO.StringWriter();
                    dt1.WriteXml(tr);

                    retorno = tr.ToString();
                }
                else
                {
                    decimal TOTAL_NF       = 0;
                    decimal CODIGO_CP      = 0;
                    decimal TOTAL_PRODUTOS = 0;

                    var query = (from nota in ctx.GetTable <TB_NOTA_SAIDA>()
                                 where nota.NUMERO_SEQ == _NUMERO_SEQ
                                 select new
                    {
                        nota.CODIGO_CP_NF,
                        nota.TOTAL_NF,
                        nota.TOTAL_SERVICOS_NF
                    }).ToList();

                    foreach (var item in query)
                    {
                        TOTAL_PRODUTOS = item.TOTAL_SERVICOS_NF.Value;
                        TOTAL_NF       = item.TOTAL_NF.Value;
                        CODIGO_CP      = item.CODIGO_CP_NF.Value;
                    }

                    Dictionary <DateTime, decimal> Parcelas = Calcula_Vencimentos_e_Valores(TOTAL_PRODUTOS, TOTAL_NF, CODIGO_CP);

                    if (COBRANCA_ISENTA == 1)
                    {
                        Parcelas.Clear();
                    }

                    DataTable dt = new DataTable("Tabela");

                    dt.Columns.Add("VENCIMENTO", typeof(DateTime));
                    dt.Columns.Add("DIA", typeof(string));
                    dt.Columns.Add("VALOR", typeof(decimal));

                    foreach (DateTime key in Parcelas.Keys)
                    {
                        if (query.First().TOTAL_NF > (decimal)0.00)
                        {
                            DataRow nova = dt.NewRow();
                            nova[0] = key;
                            nova[1] = dias[(int)((DateTime)key).DayOfWeek].ToUpper();
                            nova[2] = Parcelas[key];
                            dt.Rows.Add(nova);
                        }
                    }

                    System.IO.StringWriter tr = new System.IO.StringWriter();
                    dt.WriteXml(tr);

                    retorno = tr.ToString();
                }

                return(retorno);
            }
        }
Ejemplo n.º 18
0
        public void Atualiza_Fornecedor_e_Cliente(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query = (from item in ctx.TB_FORNECEDORs
                             where item.CODIGO_FORNECEDOR == Convert.ToDecimal(dados["CODIGO_FORNECEDOR"])
                             select item).ToList();

                foreach (var novo in query)
                {
                    novo.NOME_FORNECEDOR          = dados["NOME_FORNECEDOR"].ToString();
                    novo.NOME_FANTASIA_FORNECEDOR = dados["NOME_FANTASIA_FORNECEDOR"].ToString();
                    novo.CNPJ_FORNECEDOR          = dados["CNPJ_FORNECEDOR"].ToString();
                    novo.IE_FORNECEDOR            = dados["IE_FORNECEDOR"].ToString();

                    novo.ENDERECO_FORNECEDOR   = dados["ENDERECO_FORNECEDOR"].ToString();
                    novo.NUMERO_END_FORNECEDOR = dados["NUMERO_END_FORNECEDOR"].ToString();
                    novo.COMPL_END_FORNECEDOR  = dados["COMPL_END_FORNECEDOR"].ToString();
                    novo.CEP_FORNECEDOR        = dados["CEP_FORNECEDOR"].ToString();
                    novo.BAIRRO_FORNECEDOR     = dados["BAIRRO_FORNECEDOR"].ToString();

                    novo.ID_MUNICIPIO_FORNECEDOR = Convert.ToDecimal(dados["ID_MUNICIPIO_FORNECEDOR"]);
                    novo.ID_UF_FORNECEDOR        = Convert.ToDecimal(dados["ID_UF_FORNECEDOR"]);

                    novo.TELEFONE1_FORNECEDOR = dados["TELEFONE1_FORNECEDOR"].ToString();
                    novo.TELEFONE2_FORNECEDOR = dados["TELEFONE2_FORNECEDOR"].ToString();

                    novo.FAX_FORNECEDOR = dados["FAX_FORNECEDOR"].ToString();
                    novo.OBS_FORNECEDOR = dados["OBS_FORNECEDOR"].ToString();

                    novo.EMAIL_FORNECEDOR = dados["EMAIL_FORNECEDOR"].ToString();

                    novo.CONTATO_FORNECEDOR = dados["CONTATO_FORNECEDOR"].ToString();

                    novo.CODIGO_CP_FORNECEDOR = Convert.ToDecimal(dados["CODIGO_CP_FORNECEDOR"]);

                    novo.CLIENTE = Convert.ToDecimal(dados["CLIENTE"]);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_FORNECEDORs.GetModifiedMembers(novo),
                                                                                    ctx.TB_FORNECEDORs.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    if (novo.CLIENTE == 1)
                    {
                        var query1 = (from linha in ctx.GetTable <TB_CLIENTE>()
                                      orderby linha.CNPJ_CLIENTE

                                      where linha.CNPJ_CLIENTE == dados["CNPJ_FORNECEDOR"].ToString()

                                      select linha).ToList();

                        var query2 = (from linha in ctx.GetTable <TB_CLIENTE>()
                                      orderby linha.NOMEFANTASIA_CLIENTE

                                      where linha.NOMEFANTASIA_CLIENTE == dados["NOME_FANTASIA_FORNECEDOR"].ToString()

                                      select linha).ToList();

                        if (query1.Any() || query2.Any())
                        {
                            var query3 = query1.Any() ? query1 : query2;

                            foreach (var item in query3)
                            {
                                item.NOME_CLIENTE         = dados["NOME_FORNECEDOR"].ToString();
                                item.NOMEFANTASIA_CLIENTE = dados["NOME_FANTASIA_FORNECEDOR"].ToString();
                                item.CNPJ_CLIENTE         = dados["CNPJ_FORNECEDOR"].ToString();
                                item.IE_CLIENTE           = dados["IE_FORNECEDOR"].ToString();

                                item.ENDERECO_FATURA   = dados["ENDERECO_FORNECEDOR"].ToString();
                                item.NUMERO_END_FATURA = dados["NUMERO_END_FORNECEDOR"].ToString();
                                item.COMP_END_FATURA   = dados["COMPL_END_FORNECEDOR"].ToString();

                                item.CEP_FATURA      = dados["CEP_FORNECEDOR"].ToString();
                                item.BAIRRO_FATURA   = dados["BAIRRO_FORNECEDOR"].ToString();
                                item.CIDADE_FATURA   = Convert.ToDecimal(dados["ID_MUNICIPIO_FORNECEDOR"]);
                                item.ESTADO_FATURA   = Convert.ToDecimal(dados["ID_UF_FORNECEDOR"]);
                                item.TELEFONE_FATURA = dados["TELEFONE1_FORNECEDOR"].ToString();

                                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.GetTable <TB_CLIENTE>().GetModifiedMembers(item),
                                                                                                "TB_CLIENTE", Convert.ToDecimal(dados["ID_USUARIO"]));
                            }
                        }
                        else
                        {
                            Table <TB_CLIENTE> Entidade1 = ctx.GetTable <TB_CLIENTE>();

                            TB_CLIENTE novo1 = new TB_CLIENTE();

                            novo1.NOME_CLIENTE         = dados["NOME_FORNECEDOR"].ToString();
                            novo1.NOMEFANTASIA_CLIENTE = dados["NOME_FANTASIA_FORNECEDOR"].ToString();
                            novo1.CNPJ_CLIENTE         = dados["CNPJ_FORNECEDOR"].ToString();
                            novo1.IE_CLIENTE           = dados["IE_FORNECEDOR"].ToString();
                            novo1.IE_SUFRAMA           = string.Empty;

                            novo1.ENDERECO_FATURA   = dados["ENDERECO_FORNECEDOR"].ToString();
                            novo1.NUMERO_END_FATURA = dados["NUMERO_END_FORNECEDOR"].ToString();
                            novo1.COMP_END_FATURA   = dados["COMPL_END_FORNECEDOR"].ToString();

                            novo1.CEP_FATURA      = dados["CEP_FORNECEDOR"].ToString();
                            novo1.BAIRRO_FATURA   = dados["BAIRRO_FORNECEDOR"].ToString();
                            novo1.CIDADE_FATURA   = Convert.ToDecimal(dados["ID_MUNICIPIO_FORNECEDOR"]);
                            novo1.ESTADO_FATURA   = Convert.ToDecimal(dados["ID_UF_FORNECEDOR"]);
                            novo1.TELEFONE_FATURA = dados["TELEFONE1_FORNECEDOR"].ToString();

                            novo1.ENDERECO_ENTREGA   = string.Empty;
                            novo1.NUMERO_END_ENTREGA = string.Empty;
                            novo1.COMP_END_ENTREGA   = string.Empty;

                            novo1.CEP_ENTREGA      = string.Empty;
                            novo1.BAIRRO_ENTREGA   = string.Empty;
                            novo1.CIDADE_ENTREGA   = 0;
                            novo1.ESTADO_ENTREGA   = 0;
                            novo1.TELEFONE_ENTREGA = string.Empty;

                            novo1.ENDERECO_COBRANCA = string.Empty;
                            novo1.CEP_COBRANCA      = string.Empty;
                            novo1.BAIRRO_COBRANCA   = string.Empty;
                            novo1.CIDADE_COBRANCA   = 0;
                            novo1.ESTADO_COBRANCA   = 0;
                            novo1.TELEFONE_COBRANCA = string.Empty;

                            novo1.CODIGO_CP_CLIENTE = Convert.ToDecimal(dados["CODIGO_CP_FORNECEDOR"]);
                            novo1.ID_LIMITE         = 1;

                            novo1.CODIGO_VENDEDOR_CLIENTE = 1;
                            novo1.OBS_CLIENTE             = "";
                            novo1.PESSOA = 0;

                            novo1.EMAIL_CLIENTE     = dados["EMAIL_FORNECEDOR"].ToString();
                            novo1.ENVIO_NFE_CLIENTE = 2;

                            novo1.CODIGO_EMITENTE   = Convert.ToDecimal(dados["ID_EMPRESA"]);
                            novo1.CLIENTE_BLOQUEADO = 0;

                            novo1.FORNECEDOR = 1;

                            novo1.DATA_ULTIMA_FATURA  = new DateTime(1901, 01, 01);
                            novo1.VALOR_ULTIMA_FATURA = 0;
                            novo1.DATA_CADASTRO       = DateTime.Now;

                            Entidade1.InsertOnSubmit(novo1);

                            Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo1, Entidade1.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));
                        }
                    }
                }

                ctx.SubmitChanges();
            }
        }
Ejemplo n.º 19
0
        public Dictionary <string, object> Copia_Orcamento(decimal ID_USUARIO, double DIAS_PRAZO_ORCAMENTO)
        {
            Dictionary <string, object> retorno = new Dictionary <string, object>();

            DateTime entrega = DateTime.Today;

            while (Doran_TitulosVencidos.Feriado_FimDeSemana(entrega))
            {
                entrega = entrega.AddDays(1);
            }

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var query = (from linha in ctx.TB_ORCAMENTO_VENDAs
                             where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO
                             select linha).ToList();

                foreach (var item in query)
                {
                    System.Data.Linq.Table <TB_ORCAMENTO_VENDA> Entidade = ctx.GetTable <TB_ORCAMENTO_VENDA>();

                    TB_ORCAMENTO_VENDA novo = new TB_ORCAMENTO_VENDA();

                    using (Doran_Comercial_Orcamentos oc = new Doran_Comercial_Orcamentos(NUMERO_ORCAMENTO, ID_USUARIO))
                    {
                        CHAVE_ORCAMENTO = oc.CRIA_CHAVE_ORCAMENTO();
                    }

                    if (CHAVE_ORCAMENTO.Length > 100)
                    {
                        CHAVE_ORCAMENTO = CHAVE_ORCAMENTO.Substring(0, 100);
                    }

                    novo.DATA_ORCAMENTO           = DateTime.Now;
                    novo.CODIGO_COND_PAGTO        = item.CODIGO_COND_PAGTO;
                    novo.CODIGO_CLIENTE_ORCAMENTO = item.CODIGO_CLIENTE_ORCAMENTO;
                    novo.CODIGO_VENDEDOR          = item.CODIGO_VENDEDOR;
                    novo.CONTATO_ORCAMENTO        = item.CONTATO_ORCAMENTO;
                    novo.EMAIL_CONTATO            = item.EMAIL_CONTATO;
                    novo.NUMERO_REVISAO           = 1;
                    novo.TELEFONE_CONTATO         = item.TELEFONE_CONTATO;
                    novo.TEXTO_PROPOSTA           = item.TEXTO_PROPOSTA;
                    novo.CHAVE_ORCAMENTO          = CHAVE_ORCAMENTO;
                    novo.ID_UF_ORCAMENTO          = item.ID_UF_ORCAMENTO;
                    novo.OBS_ORCAMENTO            = item.OBS_ORCAMENTO;
                    novo.VALIDADE_ORCAMENTO       = DateTime.Today.AddDays(DIAS_PRAZO_ORCAMENTO);
                    novo.NUMERO_REVISAO           = 0;
                    novo.OBS_NF_ORCAMENTO         = item.OBS_NF_ORCAMENTO;

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);

                    retorno.Add("DATA_ORCAMENTO", ApoioXML.TrataData2(DateTime.Today));
                    retorno.Add("NOMEFANTASIA_CLIENTE", item.TB_CLIENTE.NOMEFANTASIA_CLIENTE.Trim());
                    retorno.Add("CONTATO_ORCAMENTO", item.CONTATO_ORCAMENTO.Trim());
                    retorno.Add("TELEFONE_CONTATO", item.TELEFONE_CONTATO.Trim());
                    retorno.Add("EMAIL_CONTATO", item.EMAIL_CONTATO.Trim());
                    retorno.Add("VALIDADE_ORCAMENTO", ApoioXML.TrataData2(DateTime.Today.AddDays(DIAS_PRAZO_ORCAMENTO)));
                    retorno.Add("CODIGO_CLIENTE_ORCAMENTO", item.CODIGO_CLIENTE_ORCAMENTO);
                    retorno.Add("STATUS", "<span style='background-color: #FF3300; color: #FFFFFF;'>Pendente</span>");
                    retorno.Add("ID_STATUS", "3");
                    retorno.Add("OBS_NF_ORCAMENTO", item.OBS_NF_ORCAMENTO);
                    retorno.Add("NOME_VENDEDOR", item.TB_VENDEDORE.NOME_VENDEDOR.Trim());

                    ctx.SubmitChanges();
                }
            }

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                var _NUMERO_ORCAMENTO = (from linha in ctx.TB_ORCAMENTO_VENDAs
                                         orderby linha.CHAVE_ORCAMENTO
                                         where linha.CHAVE_ORCAMENTO == CHAVE_ORCAMENTO
                                         select linha.NUMERO_ORCAMENTO).First();

                NOVO_NUMERO_ORCAMENTO = _NUMERO_ORCAMENTO;

                retorno.Add("NUMERO_ORCAMENTO", NOVO_NUMERO_ORCAMENTO);

                var query = (from linha in ctx.TB_ITEM_ORCAMENTO_VENDAs
                             orderby linha.NUMERO_ORCAMENTO, linha.NUMERO_ITEM
                             where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO
                             select linha).ToList();

                int i = 0;

                foreach (var item in query)
                {
                    using (Doran_ERP_Servicos_DadosDataContext ctx1 = new Doran_ERP_Servicos_DadosDataContext())
                    {
                        System.Data.Linq.Table <TB_ITEM_ORCAMENTO_VENDA> Entidade = ctx1.GetTable <TB_ITEM_ORCAMENTO_VENDA>();

                        TB_ITEM_ORCAMENTO_VENDA novo = new TB_ITEM_ORCAMENTO_VENDA();

                        novo.NUMERO_ORCAMENTO                 = NOVO_NUMERO_ORCAMENTO;
                        novo.ID_PRODUTO                       = item.ID_PRODUTO;
                        novo.CODIGO_PRODUTO                   = item.CODIGO_PRODUTO;
                        novo.QTDE_PRODUTO                     = item.QTDE_PRODUTO;
                        novo.PRECO_PRODUTO                    = item.PRECO_PRODUTO;
                        novo.UNIDADE_PRODUTO                  = item.UNIDADE_PRODUTO;
                        novo.VALOR_TOTAL                      = item.VALOR_TOTAL;
                        novo.TIPO_DESCONTO                    = item.TIPO_DESCONTO;
                        novo.VALOR_DESCONTO                   = item.VALOR_DESCONTO;
                        novo.ALIQ_ISS                         = item.ALIQ_ISS;
                        novo.DATA_ENTREGA                     = entrega;
                        novo.OBS_ITEM_ORCAMENTO               = item.OBS_ITEM_ORCAMENTO;
                        novo.NUMERO_PEDIDO_VENDA              = 0;
                        novo.NAO_GERAR_PEDIDO                 = 0;
                        novo.PROGRAMACAO_ITEM_ORCAMENTO       = 0;
                        novo.DESCRICAO_PRODUTO_ITEM_ORCAMENTO = item.DESCRICAO_PRODUTO_ITEM_ORCAMENTO.Trim();
                        novo.ITEM_APROVADO                    = item.ITEM_APROVADO;

                        Entidade.InsertOnSubmit(novo);

                        Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx1, novo, Entidade.ToString(), ID_USUARIO);

                        ctx1.SubmitChanges();

                        GravaCustos(i, item.NUMERO_ITEM, entrega, ID_USUARIO);

                        i++;
                    }
                }
            }

            retorno.Add("TOTAL_ORCAMENTO", Doran_Comercial_Orcamentos.Calcula_Total_Orcamento(NOVO_NUMERO_ORCAMENTO));

            return(retorno);
        }
Ejemplo n.º 20
0
        public static string Lista_TB_PRODUTO(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                if (!dados.ContainsKey("CODIGO_PRODUTO"))
                {
                    dados.Add("CODIGO_PRODUTO", dados["Pesquisa"].ToString());
                    dados["Pesquisa"] = string.Empty;
                }

                if (!dados.ContainsKey("CODIGO_CLIENTE"))
                {
                    dados.Add("CODIGO_CLIENTE", 0);
                }

                decimal codigo_cliente = decimal.TryParse(dados["CODIGO_CLIENTE"].ToString(), out codigo_cliente) ?
                                         Convert.ToDecimal(dados["CODIGO_CLIENTE"]) : 0;

                dados["CODIGO_CLIENTE"] = codigo_cliente;

                if (!dados.ContainsKey("Pesquisa"))
                {
                    dados.Add("Pesquisa", string.Empty);
                }

                var query1 = from produto in ctx.TB_PRODUTOs
                             where produto.CODIGO_PRODUTO.Substring(0, dados["CODIGO_PRODUTO"].ToString().Length) == dados["CODIGO_PRODUTO"].ToString() &&
                             produto.DESCRICAO_PRODUTO.Contains(dados["Pesquisa"].ToString())

                             select new
                {
                    produto.ID_PRODUTO,
                    produto.CODIGO_PRODUTO,
                    produto.DESCRICAO_PRODUTO,
                    produto.UNIDADE_MEDIDA_VENDA,
                    PRECO_PRODUTO = produto.PRECO_PRODUTO * (decimal)1.02,
                    produto.ALIQ_ISS,

                    ULTIMO_PRECO = (from linha in ctx.GetTable <TB_ITEM_NOTA_SAIDA>()
                                    orderby linha.ID_PRODUTO_ITEM_NF, linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF,
                                    linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF descending

                                    where linha.ID_PRODUTO_ITEM_NF == produto.ID_PRODUTO &&
                                    linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF == Convert.ToDecimal(dados["CODIGO_CLIENTE"]) &&
                                    linha.TB_NOTA_SAIDA.STATUS_NF == 4

                                    select linha).Any() ?

                                   (from linha in ctx.GetTable <TB_ITEM_NOTA_SAIDA>()
                                    orderby linha.ID_PRODUTO_ITEM_NF, linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF,
                                    linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF descending

                                    where linha.ID_PRODUTO_ITEM_NF == produto.ID_PRODUTO &&
                                    linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF == Convert.ToDecimal(dados["CODIGO_CLIENTE"]) &&
                                    linha.TB_NOTA_SAIDA.STATUS_NF == 4

                                    select linha.VALOR_UNITARIO_ITEM_NF).First() : produto.PRECO_PRODUTO,

                    ULTIMA_COMPRA = (from linha in ctx.GetTable <TB_ITEM_NOTA_SAIDA>()
                                     orderby linha.ID_PRODUTO_ITEM_NF, linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF, linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF descending

                                     where linha.ID_PRODUTO_ITEM_NF == produto.ID_PRODUTO &&
                                     linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF == Convert.ToDecimal(dados["CODIGO_CLIENTE"]) &&
                                     linha.TB_NOTA_SAIDA.STATUS_NF == 4

                                     select linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF).Any() ?

                                    (from linha in ctx.GetTable <TB_ITEM_NOTA_SAIDA>()
                                     orderby linha.ID_PRODUTO_ITEM_NF, linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF, linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF descending

                                     where linha.ID_PRODUTO_ITEM_NF == produto.ID_PRODUTO &&
                                     linha.TB_NOTA_SAIDA.CODIGO_CLIENTE_NF == Convert.ToDecimal(dados["CODIGO_CLIENTE"]) &&
                                     linha.TB_NOTA_SAIDA.STATUS_NF == 4

                                     select linha.TB_NOTA_SAIDA.DATA_EMISSAO_NF) : null
                };

                var rowCount = query1.Count();

                var query = query1.Skip(Convert.ToInt32(dados["start"])).Take(Convert.ToInt32(dados["limit"]));

                return(ApoioXML.objQueryToXML(ctx, query, rowCount));
            }
        }
Ejemplo n.º 21
0
        public void GravaNovoStatus(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_STATUS_PEDIDO_COMPRA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_STATUS_PEDIDO_COMPRA>();

                    Doran_Servicos_ORM.TB_STATUS_PEDIDO_COMPRA novo = new Doran_Servicos_ORM.TB_STATUS_PEDIDO_COMPRA();

                    novo.DESCRICAO_STATUS_PEDIDO_COMPRA = dados["DESCRICAO_STATUS_PEDIDO_COMPRA"].ToString();
                    novo.COR_STATUS_PEDIDO_COMPRA       = dados["COR_STATUS_PEDIDO_COMPRA"].ToString();
                    novo.COR_FONTE_STATUS_PEDIDO_COMPRA = dados["COR_FONTE_STATUS_PEDIDO_COMPRA"].ToString();
                    novo.NAO_CANCELAR_PEDIDO_COMPRA     = Convert.ToDecimal(dados["NAO_CANCELAR_PEDIDO_COMPRA"]);
                    novo.STATUS_ESPECIFICO_ITEM_COMPRA  = Convert.ToDecimal(dados["STATUS_ESPECIFICO_ITEM_COMPRA"]);

                    if (dados["SENHA_STATUS_ITEM_COMPRA"].ToString().Trim().Length > 0)
                    {
                        Th2_Seguranca.Principal sen = new Th2_Seguranca.Principal(Th2_Seguranca.classes.EncryptionAlgorithm.Des,
                                                                                  ConfigurationManager.AppSettings["ID_Sistema"]);

                        sen.CriptografaDados(dados["SENHA_STATUS_ITEM_COMPRA"].ToString().Trim());

                        novo.SENHA_STATUS_ITEM_COMPRA = sen.SenhaEncriptada_;
                    }
                    else
                    {
                        novo.SENHA_STATUS_ITEM_COMPRA = "";
                    }

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 22
0
        public void GravaNovoTipoCobranca(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_TIPO_COBRANCA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_TIPO_COBRANCA>();

                    Doran_Servicos_ORM.TB_TIPO_COBRANCA novo = new Doran_Servicos_ORM.TB_TIPO_COBRANCA();

                    novo.COD_TIPO_COBRANCA       = Convert.ToDecimal(dados["COD_TIPO_COBRANCA"]);
                    novo.NUMERO_BANCO            = Convert.ToDecimal(dados["NUMERO_BANCO"]);
                    novo.DESCRICAO_TIPO_COBRANCA = dados["DESCRICAO_TIPO_COBRANCA"].ToString();

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 23
0
        public void GravaNovoCusto(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_CUSTO_VENDA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_CUSTO_VENDA>();

                    Doran_Servicos_ORM.TB_CUSTO_VENDA novo = new Doran_Servicos_ORM.TB_CUSTO_VENDA();

                    novo.DESCRICAO_CUSTO_VENDA       = dados["DESCRICAO_CUSTO_VENDA"].ToString();
                    novo.CUSTO_PERMANENTE            = Convert.ToDecimal(dados["CUSTO_PERMANENTE"]);
                    novo.PERCENTUAL_CUSTO_PERMANENTE = Convert.ToDecimal(dados["PERCENTUAL_CUSTO_PERMANENTE"]);

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 24
0
        public void GravaNovaRegiao(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_REGIAO_VENDA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_REGIAO_VENDA>();

                    Doran_Servicos_ORM.TB_REGIAO_VENDA novo = new Doran_Servicos_ORM.TB_REGIAO_VENDA();

                    novo.CODIGO_REGIAO = dados["CODIGO_REGIAO"].ToString();
                    novo.NOME_REGIAO   = dados["NOME_REGIAO"].ToString();

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 25
0
        public string GravaNovoPAGTO(Dictionary <string, object> dados)
        {
            try
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_PAGTO_PARCIAL> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_PAGTO_PARCIAL>();

                    Doran_Servicos_ORM.TB_PAGTO_PARCIAL novo = new Doran_Servicos_ORM.TB_PAGTO_PARCIAL();

                    DateTime dt = Convert.ToDateTime(dados["DATA_PAGTO"].ToString() + " " + DateTime.Now.Hour.ToString().PadLeft(2, '0') +
                                                     ":" + DateTime.Now.Minute.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Second.ToString().PadLeft(2, '0'));

                    novo.NUMERO_FINANCEIRO = Convert.ToDecimal(dados["NUMERO_FINANCEIRO"]);
                    novo.DATA_PAGTO        = dt;
                    novo.VALOR_PAGTO       = Convert.ToDecimal(dados["VALOR_PAGTO"]);

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria.Th2_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();

                    string soma = SomaPagtoParcial(Convert.ToDecimal(dados["NUMERO_FINANCEIRO"])).ToString();

                    return(soma);
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }
Ejemplo n.º 26
0
        public Dictionary <string, object> Calcula_e_Grava_Totais_Nota_Saida(Dictionary <string, decimal> linha, bool Moeda)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                Dictionary <string, object> retorno = new Dictionary <string, object>();

                var queryItens = (from itens in ctx.GetTable <TB_ITEM_NOTA_SAIDA>()
                                  where itens.NUMERO_ITEM_NF == _NUMERO_SEQ
                                  select itens).ToList();


                decimal TOTAL_SERVICOS_NF = decimal.TryParse(queryItens.Sum(c => c.VALOR_TOTAL_ITEM_NF).ToString(), out TOTAL_SERVICOS_NF) ?
                                            (decimal)queryItens.Sum(c => c.VALOR_TOTAL_ITEM_NF) : 0;

                decimal TOTAL_ISS_NF = decimal.TryParse(queryItens.Sum(c => c.VALOR_ISS_ITEM_NF).ToString(), out TOTAL_ISS_NF) ?
                                       (decimal)queryItens.Sum(c => c.VALOR_ISS_ITEM_NF) : 0;

                decimal BASE_ISS_NF = decimal.TryParse(queryItens.Sum(c => c.BASE_ISS_ITEM_NF).ToString(), out BASE_ISS_NF) ?
                                      (decimal)queryItens.Sum(c => c.BASE_ISS_ITEM_NF) : 0;

                decimal TOTAL_NF = TOTAL_SERVICOS_NF;

                Completa_DADOS_ADICIONAIS_NF();

                var query = (from linha1 in ctx.TB_NOTA_SAIDAs
                             where linha1.NUMERO_SEQ == _NUMERO_SEQ
                             select linha1).ToList();

                foreach (var nota in query)
                {
                    nota.BASE_ISS_NF       = BASE_ISS_NF;
                    nota.VALOR_ISS_NF      = TOTAL_ISS_NF;
                    nota.TOTAL_SERVICOS_NF = TOTAL_SERVICOS_NF;
                    nota.TOTAL_NF          = TOTAL_SERVICOS_NF;

                    TOTAL_NF = nota.TOTAL_NF.Value;

                    nota.DADOS_ADICIONAIS_NF = DADOS_ADICIONAIS;

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.GetTable <TB_NOTA_SAIDA>().GetModifiedMembers(nota),
                                                                                    ctx.GetTable <TB_NOTA_SAIDA>().ToString(), ID_USUARIO);

                    ctx.SubmitChanges();
                }

                if (Moeda)
                {
                    retorno.Add("BASE_ISS_NF", BASE_ISS_NF.ToString("c", CultureInfo.CurrentCulture));
                    retorno.Add("VALOR_ISS_NF", TOTAL_ISS_NF.ToString("c", CultureInfo.CurrentCulture));
                    retorno.Add("TOTAL_SERVICOS_NF", TOTAL_SERVICOS_NF.ToString("c", CultureInfo.CurrentCulture));
                    retorno.Add("TOTAL_NF", TOTAL_NF.ToString("c", CultureInfo.CurrentCulture));
                }
                else
                {
                    retorno.Add("BASE_ISS_NF", BASE_ISS_NF.ToString());
                    retorno.Add("VALOR_ISS_NF", TOTAL_ISS_NF.ToString());
                    retorno.Add("TOTAL_SERVICOS_NF", TOTAL_SERVICOS_NF.ToString());
                    retorno.Add("TOTAL_NF", TOTAL_NF.ToString());
                }

                retorno.Add("DADOS_ADICIONAIS_NF", DADOS_ADICIONAIS);

                return(retorno);
            }
        }
Ejemplo n.º 27
0
        public void GravaNovoServico(List <decimal> NUMEROS_PEDIDO, List <decimal> NUMEROS_ITEM, List <decimal> IDS_CICLISTAS, decimal ID_USUARIO)
        {
            try
            {
                for (int i = 0; i < IDS_CICLISTAS.Count; i++)
                {
                    for (int n = 0; n < NUMEROS_PEDIDO.Count; n++)
                    {
                        using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                        {
                            if (!(from linha in ctx.TB_SERVICO_CICLISTAs
                                  where linha.NUMERO_PEDIDO_VENDA == NUMEROS_PEDIDO[n] &&
                                  linha.NUMERO_ITEM_VENDA == NUMEROS_ITEM[n] &&
                                  linha.ID_CICLISTA == IDS_CICLISTAS[i]
                                  select linha).Any())
                            {
                                System.Data.Linq.Table <Doran_Servicos_ORM.TB_SERVICO_CICLISTA> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_SERVICO_CICLISTA>();

                                Doran_Servicos_ORM.TB_SERVICO_CICLISTA novo = new Doran_Servicos_ORM.TB_SERVICO_CICLISTA();

                                novo.NUMERO_PEDIDO_VENDA = NUMEROS_PEDIDO[n];
                                novo.NUMERO_ITEM_VENDA   = NUMEROS_ITEM[n];
                                novo.ID_CICLISTA         = IDS_CICLISTAS[i];

                                Entidade.InsertOnSubmit(novo);

                                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, "TB_SERVICO_CICLISTA", ID_USUARIO);
                            }

                            ctx.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO);
                throw ex;
            }
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Calcula os impostos do item da nota fiscal (ICMS, Base ICMS, ICMS de Substituição, ICMS de Substituição e Total IPI,
        /// e grava na tabela TB_ITEM_NOTA_SAIDA
        /// </summary>
        /// <param name="dados">Objeto JSON com as informações das colunas da tabela</param>
        /// <returns>Retorna os totais da nota</returns>
        public Dictionary <string, object> Calcula_e_Grava_Item_Nota_Saida(Dictionary <string, object> dados)
        {
            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                try
                {
                    ctx.Connection.Open();
                    ctx.Transaction = ctx.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);

                    decimal CODIGO_CLIENTE = dados.ContainsKey("ID_CLIENTE") ?
                                             decimal.TryParse(dados["ID_CLIENTE"].ToString(), out CODIGO_CLIENTE) ?
                                             Convert.ToDecimal(dados["ID_CLIENTE"]) : 0
                                : 0;

                    if (!dados.ContainsKey("ID_PRODUTO"))
                    {
                        dados.Add("ID_PRODUTO", Busca_ID_PRODUTO(dados["CODIGO_PRODUTO_ITEM_NF"].ToString()));
                    }

                    decimal ALIQ_ISS = dados.ContainsKey("ALIQ_ISS_ITEM_NF") ? decimal.TryParse(dados["ALIQ_ISS_ITEM_NF"].ToString(), out ALIQ_ISS) ?
                                       Convert.ToDecimal(dados["ALIQ_ISS_ITEM_NF"]) : 0 :
                                       decimal.TryParse(dados["ALIQ_ISS"].ToString(), out ALIQ_ISS) ?
                                       Convert.ToDecimal(dados["ALIQ_ISS"]) : 0;

                    decimal VALOR_TOTAL_ITEM_NF = Convert.ToDecimal(dados["VALOR_TOTAL_ITEM_NF"]);

                    decimal VALOR_ISS_ITEM_NF = ALIQ_ISS > Convert.ToDecimal(0.00) ?
                                                Math.Round(VALOR_TOTAL_ITEM_NF * (ALIQ_ISS / 100), 2, MidpointRounding.ToEven) : 0;

                    decimal BASE_ISS_ITEM_NF = VALOR_TOTAL_ITEM_NF;

                    System.Data.Linq.Table <TB_ITEM_NOTA_SAIDA> Entidade = ctx.GetTable <TB_ITEM_NOTA_SAIDA>();

                    TB_ITEM_NOTA_SAIDA novo = new TB_ITEM_NOTA_SAIDA();

                    novo.NUMERO_ITEM_NF            = _NUMERO_SEQ;
                    novo.ID_PRODUTO_ITEM_NF        = Convert.ToDecimal(dados["ID_PRODUTO"]);
                    novo.CODIGO_PRODUTO_ITEM_NF    = dados["CODIGO_PRODUTO_ITEM_NF"].ToString();
                    novo.DESCRICAO_PRODUTO_ITEM_NF = dados["DESCRICAO_PRODUTO_ITEM_NF"].ToString();

                    novo.UNIDADE_MEDIDA_ITEM_NF = dados["UNIDADE_MEDIDA_ITEM_NF"].ToString();
                    novo.QTDE_ITEM_NF           = Convert.ToDecimal(dados["QTDE_ITEM_NF"]);
                    novo.VALOR_UNITARIO_ITEM_NF = Convert.ToDecimal(dados["VALOR_UNITARIO_ITEM_NF"]);

                    novo.VALOR_DESCONTO_ITEM_NF = dados.ContainsKey("VALOR_DESCONTO_ITEM_NF") ?
                                                  Convert.ToDecimal(dados["VALOR_DESCONTO_ITEM_NF"]) : 0;

                    novo.VALOR_TOTAL_ITEM_NF = VALOR_TOTAL_ITEM_NF;
                    novo.VALOR_ISS_ITEM_NF   = VALOR_ISS_ITEM_NF;
                    novo.ALIQ_ISS_ITEM_NF    = ALIQ_ISS;
                    novo.BASE_ISS_ITEM_NF    = BASE_ISS_ITEM_NF;

                    novo.NUMERO_PEDIDO_VENDA = dados.ContainsKey("NUMERO_PEDIDO_VENDA") ?
                                               Convert.ToDecimal(dados["NUMERO_PEDIDO_VENDA"]) : 0;

                    novo.NUMERO_ITEM_PEDIDO_VENDA = dados.ContainsKey("NUMERO_ITEM_PEDIDO_VENDA") ?
                                                    Convert.ToDecimal(dados["NUMERO_ITEM_PEDIDO_VENDA"]) : 0;

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);

                    ctx.SubmitChanges();

                    Dictionary <string, decimal> linha1 = new Dictionary <string, decimal>();

                    linha1.Add("TOTAL_SERVICOS_NF", VALOR_TOTAL_ITEM_NF);
                    linha1.Add("TOTAL_ISS_NF", VALOR_ISS_ITEM_NF);
                    linha1.Add("BASE_ISS_NF", BASE_ISS_ITEM_NF);

                    ctx.Transaction.Commit();

                    return(Calcula_e_Grava_Totais_Nota_Saida(linha1, true));
                }
                catch
                {
                    ctx.Transaction.Rollback();
                    throw;
                }
            }
        }
Ejemplo n.º 29
0
        public decimal Nova_Nota_Saida(Dictionary <string, object> dados)
        {
            dados = Busca_Dados_Redundantes(dados);

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                System.Data.Linq.Table <TB_NOTA_SAIDA> Entidade = ctx.GetTable <TB_NOTA_SAIDA>();

                TB_NOTA_SAIDA novo = new TB_NOTA_SAIDA();

                novo.NUMERO_NF                = 0;
                novo.SERIE_NF                 = dados["SERIE"].ToString();
                novo.IE_SUBST_TRIB_NF         = dados["IE_SUBST_TRIB_NF"].ToString();
                novo.CODIGO_CLIENTE_NF        = Convert.ToDecimal(dados["CODIGO_CLIENTE_NF"].ToString());
                novo.NOME_CLIENTE_NF          = dados["NOME_CLIENTE_NF"].ToString().Trim();
                novo.NOME_FANTASIA_CLIENTE_NF = dados["NOME_FANTASIA_CLIENTE_NF"].ToString().Trim();
                novo.CNPJ_CLIENTE_NF          = dados["CNPJ_CLIENTE_NF"].ToString().Trim();
                novo.IE_CLIENTE_NF            = dados["IE_CLIENTE_NF"].ToString().Trim();
                novo.ENDERECO_FATURA_NF       = dados["ENDERECO_FATURA_NF"].ToString().Trim();
                novo.NUMERO_END_FATURA_NF     = dados["NUMERO_END_FATURA_NF"].ToString().Trim();
                novo.COMP_END_FATURA_NF       = dados["COMP_END_FATURA_NF"].ToString().Trim();
                novo.CEP_FATURA_NF            = dados["CEP_FATURA_NF"].ToString().Trim();
                novo.BAIRRO_FATURA_NF         = dados["BAIRRO_FATURA_NF"].ToString().Trim();
                novo.ID_MUNICIPIO_NF          = Convert.ToDecimal(dados["ID_MUNICIPIO_NF"]);
                novo.MUNICIPIO_NF             = dados["MUNICIPIO_NF"].ToString().Trim();
                novo.ID_UF_NF                 = Convert.ToDecimal(dados["ID_UF_NF"]);
                novo.UF_NF = dados["SIGLA_UF"].ToString();
                novo.TELEFONE_CLIENTE_NF = dados["TELEFONE_CLIENTE_NF"].ToString().Trim();

                novo.DATA_EMISSAO_NF = Convert.ToDateTime(dados["DATA_EMISSAO_NF"]);

                novo.CODIGO_CP_NF      = Convert.ToDecimal(dados["CODIGO_CP_NF"]);
                novo.DESCRICAO_CP_NF   = dados["DESCRICAO_CP_NF"].ToString().Trim();
                novo.BASE_ISS_NF       = 0;
                novo.TOTAL_SERVICOS_NF = 0;
                novo.VALOR_ISS_NF      = 0;
                novo.TOTAL_NF          = Convert.ToDecimal(dados["TOTAL_NF"]);

                novo.QTDE_NF         = string.Empty;
                novo.ESPECIE_NF      = string.Empty;
                novo.MARCA_NF        = string.Empty;
                novo.NUMERO_QTDE_NF  = string.Empty;
                novo.PESO_BRUTO_NF   = 0;
                novo.PESO_LIQUIDO_NF = 0;

                novo.OBS_NF = dados["DADOS_ADICIONAIS_NF"].ToString().Trim();
                novo.DADOS_ADICIONAIS_NF      = "";
                novo.CODIGO_VENDEDOR_NF       = Convert.ToDecimal(dados["CODIGO_VENDEDOR_NF"]);
                novo.NOME_VENDEDOR_NF         = dados["NOME_VENDEDOR_NF"].ToString().Trim();
                novo.NUMERO_PEDIDO_NF         = dados["NUMERO_PEDIDO_NF"].ToString().Trim();
                novo.CHAVE_ACESSO_NF          = dados["CHAVE_ACESSO_NF"].ToString().Trim();
                novo.PROTOCOLO_AUTORIZACAO_NF = dados["PROTOCOLO_AUTORIZACAO_NF"].ToString().Trim();
                novo.DATA_PROTOCOLO_NF        = new DateTime(1901, 01, 01);
                novo.EMITIDA_NF       = 0;
                novo.CANCELADA_NF     = 0;
                novo.STATUS_NF        = 1;
                novo.NUMERO_LOTE_NF   = 0;
                novo.DANFE_NFE        = "";
                novo.EMAIL_ENVIADO_NF = 0;

                novo.CODIGO_EMITENTE_NF = ID_EMPRESA;
                novo.NF_ORIGEM          = 0;

                Entidade.InsertOnSubmit(novo);

                Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), ID_USUARIO);

                ctx.SubmitChanges();

                return(novo.NUMERO_SEQ);
            }
        }
Ejemplo n.º 30
0
        public void GravaNovoEmitente(Dictionary <string, object> dados)
        {
            try
            {
                decimal ID_MUNICIPIO_RETIRADA = decimal.TryParse(dados["COD_MUNICIPIO_RETIRADA_EMITENTE"].ToString(), out ID_MUNICIPIO_RETIRADA) ?
                                                Convert.ToDecimal(dados["COD_MUNICIPIO_RETIRADA_EMITENTE"]) : 0;

                decimal ID_UF_RETIRADA = decimal.TryParse(dados["ID_UF_RETIRADA_EMITENTE"].ToString(), out ID_UF_RETIRADA) ?
                                         Convert.ToDecimal(dados["ID_UF_RETIRADA_EMITENTE"]) : 0;

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    System.Data.Linq.Table <Doran_Servicos_ORM.TB_EMITENTE> Entidade = ctx.GetTable <Doran_Servicos_ORM.TB_EMITENTE>();

                    Doran_Servicos_ORM.TB_EMITENTE novo = new Doran_Servicos_ORM.TB_EMITENTE();

                    novo.NOME_EMITENTE          = dados["NOME_EMITENTE"].ToString();
                    novo.NOME_FANTASIA_EMITENTE = dados["NOME_FANTASIA_EMITENTE"].ToString();
                    novo.CNPJ_EMITENTE          = dados["CNPJ_EMITENTE"].ToString();
                    novo.IE_EMITENTE            = dados["IE_EMITENTE"].ToString();

                    novo.ENDERECO_EMITENTE        = dados["ENDERECO_EMITENTE"].ToString();
                    novo.NUMERO_END_EMITENTE      = dados["NUMERO_END_EMITENTE"].ToString();
                    novo.COMPLEMENTO_END_EMITENTE = dados["COMPLEMENTO_END_EMITENTE"].ToString();

                    novo.CEP_EMITENTE              = dados["CEP_EMITENTE"].ToString();
                    novo.BAIRRO_EMITENTE           = dados["BAIRRO_EMITENTE"].ToString();
                    novo.CODIGO_MUNICIPIO_EMITENTE = Convert.ToDecimal(dados["CODIGO_MUNICIPIO_EMITENTE"]);
                    novo.ID_UF_EMITENTE            = Convert.ToDecimal(dados["ID_UF_EMITENTE"]);

                    novo.ENDERECO_RETIRADA_EMITENTE      = dados["ENDERECO_RETIRADA_EMITENTE"].ToString();
                    novo.NUMERO_END_RETIRADA_EMITENTE    = dados["NUMERO_END_RETIRADA_EMITENTE"].ToString();
                    novo.COMPL_RETIRADA_EMITENTE         = dados["COMPL_RETIRADA_EMITENTE"].ToString();
                    novo.CEP_RETIRADA_EMITENTE           = dados["CEP_RETIRADA_EMITENTE"].ToString();
                    novo.BAIRRO_RETIRADA_EMITENTE        = dados["BAIRRO_RETIRADA_EMITENTE"].ToString();
                    novo.COD_MUNICIPIO_RETIRADA_EMITENTE = ID_MUNICIPIO_RETIRADA;
                    novo.ID_UF_RETIRADA_EMITENTE         = ID_UF_RETIRADA;

                    novo.TELEFONE_EMITENTE = dados["TELEFONE_EMITENTE"].ToString();

                    novo.FAX_EMITENTE = dados["FAX_EMITENTE"].ToString();
                    novo.OBS_EMITENTE = dados["OBS_EMITENTE"].ToString();

                    novo.EMAIL_EMITENTE = dados["EMAIL_EMITENTE"].ToString();

                    novo.NUMERO_NF_EMITENTE = Convert.ToDecimal(dados["NUMERO_NF_EMITENTE"]);
                    novo.SERIE_NF_EMITENTE  = dados["SERIE_NF_EMITENTE"].ToString();

                    novo.SITE_EMITENTE = dados["SITE_EMITENTE"].ToString();
                    novo.CRT_EMITENTE  = Convert.ToDecimal(dados["CRT_EMITENTE"]);

                    Entidade.InsertOnSubmit(novo);

                    Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Insert(ctx, novo, Entidade.ToString(), Convert.ToDecimal(dados["ID_USUARIO"]));

                    ctx.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, Convert.ToDecimal(dados["ID_USUARIO"]));
                throw ex;
            }
        }