Esempio n. 1
0
        public static decimal Dia_Util(decimal DIAS)
        {
            DateTime _vencimento = DateTime.Today.AddDays((double)DIAS);
            decimal  retorno     = DIAS;

            while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento))
            {
                _vencimento = _vencimento.AddDays(1);
                retorno    += 1;
            }

            return(retorno);
        }
Esempio n. 2
0
        public static decimal TotalVencidos(Vencidos recepberPagar, decimal CODIGO_CLIENTE_FORNECEDOR, DataContext ctx, decimal ID_EMPRESA)
        {
            DateTime dataLimite = Doran_TitulosVencidos.DataLimiteParaVencimento(ctx);

            decimal?retorno = 0;

            if (recepberPagar == Vencidos.RECEBER)
            {
                var query = from linha in ctx.GetTable <TB_FINANCEIRO>()
                            where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                            linha.DATA_VENCIMENTO < dataLimite &&
                            linha.CREDITO_DEBITO == 0 &&
                            linha.CODIGO_EMITENTE == ID_EMPRESA

                            && (linha.CODIGO_CLIENTE == CODIGO_CLIENTE_FORNECEDOR || CODIGO_CLIENTE_FORNECEDOR == 0)

                            select new TABELA_DATA_VENCIMENTO()
                {
                    NUMERO_FINANCEIRO = linha.NUMERO_FINANCEIRO,
                    DATA_VENCIMENTO   = linha.DATA_VENCIMENTO,
                    VALOR_TOTAL       = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO
                };

                foreach (var item in query)
                {
                    DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                    while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento, ctx))
                    {
                        _vencimento = _vencimento.AddDays(1);
                    }

                    if (_vencimento < DateTime.Now)
                    {
                        retorno += item.VALOR_TOTAL;
                    }
                }

                DataTable dt = ApoioXML.ToTable <TABELA_DATA_VENCIMENTO>(query);

                foreach (DataRow dr in dt.Rows)
                {
                    retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]), ctx);

                    if (retorno < (decimal)0.00)
                    {
                        retorno = 0;
                    }
                }
            }
            else
            {
                var query = (from linha in ctx.GetTable <TB_FINANCEIRO>()
                             where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                             linha.DATA_VENCIMENTO < dataLimite &&
                             linha.CREDITO_DEBITO == 1 &&
                             linha.CODIGO_EMITENTE == ID_EMPRESA

                             && (linha.CODIGO_FORNECEDOR == CODIGO_CLIENTE_FORNECEDOR || CODIGO_CLIENTE_FORNECEDOR == 0)

                             select new TABELA_DATA_VENCIMENTO()
                {
                    NUMERO_FINANCEIRO = linha.NUMERO_FINANCEIRO,
                    DATA_VENCIMENTO = linha.DATA_VENCIMENTO,
                    VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO
                }).ToList();

                foreach (var item in query)
                {
                    DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

                    while (Doran_TitulosVencidos.Feriado_FimDeSemana(_vencimento, ctx))
                    {
                        _vencimento = _vencimento.AddDays(1);
                    }

                    if (_vencimento < DateTime.Now)
                    {
                        retorno += (decimal)item.VALOR_TOTAL;
                    }
                }

                DataTable dt = ApoioXML.ToTable <TABELA_DATA_VENCIMENTO>(query);

                foreach (DataRow dr in dt.Rows)
                {
                    retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]), ctx);
                }
            }

            return(retorno.HasValue ? (decimal)retorno : 0);
        }
Esempio n. 3
0
        public static decimal TotalVencidos(Vencidos recepberPagar, decimal CODIGO_CLIENTE_FORNECEDOR, decimal ID_EMPRESA)
        {
            DateTime dataLimite = Doran_TitulosVencidos.DataLimiteParaVencimento();
            decimal? retorno    = 0;

            if (recepberPagar == Vencidos.RECEBER)
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    ctx.Connection.Open();
                    ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

                    var query = from linha in ctx.TB_FINANCEIROs
                                where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.DATA_VENCIMENTO < dataLimite &&
                                linha.CREDITO_DEBITO == 0 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                select linha;

                    if (CODIGO_CLIENTE_FORNECEDOR > 0)
                    {
                        query = query.Where(c => c.CODIGO_CLIENTE == CODIGO_CLIENTE_FORNECEDOR);
                    }
                    else
                    {
                        query = query.Where(c => c.CODIGO_CLIENTE > 0);
                    }

                    foreach (var item in query)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

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

                        if (_vencimento < DateTime.Now)
                        {
                            retorno += (item.VALOR + item.VALOR_ACRESCIMO + item.VALOR_MULTA) - item.VALOR_DESCONTO;
                        }
                    }

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    foreach (DataRow dr in dt.Rows)
                    {
                        retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));

                        if (retorno < (decimal)0.00)
                        {
                            retorno = 0;
                        }
                    }
                }
            }
            else
            {
                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    ctx.Connection.Open();
                    ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

                    var query = from linha in ctx.TB_FINANCEIROs
                                where linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                linha.DATA_VENCIMENTO < dataLimite &&
                                linha.CREDITO_DEBITO == 1 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                && (linha.CODIGO_FORNECEDOR == CODIGO_CLIENTE_FORNECEDOR || CODIGO_CLIENTE_FORNECEDOR == 0)
                                select linha;

                    foreach (var item in query)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

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

                        if (_vencimento < DateTime.Now)
                        {
                            retorno += (item.VALOR + item.VALOR_ACRESCIMO + item.VALOR_MULTA) - item.VALOR_DESCONTO;
                        }
                    }

                    DataTable dt = ApoioXML.ToDataTable(ctx, query);

                    foreach (DataRow dr in dt.Rows)
                    {
                        retorno -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));
                    }
                }
            }

            return(retorno.HasValue ? (decimal)retorno : 0);
        }
Esempio n. 4
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);
        }
Esempio n. 5
0
        public string Faturamento_Inadimplencia(DateTime dt1, DateTime dt2, decimal _ID_EMPRESA)
        {
            ID_EMPRESA = _ID_EMPRESA;

            using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
            {
                int monthsApart = 12 * (dt1.Year - dt2.Year) + dt1.Month - dt2.Month;
                monthsApart = Math.Abs(monthsApart);

                dt2 = dt2.AddDays(1);
                dt2 = dt2.AddMonths(-monthsApart);

                List <decimal?> TotalFaturamento = new List <decimal?>();
                List <decimal?> TotalVencido     = new List <decimal?>();
                List <string>   Periodo          = new List <string>();
                decimal?        _totalVencido    = 0;

                for (int i = 0; i <= monthsApart; i++)
                {
                    var query = from linha in ctx.TB_FINANCEIROs
                                where (linha.DATA_VENCIMENTO >= dt1 &&
                                       linha.DATA_VENCIMENTO < dt2) &&
                                linha.CREDITO_DEBITO == 0 &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA
                                select linha;

                    decimal?_total = query.Sum(tf => tf.VALOR_TOTAL);

                    if (!_total.HasValue)
                    {
                        TotalFaturamento.Add(0);
                    }
                    else
                    {
                        TotalFaturamento.Add(_total);
                    }

                    DateTime _vencido = dt1.Month == DateTime.Now.Month ?
                                        Doran_TitulosVencidos.DataLimiteParaVencimento() :
                                        dt2;

                    var query1 = from linha in ctx.TB_FINANCEIROs
                                 where (linha.DATA_VENCIMENTO >= dt1 &&
                                        linha.DATA_VENCIMENTO < _vencido) &&
                                 linha.DATA_PAGAMENTO == new DateTime(1901, 01, 01) &&
                                 linha.CREDITO_DEBITO == 0 &&
                                 linha.CODIGO_EMITENTE == ID_EMPRESA
                                 select linha;

                    decimal tv = 0;

                    foreach (var item in query1)
                    {
                        DateTime _vencimento = Convert.ToDateTime(item.DATA_VENCIMENTO);

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

                        if (_vencimento < DateTime.Now)
                        {
                            tv += (decimal)item.VALOR_TOTAL;
                        }
                    }

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

                    foreach (DataRow dr in dt.Rows)
                    {
                        tv -= Doran_TitulosVencidos.PagoParcialmente(Convert.ToDecimal(dr["NUMERO_FINANCEIRO"]));
                    }

                    _totalVencido += tv;

                    TotalVencido.Add(_totalVencido);

                    Periodo.Add(dt1.Month.ToString().PadLeft(2, '0') + "/" + dt1.Year.ToString());

                    dt1 = dt1.AddMonths(1);
                    dt2 = dt1;
                    dt2 = dt2.AddMonths(1);
                    dt2 = dt2.AddSeconds(-1);
                }

                string retorno = "[";

                for (int i = 0; i < TotalFaturamento.Count; i++)
                {
                    string _totalFaturamento = TotalFaturamento[i].ToString();
                    _totalFaturamento = _totalFaturamento.Replace(",", ".");

                    string totalVencido = TotalVencido[i].ToString();
                    totalVencido = totalVencido.Replace(",", ".");

                    retorno += "{ periodo: '" + Periodo[i] + "', total_faturamento: " + _totalFaturamento + ", total_vencido: " + totalVencido + " },";
                }

                retorno = retorno.Substring(0, retorno.Length - 1) + "]";

                return(retorno);
            }
        }