Пример #1
0
 public virtual void AlterarPedido_Otica_Parcelas(Pedido_Otica_Parcelas Pedido_Otica_Parcelas)
 {
     try
     {
         _Pedido_Otica_ParcelasRepositorio.Atualizar(Pedido_Otica_Parcelas);
         _Pedido_Otica_ParcelasRepositorio.Commit();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #2
0
 public virtual void ExcluirPedido_Otica_Parcelas(Pedido_Otica_Parcelas Pedido_Otica_Parcelas)
 {
     try
     {
         _Pedido_Otica_ParcelasRepositorio.Deletar(c => c == Pedido_Otica_Parcelas);
         _Pedido_Otica_ParcelasRepositorio.Commit();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #3
0
        private List <Pedido_Otica_Parcelas> toPedido_Otica_Parcelas(List <ParcelaView> ParcelaViewList)
        {
            List <Pedido_Otica_Parcelas> ParcelasList = new List <Pedido_Otica_Parcelas>();

            foreach (ParcelaView item in ParcelaViewList)
            {
                Pedido_Otica_Parcelas p = new Pedido_Otica_Parcelas();
                p.Id = Convert.ToInt64(item.Id);
                p.Id_pedido_otica   = Convert.ToInt64(item.Id_Pedido_Otica);
                p.numero_parcela    = item.NrParcela;
                p.pago              = item.Pago?"S":"N";
                p.quantidade_dias   = item.NrDias;
                p.percentual        = item.Percentual;
                p.valor             = item.Valor;
                p.usuario_pagamento = item.Usuario;
                p.data_vencimento   = item.DtVencimento;
                p.data_pagamento    = item.DtPagamento;
                p.forma_pagamento   = item.FormaPagamento;
                ParcelasList.Add(p);
            }
            return(ParcelasList);
        }
Пример #4
0
        /// <summary>
        /// Retorna uma coleção de parcelas conforme a codição de pagamento "parcela" selecionada no pedido.
        /// </summary>
        /// <param name="condicao_pagamento"></param>
        /// <param name="totalValor"></param>
        /// <param name="dtEmissao"></param>
        /// <returns>ICollection<Pedido_Parcelas></returns>
        public ICollection <Pedido_Otica_Parcelas> GerarParcelas(long?condicao_pagamento, decimal?totalValor, DateTime dtEmissao)
        {
            const int  percentual = 100;
            ParcelaBLL parcelaBLL = new ParcelaBLL();
            Parcela    parcela    = parcelaBLL.Localizar(condicao_pagamento);

            ICollection <Pedido_Otica_Parcelas> Pedido_ParcelasList = new List <Pedido_Otica_Parcelas>();

            //Vamos tratar pelo codigo.

            if ((parcela.codigo.Contains("A")) || (parcela.codigo.Contains("B")))
            {
                //A ou B usamos o delimitador espaço
                //Aqui vamos gerar uma parcela com vencimento especificado pelo numero de dias.
                //para isso temos que quebrar a string do campo descrição e pegar o registro da 2ª posição do array.
                char[] delimiterChars = { ' ' };

                string[] words = parcela.descricao.Split(delimiterChars);

                if (words.Length > 1)
                {
                    int nrDias = Convert.ToInt16(words[1]);
                    Pedido_Otica_Parcelas parc = new Pedido_Otica_Parcelas();
                    DateTime dtVenc            = dtEmissao.AddDays(nrDias);
                    parc.data_vencimento = dtVenc.ToShortDateString();
                    parc.numero_parcela  = 0;
                    parc.percentual      = percentual;
                    parc.quantidade_dias = nrDias;
                    parc.valor           = totalValor;

                    Pedido_ParcelasList.Add(parc);
                }
            }
            else if ((parcela.codigo.Contains("S")) ||
                     (parcela.codigo.Contains("T")) ||
                     (parcela.codigo.Contains("U")))
            {
                //S,T ou U usamos o delimitatador "/"
                char[] delimiterChars = { '/' };

                string[] words = parcela.descricao.Split(delimiterChars);

                int nrParcelas = 1;
                if (parcela.parcelas != null)
                {
                    nrParcelas = Convert.ToInt32(parcela.parcelas);
                }

                if (words.Length > 1)
                {
                    for (int i = 0; i < words.Length; i++)
                    {
                        Pedido_Otica_Parcelas parc = new Pedido_Otica_Parcelas();
                        if (words[i] == "A Vista")
                        {
                            parc.data_vencimento = dtEmissao.ToShortDateString();
                            parc.quantidade_dias = 0;
                        }
                        else
                        {
                            int      nrDias = Convert.ToInt16(words[i]);
                            DateTime dtVenc = dtEmissao.AddDays(nrDias);
                            parc.data_vencimento = dtVenc.ToShortDateString();
                            parc.numero_parcela  = i + 1;
                            parc.quantidade_dias = nrDias;
                        }

                        parc.numero_parcela = i + 1;
                        parc.percentual     = percentual / nrParcelas;
                        parc.valor          = totalValor / nrParcelas;


                        Pedido_ParcelasList.Add(parc);
                    }
                }
            }
            else if (StringExtensions.IsNumeric(parcela.codigo))
            {
                //codigos numericos iniciados com 0 ou 999
                //Aqui vamos gerar sempre uma parcela para o dia informado na venda e as subsequentes se houver.
                //vamos usar a propriedade parcelas.

                switch (parcela.codigo)
                {
                case "000":
                case "999":
                {
                    //Geramos uma parcela a vista.
                    Pedido_Otica_Parcelas parc = new Pedido_Otica_Parcelas();
                    parc.data_vencimento = dtEmissao.ToShortDateString();
                    parc.numero_parcela  = 0;
                    parc.percentual      = percentual;
                    parc.quantidade_dias = 0;
                    parc.valor           = totalValor;

                    Pedido_ParcelasList.Add(parc);
                }
                break;

                default:
                {
                    //Geramos conforme o numero de parcelas informado.
                    int nrParcelas = 1;
                    if (parcela.parcelas != null)
                    {
                        nrParcelas = Convert.ToInt32(parcela.parcelas);
                    }

                    for (int i = 0; i < nrParcelas; i++)
                    {
                        Pedido_Otica_Parcelas parc = new Pedido_Otica_Parcelas();

                        DateTime dtVenc = dtEmissao.AddMonths(i + 1);
                        TimeSpan nrDias = dtVenc - dtEmissao;
                        parc.data_vencimento = dtVenc.ToShortDateString();
                        parc.numero_parcela  = i + 1;
                        parc.percentual      = percentual / nrParcelas;
                        parc.valor           = totalValor / nrParcelas;
                        parc.quantidade_dias = nrDias.Days;

                        Pedido_ParcelasList.Add(parc);
                    }
                }
                break;
                }
            }


            //Sempre vamos retornar mesmo que seja uma parcela a vista.
            return(Pedido_ParcelasList);
        }