Esempio n. 1
0
        public static void InsertItem(IBankLine source, long oid_caja, int sessionCode)
        {
            if (source is Payment && ((Payment)source).EEstadoPago != EEstado.Pagado)
            {
                return;
            }
            else if (source is Charge && ((Charge)source).EEstadoCobro != EEstado.Charged)
            {
                return;
            }

            switch (source.EMedioPago)
            {
            //Creamos la entrada de caja correspondiente
            case EMedioPago.Efectivo:
            {
                Cash     caja = Cash.Get(oid_caja, sessionCode);
                CashLine lc   = caja.Lines.NewItem(caja);
                lc.CopyFrom(source);
                if (source.ETipoMovimientoBanco == EBankLineType.PagoPrestamo)
                {
                    Payment pago = (Payment)source;
                    lc.Haber = pago.Importe + pago.GastosBancarios;
                }

                caja.UpdateSaldo();
                caja.SaveAsChild();
                //caja.CloseSession();
            }
            break;
            }
        }
        /// <summary>
        /// Realiza el Save de los objetos de la lista. Inserta, Actualiza o Borra en función
        /// de los flags de cada objeto de la lista
        /// </summary>
        /// <param name="parent">BusinessBaseEx padre de la lista</param>
        internal void Update(IBankLine parent)
        {
            this.RaiseListChangedEvents = false;

            SessionCode = parent.SessionCode;
            // update (thus deleting) any deleted child objects
            foreach (BankLine obj in DeletedList)
            {
                obj.DeleteSelf(parent);
            }

            // now that they are deleted, remove them from memory too
            DeletedList.Clear();

            // add/update any current child objects
            foreach (BankLine obj in this)
            {
                if (!this.Contains(obj))
                {
                    if (obj.IsNew)
                    {
                        obj.Insert(parent);
                    }
                    else
                    {
                        obj.Update(parent);
                    }
                }
            }

            this.RaiseListChangedEvents = true;
        }
Esempio n. 3
0
        public static void AnulaItem(IBankLine source, long oid_caja, int sessionCode)
        {
            switch (source.EMedioPago)
            {
            //Anulamos la salida de caja correspondiente
            case EMedioPago.Efectivo:
            {
                Cash     caja = Cash.Get(oid_caja, sessionCode);
                CashLine lc   = null;

                switch (source.ETipoMovimientoBanco)
                {
                case EBankLineType.PagoFactura:
                case EBankLineType.PagoGasto:
                case EBankLineType.PagoNomina:
                case EBankLineType.Prestamo:

                    lc = caja.Lines.GetItemByPayment(source.Oid);
                    break;

                case EBankLineType.Cobro:

                    lc = caja.Lines.GetItemByCharge(source.Oid);
                    break;
                }

                if (lc != null)
                {
                    lc.EEstado = EEstado.Anulado;
                    caja.UpdateSaldo();
                    caja.SaveAsChild();
                    //caja.CloseSession();
                }
                else
                {
                    CashLineInfo info = null;

                    switch (source.ETipoMovimientoBanco)
                    {
                    case EBankLineType.PagoFactura:
                    case EBankLineType.PagoGasto:
                    case EBankLineType.PagoNomina:
                    case EBankLineType.Prestamo:

                        info = CashLineInfo.GetByPago(source.Oid);
                        break;

                    case EBankLineType.Cobro:

                        info = CashLineInfo.GetByCobro(source.Oid);
                        break;
                    }

                    if (info != null && info.OidCierre != 0)
                    {
                        throw new iQInfoException(Resources.Messages.LINEA_INCLUIDA_CIERRE);
                    }
                }
            }
            break;
            }
        }
Esempio n. 4
0
 public static void AnulaItem(IBankLine source, int sessionCode)
 {
     AnulaItem(source, 1, sessionCode);
 }
Esempio n. 5
0
        public static void EditItem(IBankLine source, IBankLineInfo oldSource, long oid_caja, int sessionCode)
        {
            if (source.EEstado == EEstado.Anulado ||
                (source is Payment && (source as Payment).EEstadoPago != EEstado.Pagado) ||
                (source is Charge && (source as Charge).EEstadoCobro != EEstado.Charged))
            {
                //Anulamos la salida de caja correspondiente
                AnulaItem(source, oid_caja, sessionCode);
                return;
            }

            switch (source.EMedioPago)
            {
            case EMedioPago.Efectivo:
            {
                Cash     caja = Cash.Get(oid_caja, sessionCode);
                CashLine lc   = null;

                switch (source.ETipoMovimientoBanco)
                {
                case EBankLineType.PagoFactura:
                case EBankLineType.PagoGasto:
                case EBankLineType.PagoNomina:
                case EBankLineType.Prestamo:
                case EBankLineType.PagoPrestamo:

                    lc = caja.Lines.GetItemByPayment(source.Oid);
                    break;

                case EBankLineType.Cobro:

                    lc = caja.Lines.GetItemByCharge(source.Oid);
                    break;
                }

                if (lc == null)
                {
                    CashLineInfo info = null;

                    switch (source.ETipoMovimientoBanco)
                    {
                    case EBankLineType.PagoFactura:
                    case EBankLineType.PagoGasto:
                    case EBankLineType.PagoNomina:
                    case EBankLineType.Prestamo:

                        info = CashLineInfo.GetByPago(source.Oid);
                        break;

                    case EBankLineType.Cobro:

                        info = CashLineInfo.GetByCobro(source.Oid);
                        break;
                    }

                    if (info != null && info.OidCierre != 0)
                    {
                        throw new iQInfoException(Resources.Messages.LINEA_INCLUIDA_CIERRE, string.Empty, iQExceptionCode.WARNING);
                    }

                    if ((source is Payment &&
                         (oldSource as PaymentInfo).EEstadoPago == EEstado.Pendiente &&
                         (source as Payment).EEstadoPago == EEstado.Pagado) ||
                        (source is Charge &&
                         (oldSource as ChargeInfo).EEstadoCobro == EEstado.Pendiente &&
                         (source as Charge).EEstadoCobro == EEstado.Charged))
                    {
                        InsertItem(source, sessionCode);
                    }
                    return;
                }

                lc.CopyFrom(source);
                if (source.ETipoMovimientoBanco == EBankLineType.PagoPrestamo)
                {
                    Payment pago = (Payment)source;
                    lc.Haber = pago.Importe + pago.GastosBancarios;
                }
                caja.UpdateSaldo();
                caja.SaveAsChild();
            }
            break;
            }
        }
Esempio n. 6
0
 public static void EditItem(IBankLine source, IBankLineInfo oldSource, int sessionCode)
 {
     EditItem(source, oldSource, 1, sessionCode);
 }
Esempio n. 7
0
 public static void InsertItem(IBankLine source, int sessionCode)
 {
     InsertItem(source, 1, sessionCode);
 }
 /// <summary>
 /// Crea un nuevo elemento y lo añade a la lista
 /// </summary>
 /// <returns>Nuevo item</returns>
 public BankLine NewItem(IBankLine parent)
 {
     this.NewItem(BankLine.NewChild(parent));
     return(this[Count - 1]);
 }