public IHttpActionResult PutPagoEfectivo(int id, PagoEfectivo pagoEfectivo, Pago pago)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != pagoEfectivo.Id)
            {
                return BadRequest();
            }

            db.Entry(pagoEfectivo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PagoEfectivoExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
Beispiel #2
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());
            }
        }