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; } }
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; } }
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); }
/// <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); }