示例#1
0
        public string Calcula_Entregas_do_Orcamento()
        {
            string retorno = string.Empty;

            var query = (from linha in ctx.TB_ITEM_ORCAMENTO_VENDAs
                         where linha.NUMERO_ORCAMENTO == NUMERO_ORCAMENTO_VENDA

                         select new ITEMS_COM_ENTREGAS_PROGRAMADAS_ORCAMENTO()
            {
                NUMERO_ORCAMENTO = linha.NUMERO_ORCAMENTO,
                NUMERO_ITEM = linha.NUMERO_ITEM,
                ID_PRODUTO = linha.ID_PRODUTO,
                CODIGO_PRODUTO = linha.CODIGO_PRODUTO,
                DESCRICAO_PRODUTO_ITEM_ORCAMENTO = linha.DESCRICAO_PRODUTO_ITEM_ORCAMENTO,
                QTDE_PRODUTO = linha.QTDE_PRODUTO,
                UNIDADE_PRODUTO = linha.UNIDADE_PRODUTO,
                DATA_ENTREGA = linha.DATA_ENTREGA,
                NUMERO_PEDIDO_VENDA = linha.NUMERO_PEDIDO_VENDA,
                ATRASADA = linha.DATA_ENTREGA < DateTime.Today ? "1" : "0",
                PROGRAMACAO = "",
                NAO_GERAR_PEDIDO = linha.NAO_GERAR_PEDIDO,
                DATA_CALCULADA = DateTime.Today
            }).ToList();

            foreach (var item in query)
            {
                _MINUTOS = 0;

                NUMERO_ITEM_ORCAMENTO = item.NUMERO_ITEM;
                ID_PRODUTO            = item.ID_PRODUTO.Value;
                QTDE_PEDIDO           = item.QTDE_PRODUTO;

                Adiciona_Feriados_Fim_de_semana_horas_descanso();

                item.DATA_CALCULADA = DateTime.Now.AddMinutes(_MINUTOS);
            }

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

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

            retorno = tr.ToString();

            return(retorno);
        }
示例#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);
        }