public static void CreateCreditCardStatements() { QueryConditions conditions = new QueryConditions { MedioPago = EMedioPago.Tarjeta }; Payments payments = Payments.GetList(conditions, false); CreditCardList credit_cards = CreditCardList.GetList(false); string message = string.Empty; foreach (Payment payment in payments) { if (payment.EEstado == EEstado.Anulado) { continue; } CreditCardInfo card = credit_cards.GetItem(payment.OidTarjetaCredito); if (card.ETipoTarjeta != ETipoTarjeta.Credito) { continue; } payment.MarkItemDirty(); } payments.Save(); }
public static void CreateCreditCardStatementsPayments() { Payments statement_payments = Payments.GetCreditCardStatementsList(0, false); CreditCardList credit_cards = CreditCardList.GetList(false); foreach (Payment payment in statement_payments) { //Payment Transactions payment.LoadChilds(typeof(TransactionPayment), false); CreditCardInfo card = credit_cards.GetItem(payment.OidTarjetaCredito); if (card.ETipoTarjeta != ETipoTarjeta.Credito) { continue; } //Extractos if (card.Statements == null) { card.LoadChilds(typeof(CreditCardStatement), false); } foreach (CreditCardStatementInfo statement in card.Statements) { if (statement.Amount == payment.Importe && statement.DueDate == payment.Vencimiento) { TransactionPayment operation = payment.Operations.NewItem(payment, statement, ETipoPago.ExtractoTarjeta); operation.Cantidad = payment.Importe; } } } statement_payments.Save(); }
public static void CreateApuntesBancarios(PaymentList pagos) { List <PaymentInfo> list = new List <PaymentInfo>(); CreditCardList tarjetas = CreditCardList.GetList(); Payments pagos_tarjeta = Payments.NewList(); foreach (PaymentInfo item in pagos) { if (!Common.EnumFunctions.NeedsCuentaBancaria(item.EMedioPago)) { continue; } if (item.Vencimiento > DateTime.Today) { continue; } if (item.EMedioPago != EMedioPago.Tarjeta) { //Apunte bancario del pagaré, talón, etc.. BankLine.BankLine.InsertItem(item, true); list.Add(item); } else { Payment pago_tarjeta = pagos_tarjeta.GetItemByTarjetaCredito(item.OidTarjetaCredito, item.Vencimiento); if (pago_tarjeta == null) { pago_tarjeta = pagos_tarjeta.NewItem(item, ETipoPago.ExtractoTarjeta); TransactionPayment pf = pago_tarjeta.Operations.NewItem(pago_tarjeta, item, item.ETipoPago); pf.Cantidad = item.Total; pago_tarjeta.EEstadoPago = EEstado.Pagado; } else { pago_tarjeta.Importe += item.Importe; pago_tarjeta.GastosBancarios += item.GastosBancarios; TransactionPayment pf = pago_tarjeta.Operations.NewItem(pago_tarjeta, item, item.ETipoPago); pf.Cantidad = item.Total; } list.Add(item); } } Payments pagos_fraccionados = Payments.NewList(); pagos_fraccionados.OpenNewSession(); //Apunte bancario de la tarjeta foreach (Payment item in pagos_tarjeta) { Payment root = pagos_fraccionados.NewItem(item.GetInfo(false), ETipoPago.FraccionadoTarjeta); root.Pagos.AddItem(item); //if (item.Importe != 0) // MovimientoBanco.InsertItemTarjeta(item, tarjetas.GetItem(item.OidTarjetaCredito)); } pagos_fraccionados.BeginTransaction(); pagos_fraccionados.Save(); Payment.UpdatePagadoFromList(list, true); }