Beispiel #1
0
        public IHttpActionResult PostPago(PagoCustom pagoCustom)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                Pago pago = new Pago();
                pago       = pagoCustom.pago;
                pago.Fecha = DateTime.Now;

                var idCajaActiva = (from c in db.Cajas // variable donde voy a guardar el id de la caja que actualmente esta abierta
                                    where c.Abierto == true
                                    select c.Id).FirstOrDefault();

                if (pagoCustom.pagoEfectivo != null)
                {
                    // alta de Pago en efectivo
                    PagoEfectivo pagoEfect = new PagoEfectivo();
                    pagoEfect                 = pagoCustom.pagoEfectivo;
                    pagoEfect.PagoId          = pago.Id;
                    pagoEfect.CajaId          = idCajaActiva;
                    pagoEfect.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                 where tp.Descripcion.Contains("Efectivo")
                                                 select tp.Id).FirstOrDefault();
                    //db.PagosEfectivo.Add(pagoEfect);

                    // alta del movimientoCaja
                    MovimientosCaja movCaja = new MovimientosCaja();
                    movCaja.Monto       = pagoCustom.pagoEfectivo.Monto;
                    movCaja.Descripcion = "Pago por compra en efectivo";
                    movCaja.TipoMovCaja = db.TipoMovCajas.Find(1);
                    movCaja.CajaId      = idCajaActiva;
                    //movCaja.PagoEfectivoId = pagoEfect.Id;
                    movCaja.PagoEfectivo = pagoEfect;
                    db.MovimientosCajas.Add(movCaja);
                }

                if (pagoCustom.pagoCC != null)
                {
                    PagoCC pagoCuenta = new PagoCC();
                    pagoCuenta                 = pagoCustom.pagoCC;
                    pagoCuenta.PagoId          = pago.Id;
                    pagoCuenta.TipoMovCC       = db.TipoMovCCs.Find(1);
                    pagoCuenta.CuentaCorriente = (from cc in db.Cuentas
                                                  where cc.ClienteId == pagoCustom.pago.Venta.ClienteId
                                                  select cc).FirstOrDefault();

                    pagoCuenta.CajaId          = idCajaActiva;
                    pagoCuenta.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                  where tp.Descripcion.Contains("Cuenta")
                                                  select tp.Id).FirstOrDefault();
                    db.PagosCC.Add(pagoCuenta);
                }

                if (pagoCustom.pagoCheque != null)
                {
                    Cheque pagoCheque = new Cheque();
                    pagoCheque                 = pagoCustom.pagoCheque;
                    pagoCheque.PagoId          = pago.Id;
                    pagoCheque.FechaEmision    = pagoCustom.pagoCheque.FechaEmision;
                    pagoCheque.FechaPago       = pagoCustom.pagoCheque.FechaPago;
                    pagoCheque.CajaId          = idCajaActiva;
                    pagoCheque.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                  where tp.Descripcion.Contains("Cheque")
                                                  select tp.Id).FirstOrDefault();
                    db.Cheques.Add(pagoCheque);
                }

                pago.VentaId = pagoCustom.pago.Venta.Id;
                pago.Venta   = null;

                db.Pagos.Add(pago);
                db.SaveChanges();
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message.ToString()));
            }
        }
 public MovimientoAjusteCajaController(MovimientosCaja movimientoCaja)
 {
     _model = movimientoCaja;
     Init();
 }