Пример #1
0
        public string listaEnderecoFinal(string RUA, decimal ID_USUARIO)
        {
            try
            {
                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_ITEM_ORCAMENTO_VENDAs
                                 where linha.ENDERECO_FINAL_ITEM_ORCAMENTO.Contains(RUA)
                                 select new
                    {
                        ENDERECO_INICIAL_ITEM_ORCAMENTO = linha.ENDERECO_FINAL_ITEM_ORCAMENTO,
                        NUMERO_INICIAL_ITEM_ORCAMENTO = linha.NUMERO_FINAL_ITEM_ORCAMENTO,
                        COMPL_INICIAL_ITEM_ORCAMENTO = linha.COMPL_FINAL_ITEM_ORCAMENTO,
                        CIDADE_INICIAL_ITEM_ORCAMENTO = linha.CIDADE_FINAL_ITEM_ORCAMENTO,
                        CEP_INICIAL_ITEM_ORCAMENTO = linha.CEP_FINAL_ITEM_ORCAMENTO,
                        ESTADO_INICIAL_ITEM_ORCAMENTO = linha.ESTADO_FINAL_ITEM_ORCAMENTO
                    }).Distinct().Take(30);

                    return(ApoioXML.objQueryToXML(ctx, query));
                }
            }
            catch (Exception ex)
            {
                Doran_Base.Auditoria_ERP_Servicos.Doran_Exception.GravaErro(ex, ID_USUARIO);
                throw ex;
            }
        }
Пример #2
0
        public Doran_Reune_Titulos_do_Cliente(decimal _ID_USUARIO, decimal _ID_EMPRESA)
        {
            ID_USUARIO = _ID_USUARIO;
            ID_EMPRESA = _ID_EMPRESA;

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
        }
Пример #3
0
        public Doran_Ordem_de_Recebimento(decimal _ID_EMPRESA, DateTime _dataFinal)
        {
            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            dataFinal  = _dataFinal;
            ID_EMPRESA = _ID_EMPRESA;
        }
Пример #4
0
        public Doran_Relatorio_desempenho_ciclista(DateTime _data1, DateTime _data2, decimal _ID_EMPRESA)
        {
            dt1 = _data1;
            dt2 = _data2;
            dt2 = dt2.AddDays(1);

            ID_EMPRESA = _ID_EMPRESA;

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
        }
Пример #5
0
        public Doran_Relatorio_Entregas_do_Cliente(string _clientefornecedor, DateTime _data1, DateTime _data2, decimal _ID_EMPRESA)
        {
            cliente_fornecedor = _clientefornecedor;
            dt1 = _data1;
            dt2 = _data2;
            dt2 = dt2.AddDays(1);

            ID_EMPRESA = _ID_EMPRESA;

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
        }
Пример #6
0
        public Doran_RPS_Nota_Servico(decimal _ID_EMPRESA, decimal _ID_USUARIO)
        {
            ID_USUARIO = _ID_USUARIO;
            ID_EMPRESA = _ID_EMPRESA;

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            conteudo = new StringBuilder();

            preenche_Dados_Emitente();
        }
Пример #7
0
        public Doran_Sugestao_Compra()
        {
            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            status_compra = new List <decimal?>();
            status_compra.Add(3);
            status_compra.Add(4);

            status_nf = new List <decimal?>();
            status_nf.Add(2);
            status_nf.Add(4);
        }
Пример #8
0
        public Doran_FaturamentoDiario(string _clientefornecedor, DateTime _data1, DateTime _data2, string CODIGO_CFOP, decimal _Filial,
                                       decimal _ID_EMPRESA)
        {
            cliente_fornecedor = _clientefornecedor;
            dt1          = _data1;
            dt2          = _data2;
            dt2          = dt2.AddDays(1);
            _CODIGO_CFOP = CODIGO_CFOP;

            Filial     = _Filial;
            ID_EMPRESA = _ID_EMPRESA;

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
        }
Пример #9
0
        public static DateTime DataLimiteParaVencimento()
        {
            DateTime retorno = new DateTime();
            DateTime hoje    = DateTime.Today;

            hoje = hoje.AddDays(1);
            hoje = hoje.AddSeconds(-1);

            if (hoje.DayOfWeek == DayOfWeek.Saturday)
            {
                retorno = hoje.AddDays(2);
            }

            else if (hoje.DayOfWeek == DayOfWeek.Sunday)
            {
                retorno = hoje.AddDays(1);
            }

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

                while (true)
                {
                    var query = from linha in ctx.TB_FERIADOs
                                where linha.DATA_FERIADO == hoje
                                select linha;

                    if (query.Count() > 0)
                    {
                        hoje = hoje.AddDays(1);
                    }
                    else
                    {
                        break;
                    }
                }

                hoje = hoje.AddDays(1);
                hoje = hoje.AddHours(-hoje.Hour);
                hoje = hoje.AddMinutes(-hoje.Minute);
                hoje = hoje.AddSeconds(-hoje.Second);

                return(hoje);
            }
        }
Пример #10
0
        public Doran_Boleto_Itau(List <decimal> _NUMEROS_FINANCEIRO, decimal _ID_EMPRESA, decimal _ID_USUARIO, decimal _ID_CONTA_EMAIL,
                                 decimal _NUMERO_BANCO, string _AGENCIA, string _CONTA_CORRENTE, string _CARTEIRA)
        {
            NUMEROS_FINANCEIRO = _NUMEROS_FINANCEIRO;
            ID_EMPRESA         = _ID_EMPRESA;
            ID_USUARIO         = _ID_USUARIO;
            ID_CONTA_EMAIL     = _ID_CONTA_EMAIL;

            NUMERO_BANCO   = _NUMERO_BANCO;
            AGENCIA        = _AGENCIA;
            CONTA_CORRENTE = _CONTA_CORRENTE;
            CARTEIRA       = "109";// _CARTEIRA; // 175

            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            preencheEmitente();
        }
Пример #11
0
        public string Lista_Relatorio()
        {
            string retorno = "";

            Preenche_Vendedor();

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                r.DefineCabecalho("Relat&oacute;rio de Clientes Inativos<br /><span style='font-size: 8pt;'>" + NOME_VENDEDOR + "</span>", 60);

                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_CLIENTEs

                                orderby linha.DATA_ULTIMA_FATURA descending, linha.VALOR_ULTIMA_FATURA descending

                    where linha.DATA_ULTIMA_FATURA < _dataRef

                    && linha.CLIENTE_BLOQUEADO != 1

                    && (linha.NOME_CLIENTE.Contains(CLIENTE) ||
                        linha.NOMEFANTASIA_CLIENTE.Contains(CLIENTE))

                    select new
                    {
                        linha.ID_CLIENTE,
                        linha.NOMEFANTASIA_CLIENTE,
                        linha.CODIGO_VENDEDOR_CLIENTE,
                        linha.TB_VENDEDORE.NOME_VENDEDOR,
                        linha.DATA_ULTIMA_FATURA,
                        linha.VALOR_ULTIMA_FATURA,
                        linha.TB_MUNICIPIO.TB_UF.SIGLA_UF,

                        NOME_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                select linha1).Any() ?

                                               (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                select linha1.NOME_CONTATO_CLIENTE).First()
                                                             : "",

                        EMAIL_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                 where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                 select linha1).Any() ?

                                                (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                 where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                 select linha1.EMAIL_CONTATO_CLIENTE).First()
                                                             : "",

                        TELEFONE_CONTATO_CLIENTE = (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                    where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                    select linha1).Any() ?

                                                   (from linha1 in ctx.GetTable <TB_CLIENTE_CONTATO>()
                                                    where linha1.ID_CLIENTE == linha.ID_CLIENTE
                                                    select linha1.TELEFONE_CONTATO_CLIENTE).First()
                                                             : ""
                    };

                    if (CODIGO_VENDEDOR > 0)
                    {
                        query = query.Where(v => v.CODIGO_VENDEDOR_CLIENTE == CODIGO_VENDEDOR);
                    }

                    var query1 = query.ToList();

                    StringBuilder _conteudo = new StringBuilder();

                    _conteudo.Append("<table style='width: 75%; font-family: tahoma; font-size: 8pt;'>");

                    _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Cliente</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Contato</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Vendedor(a):</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Telefone</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>UF</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Ultima Compra</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>Valor Ultima Compra</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>Total Vencido</td>
                                  </tr>");

                    foreach (var item in query1)
                    {
                        decimal vencido = Doran_TitulosVencidos.TotalVencidos(Vencidos.RECEBER,
                                                                              item.ID_CLIENTE, ID_EMPRESA);

                        _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOMEFANTASIA_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOME_CONTATO_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.NOME_VENDEDOR.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.TELEFONE_CONTATO_CLIENTE.Trim() + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + item.SIGLA_UF + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + ApoioXML.TrataData2(item.DATA_ULTIMA_FATURA) + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>" + ((decimal)item.VALOR_ULTIMA_FATURA).ToString("c") + @"</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>" + ((decimal)vencido).ToString("c") + @"</td>
                                  </tr>");
                    }

                    _conteudo.Append("</table>");

                    r.InsereConteudo(_conteudo.ToString());

                    retorno = r.SalvaDocumento("Clientes_Inativos");
                }

                return(retorno);
            }
        }
Пример #12
0
        public string MontaRelatorio()
        {
            string retorno  = "";
            string Emitente = BuscaNomeFilial();

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Landscape))
            {
                r.ID_EMPRESA = Filial;

                DateTime data2 = dt2.AddSeconds(-1);

                r.DefineCabecalho(string.Format("Relação de Notas Fiscais<br /><span style='font-family: Tahoma; font-size: 8pt;'>Per&iacute;odo de {0} at&eacute; {1}<br />Empresa / Filial: " + Emitente + "</span>",
                                                ApoioXML.TrataData2(dt1), ApoioXML.TrataData2(data2)), 60);

                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_LANCAMENTO >= dt1 &&
                                       linha.DATA_LANCAMENTO < dt2)

                                && linha.CREDITO_DEBITO == 0 &&
                                linha.CODIGO_EMITENTE == Filial

                                && linha.NUMERO_SEQ_NF_SAIDA > 0

                                select new
                    {
                        linha.NUMERO_SEQ_NF_SAIDA,
                        linha.NUMERO_NF_SAIDA,
                        linha.DATA_LANCAMENTO,
                        linha.TB_NOTA_SAIDA.NOME_FANTASIA_CLIENTE_NF,
                        VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO,
                        linha.DATA_VENCIMENTO,

                        NOME_VENDEDOR_NF = linha.TB_NOTA_SAIDA == null ?
                                           string.Empty : linha.TB_NOTA_SAIDA.NOME_VENDEDOR_NF,

                        OBS_NF = linha.TB_NOTA_SAIDA == null ?
                                 string.Empty : linha.TB_NOTA_SAIDA.OBS_INTERNA_NF,

                        CODIGO_VENDEDOR_NF = linha.TB_NOTA_SAIDA == null ?
                                             0 : linha.TB_NOTA_SAIDA.CODIGO_VENDEDOR_NF
                    };

                    if (A_VISTA == 1)
                    {
                        query = query.Where(l => SqlMethods.DateDiffDay(l.DATA_LANCAMENTO.Value, l.DATA_VENCIMENTO.Value) < 2);
                    }

                    string _conteudo = "<table style='width: 100%; font-family: tahoma; font-size: 8pt;'>";

                    _conteudo += @"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Data Emiss&atilde;o</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>N&ordm; NF</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Cliente</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold; text-align: right;'>Total NF</td>                                    
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Vencimento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>N&ordm; do Pedido</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Data do Pedido</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Data de Entrega</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Vendedor(a)</td>
                                    <td style='BORDER-BOTTOM: 1px solid; font-weight: bold;'>Observa&ccedil;&atilde;o</td>
                                    
                                  </tr>";

                    decimal Total = 0;

                    foreach (var item in query)
                    {
                        var query1 = (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                      where linha.NUMERO_ITEM_NF == item.NUMERO_SEQ_NF_SAIDA
                                      select linha).Any() ?

                                     (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                      where linha.NUMERO_ITEM_NF == item.NUMERO_SEQ_NF_SAIDA
                                      select linha).ToList().First() :

                                     (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                      where linha.TB_NOTA_SAIDA.NUMERO_NF == item.NUMERO_NF_SAIDA
                                      select linha).Any() ?

                                     (from linha in ctx.TB_ITEM_NOTA_SAIDAs
                                      where linha.TB_NOTA_SAIDA.NUMERO_NF == item.NUMERO_NF_SAIDA
                                      select linha).ToList().First() :

                                     new TB_ITEM_NOTA_SAIDA();

                        var pedido = (from linha in ctx.TB_PEDIDO_VENDAs
                                      where linha.NUMERO_PEDIDO == query1.NUMERO_PEDIDO_VENDA
                                      select new
                        {
                            linha.NUMERO_PEDIDO,
                            linha.DATA_PEDIDO,
                            linha.ENTREGA_PEDIDO
                        }).Take(1).ToList();

                        var codigo_lider = (from linha in ctx.TB_VENDEDOREs
                                            where linha.ID_VENDEDOR == item.CODIGO_VENDEDOR_NF
                                            select linha.SUPERVISOR_LIDER).ToList();

                        if (string.IsNullOrEmpty(item.NOME_FANTASIA_CLIENTE_NF))
                        {
                            throw new Exception(string.Concat("O t&iacute;tulo da NF ", item.NUMERO_NF_SAIDA.ToString(), ", no valor de " + item.VALOR_TOTAL.Value.ToString("c"),
                                                              " est&aacute; com o cliente em branco. Acerte este erro no financeiro e tente emitir o relat&aacute;rio novamente"));
                        }

                        _conteudo += "<tr>";
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid;'>" + ApoioXML.Data((DateTime)item.DATA_LANCAMENTO) + "</td>";
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid;'>" + item.NUMERO_NF_SAIDA.ToString() + "</td>";
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid;'>" + item.NOME_FANTASIA_CLIENTE_NF.Trim() + "</td>";
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid; text-align: right;'>" + ((decimal)item.VALOR_TOTAL).ToString("c") + "</td>";
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid;'>" + ApoioXML.Data((DateTime)item.DATA_VENCIMENTO) + "</td>";
                        _conteudo += string.Concat("<td style='BORDER-BOTTOM: 1px solid;'>", pedido.Any() ? pedido.First().NUMERO_PEDIDO.ToString() : "", "</td>");
                        _conteudo += string.Concat("<td style='BORDER-BOTTOM: 1px solid;'>", pedido.Any() ? ApoioXML.Data((DateTime)pedido.First().DATA_PEDIDO) : "", "</td>");
                        _conteudo += string.Concat("<td style='BORDER-BOTTOM: 1px solid;'>", pedido.Any() ? ApoioXML.Data((DateTime)pedido.First().ENTREGA_PEDIDO) : "", "</td>");
                        _conteudo += string.Concat("<td style='BORDER-BOTTOM: 1px solid;'>", string.IsNullOrEmpty(item.NOME_VENDEDOR_NF) ? "" : item.NOME_VENDEDOR_NF.Trim(), "</td>");
                        _conteudo += "<td style='BORDER-BOTTOM: 1px solid;'>" + item.OBS_NF + "</td></tr>";

                        Total += (decimal)item.VALOR_TOTAL;
                    }

                    _conteudo += string.Format(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right;'>{0}</td>                                    
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                    <td style='BORDER-BOTTOM: 1px solid;'></td>
                                      </tr></table>", Total.ToString("c"));

                    r.InsereConteudo(_conteudo);

                    retorno = r.SalvaDocumento("FaTh2_Emissao_Notas_Fiscais");
                }

                return(retorno);
            }
        }
Пример #13
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);
        }
Пример #14
0
        public string MontaRelatorioAReceber()
        {
            string retorno = "";

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                r.DefineCabecalho("Relat&oacute;rio de T&iacute;tulos a Receber Vencidos", 60);

                DateTime dataLimite = Doran_TitulosVencidos.DataLimiteParaVencimento();

                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_CLIENTE > 0
                                && linha.HISTORICO.Contains(cliente_fornecedor) &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                select new
                    {
                        linha.NUMERO_FINANCEIRO,
                        linha.NUMERO_SEQ_NF_SAIDA,
                        linha.NUMERO_NF_SAIDA,
                        linha.NUMERO_SEQ_NF_ENTRADA,
                        linha.HISTORICO,
                        linha.DATA_LANCAMENTO,
                        linha.DATA_VENCIMENTO,
                        CLIENTE         = linha.TB_NOTA_SAIDA == null ? "" : linha.TB_NOTA_SAIDA.TB_CLIENTE.NOMEFANTASIA_CLIENTE,
                        VENDEDOR        = linha.TB_NOTA_SAIDA == null ? "" : linha.TB_NOTA_SAIDA.NOME_VENDEDOR_NF,
                        CODIGO_VENDEDOR = linha.TB_NOTA_SAIDA == null ? 0 : linha.TB_NOTA_SAIDA.CODIGO_VENDEDOR_NF,
                        VALOR_TOTAL     = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO,
                        linha.VALOR_APROXIMADO
                    };

                    if (VENDEDOR > 0)
                    {
                        query = query.Where(_ => _.CODIGO_VENDEDOR == VENDEDOR);
                    }

                    string _conteudo = "<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>";

                    _conteudo += @"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Lan&ccedil;amento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Cliente</td>
                                    <td style='BORDER-BOTTOM: 1px solid;  border-color:#C0C0C0;'>Vendedor</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor Aproximado?</td>
                                  </tr>";

                    decimal Total = 0;

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

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

                        DateTime _limite = DateTime.Now;

                        if (_limite.DayOfWeek == DayOfWeek.Saturday)
                        {
                            _limite = _limite.AddDays(-2);
                        }

                        if (_limite.DayOfWeek == DayOfWeek.Sunday)
                        {
                            _limite = _limite.AddDays(-3);
                        }

                        decimal valor = (decimal)item.VALOR_TOTAL - Doran_TitulosVencidos.PagoParcialmente(item.NUMERO_FINANCEIRO);

                        if (_vencimento < _limite)
                        {
                            _conteudo += string.Format(@"<tr>
                                        <td style='BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0; text-align: right;'>{5}</td>
                                        <td style='BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{6}</td>
                                      </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_LANCAMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                       string.IsNullOrEmpty(item.CLIENTE) ? item.HISTORICO : item.CLIENTE.Trim(),
                                                       string.IsNullOrEmpty(item.VENDEDOR) ? "" : item.VENDEDOR.Trim(),
                                                       ((decimal)valor).ToString("c"),
                                                       item.VALOR_APROXIMADO == 1 ? "S" : "");

                            Total += valor;
                        }
                    }

                    _conteudo += string.Format(@"<tr>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-TOP: 1px solid; text-align: right; border-color:#C0C0C0;'>&nbsp;</td>
                                      </tr></table>", "Total..:", ((decimal)Total).ToString("c"));

                    r.InsereConteudo(_conteudo);

                    retorno = r.SalvaDocumento("Doran_Titulos_Receber_Vencidos");
                }

                return(retorno);
            }
        }
Пример #15
0
        public string MontaRelatorioEmissao()
        {
            string retorno = "";

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                DateTime df = DataFinal.AddSeconds(-1);

                string nome_banco = "";

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    if (Banco > 0)
                    {
                        nome_banco = (from linha in ctx.TB_BANCOs
                                      where linha.NUMERO_BANCO == Banco
                                      select linha.NOME_BANCO.Trim()).ToList().First().Trim();
                    }
                }

                string cabecalho = string.Format("Relat&oacute;rio T&iacute;tulos a Receber por Emiss&atilde;o<br /><span style='font-family: Tahoma; font-size: 8pt;'>Per&iacute;odo de {0} at&eacute; {1}<br />{2}</span>",
                                                 ApoioXML.TrataData2(DataInicial), ApoioXML.TrataData2(df), Banco > 0 ? "Banco: " + nome_banco : "");

                r.DefineCabecalho(cabecalho, 60);

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

                    DateTime _dt = DataInicial;

                    StringBuilder _conteudo = new StringBuilder();

                    _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>");

                    _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Emiss&atilde;o</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Pagamento</td>

                                    <td style='BORDER-BOTTOM: 1px solid; width: 280px; border-color:#C0C0C0;'>Hist&oacute;rico</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor do T&iacute;tulo</td>
                                  </tr>");

                    var query = from linha in ctx.TB_FINANCEIROs
                                orderby linha.DATA_LANCAMENTO
                                where (linha.DATA_LANCAMENTO >= DataInicial &&
                                       linha.DATA_LANCAMENTO < DataFinal) &&
                                linha.CODIGO_EMITENTE == ID_EMPRESA

                                && linha.CREDITO_DEBITO == 0

                                && (linha.NUMERO_BANCO == Banco || Banco == 0)

                                select new
                    {
                        linha.NUMERO_FINANCEIRO,
                        linha.NUMERO_SEQ_NF_SAIDA,
                        linha.NUMERO_NF_SAIDA,
                        linha.DATA_LANCAMENTO,
                        linha.DATA_VENCIMENTO,
                        linha.DATA_PAGAMENTO,
                        linha.HISTORICO,
                        linha.VALOR_TOTAL
                    };

                    decimal TOTAL_PERIODO = 0;

                    foreach (var item in query)
                    {
                        string pagamento = ApoioXML.Data((DateTime)item.DATA_PAGAMENTO) == "01/01/1901" ? "" : ApoioXML.Data((DateTime)item.DATA_PAGAMENTO);

                        _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{5}</td>
                                      </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, 0, item.DATA_VENCIMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_LANCAMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                       pagamento,
                                                       item.HISTORICO.Trim(),
                                                       ApoioXML.Valor2((decimal)item.VALOR_TOTAL)));

                        TOTAL_PERIODO += (decimal)item.VALOR_TOTAL;
                    }

                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>Total:</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                      </tr>", ApoioXML.Valor2(TOTAL_PERIODO)));

                    _conteudo.Append("</table>");

                    r.InsereConteudo(_conteudo.ToString());
                    retorno = r.SalvaDocumento("Doran_Titulos_Receber_Emissao");
                }

                return(retorno);
            }
        }
Пример #16
0
        private void Inicia_Base()
        {
            ctx = new Doran_ERP_Servicos_DadosDataContext();
            ctx.Connection.Open();
            ctx.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

            FERIADOS = (from linha in ctx.TB_FERIADOs
                        where linha.DATA_FERIADO >= DateTime.Today
                        select linha.DATA_FERIADO).ToList();

            // Fases

            var PEDIDO_ANALISE = (from linha in ctx.TB_STATUS_PEDIDOs
                                  where linha.STATUS_ESPECIFICO == 1
                                  select linha).ToList();

            if (!PEDIDO_ANALISE.Any())
            {
                throw new Exception("N&atilde;o h&aacute; fase [PEDIDO EM AN&Aacute;LISE] cadastrada");
            }

            STATUS_ANALISE = PEDIDO_ANALISE.First();

            //

            var INICIO_DE_ANALISE = (from linha in ctx.TB_STATUS_PEDIDOs
                                     where linha.INICIO_FIM_DE_FASE == 2 // início de análise de estoque
                                     select linha).ToList();

            if (!INICIO_DE_ANALISE.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de an&aacute;lise de estoque cadastrada");
            }

            STATUS_ANALISE_ESTOQUE = INICIO_DE_ANALISE.First();

            //

            var INICIO_DE_COMPRAS = (from linha in ctx.TB_STATUS_PEDIDOs
                                     where linha.INICIO_FIM_DE_FASE == 1 // início de compras
                                     select linha).ToList();

            if (!INICIO_DE_COMPRAS.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de compras cadastrada");
            }

            STATUS_COMPRAS = INICIO_DE_COMPRAS.First();

            //

            var PROCESSO_DE_COMPRAS = (from linha in ctx.TB_STATUS_PEDIDOs
                                       where linha.INICIO_FIM_DE_FASE == 6 // entrega do fornecedor
                                       select linha).ToList();

            if (!PROCESSO_DE_COMPRAS.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de compras cadastrada");
            }

            STATUS_PROCESSO_COMPRAS = PROCESSO_DE_COMPRAS.First();

            //

            var INICIO_DE_BENEFICIAMENTO = (from linha in ctx.TB_STATUS_PEDIDOs
                                            where linha.INICIO_FIM_DE_FASE == 3 // início de beneficiamento
                                            select linha).ToList();

            if (!INICIO_DE_BENEFICIAMENTO.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de beneficiamento cadastrada");
            }

            STATUS_BENEFICIAMENTO = INICIO_DE_BENEFICIAMENTO.First();

            //

            var INICIO_DE_SEPARACAO = (from linha in ctx.TB_STATUS_PEDIDOs
                                       where linha.INICIO_FIM_DE_FASE == 4 // início de Separação
                                       select linha).ToList();

            if (!INICIO_DE_SEPARACAO.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de separa&ccedil;&atilde;o cadastrada");
            }

            STATUS_SEPARACAO = INICIO_DE_SEPARACAO.First();

            //

            var INICIO_DE_FATURAMENTO = (from linha in ctx.TB_STATUS_PEDIDOs
                                         where linha.INICIO_FIM_DE_FASE == 5 // início de Faturamento
                                         select linha).ToList();

            if (!INICIO_DE_FATURAMENTO.Any())
            {
                throw new Exception("N&atilde;o h&aacute; a fase de in&iacute;cio de faturamento cadastrada");
            }

            STATUS_FATURAMENTO = INICIO_DE_FATURAMENTO.First();

            //

            tempo_medio_analise          = -1;
            tempo_medio_analise_estoque  = -1;
            tempo_medio_compras          = -1;
            tempo_medio_processo_compras = -1;
            tempo_medio_beneficiamento   = -1;
            tempo_medio_separacao        = -1;
            tempo_medio_faturamento      = -1;
        }
Пример #17
0
        public string MontaRelatorioRemessa()
        {
            string retorno = "";

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                string nome_banco = "";

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

                    if (NUMERO_BANCO > 0)
                    {
                        nome_banco = (from linha in ctx.TB_BANCOs
                                      where linha.NUMERO_BANCO == NUMERO_BANCO
                                      select linha.NOME_BANCO.Trim()).ToList().First().Trim();
                    }

                    string cabecalho = string.Format("Relat&oacute;rio Remessa Banc&aacute;ria por Emiss&atilde;o<br /><span style='font-family: Tahoma; font-size: 8pt;'>Per&iacute;odo de {0} at&eacute; {1}<br />{2}</span>",
                                                     ApoioXML.TrataData2(DATA_INICIAL), ApoioXML.TrataData2(DATA_FINAL.AddDays(-1)), NUMERO_BANCO > 0 ? "Banco: " + nome_banco : "");

                    r.DefineCabecalho(cabecalho, 60);

                    DateTime _dt = DATA_INICIAL;

                    StringBuilder _conteudo = new StringBuilder();

                    _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>");

                    _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Emiss&atilde;o</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td>

                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Cliente</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor do T&iacute;tulo</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Instru&ccedil;&atilde;o de Remessa</td>
                                  </tr>");

                    var query = from linha in ctx.TB_HISTORICO_CNABs

                                where linha.NUMERO_BANCO == NUMERO_BANCO &&
                                (linha.DATA_HISTORICO >= DATA_INICIAL &&
                                 linha.DATA_HISTORICO < DATA_FINAL)

                                && linha.REMESSA_RETORNO == 0 &&
                                linha.TB_FINANCEIRO.CODIGO_CLIENTE > 0 &&
                                linha.TB_FINANCEIRO.CODIGO_EMITENTE == ID_EMPRESA

                                && linha.TB_FINANCEIRO.CREDITO_DEBITO == 0

                                select new
                    {
                        linha.NUMERO_FINANCEIRO,
                        linha.TB_FINANCEIRO.NUMERO_SEQ_NF_SAIDA,
                        linha.TB_FINANCEIRO.NUMERO_NF_SAIDA,
                        linha.TB_FINANCEIRO.DATA_LANCAMENTO,
                        linha.TB_FINANCEIRO.DATA_VENCIMENTO,
                        linha.TB_FINANCEIRO.TB_CLIENTE.NOMEFANTASIA_CLIENTE,
                        linha.TB_FINANCEIRO.VALOR_TOTAL,
                        linha.TB_FINANCEIRO.TB_OCORRENCIA_BANCARIA_REMESSA.DESCRICAO_OCORRENCIA
                    };

                    decimal TOTAL_PERIODO = 0;

                    foreach (var item in query)
                    {
                        string duplicata = "";

                        if (NUMERO_BANCO == 237)
                        {
                            duplicata = Doran_Base.CNAB.FaTh2_Remessa_Bradesco.Duplicata(ctx, item.NUMERO_NF_SAIDA, item.DATA_VENCIMENTO);
                        }

                        if (NUMERO_BANCO == 1)
                        {
                            duplicata = Doran_Base.CNAB.FaTh2_Remessa_Brasil.Duplicata(ctx, item.NUMERO_NF_SAIDA, item.DATA_VENCIMENTO);
                        }

                        _conteudo.Append(string.Format(@"<tr>
                                        <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='text-align: center; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{5}</td>
                                          </tr>", duplicata,
                                                       ApoioXML.Data((DateTime)item.DATA_LANCAMENTO),
                                                       ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                       item.NOMEFANTASIA_CLIENTE.Trim(),
                                                       ((decimal)item.VALOR_TOTAL).ToString("c"),
                                                       item.DESCRICAO_OCORRENCIA.Trim()));


                        TOTAL_PERIODO += (decimal)item.VALOR_TOTAL;
                    }

                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>Total</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'></td>
                                      </tr>",
                                                   ((decimal)TOTAL_PERIODO).ToString("c")));

                    _conteudo.Append("</table>");

                    r.InsereConteudo(_conteudo.ToString());
                    retorno = r.SalvaDocumento("Doran_Remessa_Bancaria");
                }

                return(retorno);
            }
        }
Пример #18
0
        public string MontaRelatorioRealizado()
        {
            string retorno = "";

            using (Th2_Report r = new Th2_Report(ExpertPdf.HtmlToPdf.PdfPageSize.A4, ExpertPdf.HtmlToPdf.PDFPageOrientation.Portrait))
            {
                r.ID_EMPRESA = ID_EMPRESA;

                DateTime df = DataFinal.AddSeconds(-1);

                string nome_banco = "";

                using (Doran_ERP_Servicos_DadosDataContext ctx = new Doran_ERP_Servicos_DadosDataContext())
                {
                    if (Banco > 0)
                    {
                        nome_banco = (from linha in ctx.TB_BANCOs
                                      where linha.NUMERO_BANCO == Banco
                                      select linha.NOME_BANCO.Trim()).ToList().First().Trim();
                    }
                }

                string cabecalho = string.Format("Relat&oacute;rio do Fluxo de Caixa (Realizado)<br /><span style='font-family: Tahoma; font-size: 8pt;'>Per&iacute;odo de {0} at&eacute; {1}<br />{2}</span>",
                                                 ApoioXML.TrataData2(DataInicial), ApoioXML.TrataData2(df), Banco > 0 ? "Banco: " + nome_banco : "");

                r.DefineCabecalho(cabecalho, 60);

                decimal CreditoTotal = 0;
                decimal DebitoTotal  = 0;

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

                    DateTime _dt = DataInicial;

                    StringBuilder _conteudo = new StringBuilder();

                    _conteudo.Append("<table style='width: 70%; font-family: tahoma; font-size: 8pt;'>");

                    _conteudo.Append(@"<tr>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>NF / Duplicata</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Vencimento</td>
                                    <td style='BORDER-BOTTOM: 1px solid; border-color:#C0C0C0;'>Pagamento</td>

                                    <td style='BORDER-BOTTOM: 1px solid; width: 280px; border-color:#C0C0C0;'>Hist&oacute;rico</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Cr&eacute;dito</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>D&eacute;bito</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Saldo</td>
                                    <td style='BORDER-BOTTOM: 1px solid; text-align: right; border-color:#C0C0C0;'>Valor Aproximado?</td>
                                  </tr>");

                    decimal Saldo         = 0;
                    decimal saldoAnterior = SaldoAnterior();

                    while (_dt < DataFinal)
                    {
                        var query = from linha in ctx.TB_FINANCEIROs
                                    where (linha.DATA_PAGAMENTO >= _dt &&
                                           linha.DATA_PAGAMENTO < _dt.AddDays(1)) &&
                                    linha.CODIGO_EMITENTE == ID_EMPRESA

                                    && (linha.NUMERO_BANCO == Banco || Banco == 0)

                                    select new
                        {
                            linha.NUMERO_FINANCEIRO,
                            linha.NUMERO_SEQ_NF_SAIDA,
                            linha.NUMERO_NF_SAIDA,
                            linha.NUMERO_SEQ_NF_ENTRADA,
                            linha.NUMERO_NF_ENTRADA,
                            linha.DATA_VENCIMENTO,
                            linha.DATA_PAGAMENTO,
                            linha.HISTORICO,
                            VALOR_TOTAL = (linha.VALOR + linha.VALOR_ACRESCIMO + linha.VALOR_MULTA) - linha.VALOR_DESCONTO,
                            linha.CREDITO_DEBITO,
                            linha.VALOR_APROXIMADO
                        };

                        decimal CreditoDia = 0;
                        decimal DebitoDia  = 0;

                        foreach (var item in query)
                        {
                            if (item.CREDITO_DEBITO == 0)
                            {
                                if (ResumidoDetalhado == "D")
                                {
                                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td>{5}</td>
                                        <td>{6}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td>
                                      </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_PAGAMENTO),
                                                                   item.HISTORICO.Trim(),
                                                                   ApoioXML.Valor_Moeda(((decimal)item.VALOR_TOTAL).ToString(), 2), "", "",
                                                                   item.VALOR_APROXIMADO == 1 ? "S" : ""));
                                }

                                CreditoDia   += (decimal)item.VALOR_TOTAL;
                                CreditoTotal += (decimal)item.VALOR_TOTAL;
                            }
                            else
                            {
                                if (ResumidoDetalhado == "D")
                                {
                                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'>{5}</td>
                                        <td >{6}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td>
                                      </tr>", item.NUMERO_NF_ENTRADA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_PAGAMENTO),
                                                                   item.HISTORICO.Trim(),
                                                                   "",
                                                                   ApoioXML.Valor_Moeda(((decimal)item.VALOR_TOTAL).ToString(), 2),
                                                                   "", item.VALOR_APROXIMADO == 1 ? "S" : ""));
                                }

                                DebitoDia   += (decimal)item.VALOR_TOTAL;
                                DebitoTotal += (decimal)item.VALOR_TOTAL;
                            }
                        }

                        // Pagamentos Parciais
                        var query2 = from linha in ctx.TB_PAGTO_PARCIALs
                                     where (linha.DATA_PAGTO >= _dt &&
                                            linha.DATA_PAGTO < _dt.AddDays(1)) &&
                                     linha.TB_FINANCEIRO.CODIGO_EMITENTE == ID_EMPRESA
                                     select new
                        {
                            linha.NUMERO_FINANCEIRO,
                            linha.TB_FINANCEIRO.NUMERO_SEQ_NF_SAIDA,
                            linha.TB_FINANCEIRO.NUMERO_NF_SAIDA,
                            linha.TB_FINANCEIRO.NUMERO_SEQ_NF_ENTRADA,
                            linha.TB_FINANCEIRO.NUMERO_NF_ENTRADA,
                            linha.TB_FINANCEIRO.DATA_VENCIMENTO,
                            linha.DATA_PAGTO,
                            linha.TB_FINANCEIRO.HISTORICO,
                            linha.VALOR_PAGTO,
                            linha.TB_FINANCEIRO.CREDITO_DEBITO,
                        };

                        foreach (var item in query2)
                        {
                            if (item.CREDITO_DEBITO == 0)
                            {
                                if (ResumidoDetalhado == "D")
                                {
                                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='text-align: right; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td>{5}</td>
                                        <td>{6}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td>
                                      </tr>", item.NUMERO_NF_SAIDA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_PAGTO),
                                                                   item.HISTORICO.Trim(),
                                                                   ApoioXML.Valor_Moeda(((decimal)item.VALOR_PAGTO).ToString(), 2), "", "",
                                                                   ""));
                                }

                                CreditoDia   += (decimal)item.VALOR_PAGTO;
                                CreditoTotal += (decimal)item.VALOR_PAGTO;
                            }
                            else
                            {
                                if (ResumidoDetalhado == "D")
                                {
                                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{0}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{1}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{2}</td>
                                        <td style='font-size: 7pt; BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{3}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{4}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'>{5}</td>
                                        <td >{6}</td>
                                        <td style='BORDER-BOTTOM: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; border-color:#C0C0C0;'>{7}</td>
                                      </tr>", item.NUMERO_NF_ENTRADA.ToString() + "/" + ApoioXML.LetrasDuplicatas_ERP_Servicos(item.NUMERO_SEQ_NF_SAIDA, item.NUMERO_SEQ_NF_ENTRADA, item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_VENCIMENTO),
                                                                   ApoioXML.Data((DateTime)item.DATA_PAGTO),
                                                                   item.HISTORICO.Trim(),
                                                                   "",
                                                                   ApoioXML.Valor_Moeda(((decimal)item.VALOR_PAGTO).ToString(), 2),
                                                                   "", ""));
                                }

                                DebitoDia   += (decimal)item.VALOR_PAGTO;
                                DebitoTotal += (decimal)item.VALOR_PAGTO;
                            }
                        }

                        if (DebitoDia > (decimal)0.00 || CreditoDia > (decimal)0.00)
                        {
                            Saldo = (saldoAnterior + CreditoDia) - DebitoDia;

                            _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;' colspan='3'>Saldo Anterior {0}</td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;'>Total do dia {1}</td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{2}</b></td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{3}</b></td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{4}</b></td>
                                      </tr>", ApoioXML.Valor_Moeda(saldoAnterior.ToString(), 2), ApoioXML.TrataData2(_dt), ApoioXML.Valor_Moeda(CreditoDia.ToString(), 2)
                                                           , ApoioXML.Valor_Moeda(DebitoDia.ToString(), 2), ApoioXML.Valor_Moeda(Saldo.ToString(), 2)));

                            saldoAnterior = Saldo;

                            CreditoDia = 0;
                            DebitoDia  = 0;
                        }

                        _dt = _dt.AddDays(1);
                    }

                    _conteudo.Append(string.Format(@"<tr>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;' colspan='3'></td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; text-align: right;'>Total no Per&iacute;odo</td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{0}</b></td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'><b>{1}</b></td>
                                        <td style='BORDER-TOP: 1px solid; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; text-align: right; border-color:#C0C0C0;'></td>
                                      </tr>", ApoioXML.Valor_Moeda(CreditoTotal.ToString(), 2)
                                                   , ApoioXML.Valor_Moeda(DebitoTotal.ToString(), 2)));

                    _conteudo.Append("</table>");

                    r.InsereConteudo(_conteudo.ToString());
                    retorno = r.SalvaDocumento("FaTh2_Fluxo_Realizado");
                }

                return(retorno);
            }
        }