Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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);
        }