예제 #1
0
        public void GotoPagoAction()
        {
            if (ActiveItem.EEstado == moleQule.Base.EEstado.Anulado)
            {
                return;
            }
            if (ActiveItem.Total == 0)
            {
                return;
            }

            if (ActiveItem.OidPago == 0)
            {
                //Se obtiene el registro desde la DB para que actualice el pendiente de pago
                //en el caso de que se haya creado justo antes de esta acción
                Payment pago = Payment.New(ExpenseInfo.Get(ActiveItem.Oid, false), moleQule.Store.Structs.EnumConvert.ToETipoPago(ActiveItem.ECategoriaGasto));
                ExpensePaymentAddForm form = new ExpensePaymentAddForm(pago, this);
                form.ShowDialog(this);

                if (form.ActionResult == DialogResult.OK)
                {
                    ActiveItem.CopyFrom(form.Entity);
                }
            }
            else
            {
                ExpensePaymentEditForm form = new ExpensePaymentEditForm(ActiveItem.OidPago, moleQule.Store.Structs.EnumConvert.ToETipoPago(ActiveItem.ECategoriaGasto), this);
                form.ShowDialog(this);
            }
        }
        public override void OpenAddForm()
        {
            ETipoPago tipo = (_tipo != ETipoPago.Todos)
                                ? _tipo
                                : ActiveItem == null
                                    ? _tipo
                                    : ActiveItem.ETipoPago;

            switch (tipo)
            {
            case ETipoPago.Factura:
            {
                OpenEditForm();
                _entity = null;
            }
            break;

            case ETipoPago.Gasto:
            {
                ExpensePaymentAddForm form = new ExpensePaymentAddForm(tipo, this);
                AddForm(form);
                _entity = (form.ActionResult == DialogResult.OK) ? form.Entity : null;
            }
            break;

            case ETipoPago.Nomina:
            {
                if (ActiveItem.OidAgente == 0)
                {
                    PayrollPaymentAddForm form = new PayrollPaymentAddForm(tipo, this);
                    AddForm(form);
                    _entity = (form.ActionResult == DialogResult.OK) ? form.Entity : null;
                }
                else
                {
                    OpenEditForm();
                    _entity = null;
                }
            }
            break;

            case ETipoPago.Prestamo:
            {
                LoanPaymentAddForm form = new LoanPaymentAddForm(tipo, this);
                AddForm(form);
                _entity = (form.ActionResult == DialogResult.OK) ? form.Entity : null;
            }
            break;

            case ETipoPago.Fraccionado:
            {
                PagoFraccionadoAddForm form = new PagoFraccionadoAddForm(tipo, this);
                AddForm(form);
                _entity = (form.ActionResult == DialogResult.OK) ? form.Entity : null;
            }
            break;

            case ETipoPago.ExtractoTarjeta:
            {
                CreditCardPaymentAddForm form = new CreditCardPaymentAddForm(tipo, this);
                AddForm(form);
                _entity = (form.ActionResult == DialogResult.OK) ? form.Entity : null;
            }
            break;
            }
        }