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(); }