public void Create(CajaDetalle entity) { try { SiinErpContext context = new SiinErpContext(); using (var tran = context.Database.BeginTransaction()) { TipoDocumento entityTip = context.TiposDocumentos.FirstOrDefault(x => x.TipoDoc.Equals(entity.TipoDoc)); entityTip.NumDoc++; context.SaveChanges(); entity.TipoDoc = entityTip.TipoDoc; entity.NumDoc = entityTip.NumDoc; entity.FechaCreacion = DateTimeOffset.Now; context.CajaDetalle.Add(entity); context.SaveChanges(); tran.Commit(); } } catch (Exception ex) { errorBusiness.Create("Create", ex.Message, null); throw; } }
public IActionResult Create([FromBody] CajaDetalle entity) { try { cajaDetalleBusiness.Create(entity); return(Ok(true)); } catch (Exception) { throw; } }
public int UpdateByPuntoDeVenta(JObject data) { try { Movimiento entityMov = data["entityMov"].ToObject <Movimiento>(); List <MovimientoDetalle> listaDetalleMov = data["listDetalleMov"].ToObject <List <MovimientoDetalle> >(); List <MovimientoFormaPago> listaDetallePag = data["listDetallePag"].ToObject <List <MovimientoFormaPago> >(); SiinErpContext context = new SiinErpContext(); using (var transaccion = context.Database.BeginTransaction()) { Movimiento entityMovBD = context.Movimientos.Find(entityMov.IdMovimiento); entityMovBD.IdTercero = entityMov.IdTercero; entityMovBD.IdPlazoPago = entityMov.IdPlazoPago; entityMovBD.IdListaPrecio = entityMov.IdListaPrecio; entityMovBD.FechaDoc = entityMov.FechaDoc; entityMovBD.Periodo = entityMov.FechaDoc.ToString("yyyyMM"); entityMovBD.FechaVencimiento = entityMov.PlazoPago == null ? entityMov.FechaDoc : entityMov.FechaDoc.AddDays(entityMov.PlazoPago.PlazoDias); entityMovBD.ValorBruto = entityMov.ValorBruto; entityMovBD.ValorDscto = entityMov.ValorDscto; entityMovBD.ValorIva = entityMov.ValorIva; entityMovBD.ValorNeto = entityMov.ValorNeto; entityMovBD.ModificadoPor = entityMov.ModificadoPor; entityMovBD.FechaModificado = DateTimeOffset.Now; context.SaveChanges(); List <MovimientoDetalle> listaDetalleMovBD = context.MovimientosDetalles.Where(x => x.IdMovimiento == entityMov.IdMovimiento).ToList(); foreach (MovimientoDetalle m in listaDetalleMovBD) { MovimientoDetalle entityDetalle = listaDetalleMov.FirstOrDefault(x => x.IdDetalleMovimiento == m.IdDetalleMovimiento); if (entityDetalle == null) { context.MovimientosDetalles.Remove(m); context.SaveChanges(); Articulo entityArt = context.Articulos.Find(m.IdArticulo); if (entityArt.AfectaInventario) { ArticuloExistencia entityExist = context.Existencias.FirstOrDefault(x => x.IdArticulo == m.IdArticulo && x.IdDetAlmacen == entityMov.IdDetAlmacen); if (entityExist != null) { entityExist.Existencia += m.Cantidad; context.SaveChanges(); } } } } listaDetalleMovBD = context.MovimientosDetalles.Where(x => x.IdMovimiento == entityMov.IdMovimiento).ToList(); foreach (MovimientoDetalle m in listaDetalleMov) { Articulo entityArt = context.Articulos.Find(m.IdArticulo); MovimientoDetalle entityDetalle = listaDetalleMovBD.FirstOrDefault(x => x.IdDetalleMovimiento == m.IdDetalleMovimiento); if (entityDetalle == null) { m.IdMovimiento = entityMov.IdMovimiento; context.MovimientosDetalles.Add(m); context.SaveChanges(); if (entityArt.AfectaInventario) { ArticuloExistencia entityExist = context.Existencias.FirstOrDefault(x => x.IdArticulo == m.IdArticulo && x.IdDetAlmacen == entityMov.IdDetAlmacen); if (entityExist == null) { entityExist = new ArticuloExistencia(); entityExist.IdEmpresa = entityMov.IdEmpresa; entityExist.IdDetAlmacen = entityMov.IdDetAlmacen; entityExist.IdArticulo = m.IdArticulo; entityExist.Existencia = m.Cantidad * entityMov.Transaccion; context.Existencias.Add(entityExist); context.SaveChanges(); } else { entityExist.Existencia += m.Cantidad * entityMov.Transaccion; context.SaveChanges(); } } } else { if (entityArt.AfectaInventario) { ArticuloExistencia entityExist = context.Existencias.FirstOrDefault(x => x.IdArticulo == m.IdArticulo && x.IdDetAlmacen == entityMov.IdDetAlmacen); if (entityExist != null) { entityExist.Existencia += entityDetalle.Cantidad - m.Cantidad; context.SaveChanges(); } } entityDetalle.Cantidad = m.Cantidad; entityDetalle.PcDscto = m.PcDscto; entityDetalle.PcIva = m.PcIva; entityDetalle.VrUnitario = m.VrUnitario; entityDetalle.VrCosto = m.VrCosto; entityDetalle.VrBruto = m.VrBruto; entityDetalle.VrNeto = m.VrNeto; context.SaveChanges(); } } List <MovimientoFormaPago> listaDetallePagDB = context.MovimientosFormasPagos.Where(x => x.IdMovimiento == entityMov.IdMovimiento).ToList(); foreach (MovimientoFormaPago m in listaDetallePagDB) { MovimientoFormaPago entityFormaPag = listaDetallePag.FirstOrDefault(x => x.IdMovFormaDePago == m.IdMovFormaDePago && x.Valor > 0); if (entityFormaPag == null) { context.MovimientosFormasPagos.Remove(m); context.SaveChanges(); CajaDetalle entityCajaDet = context.CajaDetalle.FirstOrDefault(x => x.IdMovimiento == m.IdMovimiento && x.IdCaja == entityMov.IdCaja && x.IdDetFormaPago == m.IdDetFormaDePago); if (entityCajaDet != null) { context.CajaDetalle.Remove(entityCajaDet); context.SaveChanges(); } } } listaDetallePagDB = context.MovimientosFormasPagos.Where(x => x.IdMovimiento == entityMov.IdMovimiento).ToList(); foreach (MovimientoFormaPago mfp in listaDetallePag) { MovimientoFormaPago entityFormaPag = listaDetallePagDB.FirstOrDefault(x => x.IdMovFormaDePago == mfp.IdMovFormaDePago); if (entityFormaPag == null) { mfp.IdMovFormaDePago = 0; mfp.IdMovimiento = entityMov.IdMovimiento; context.MovimientosFormasPagos.Add(mfp); context.SaveChanges(); if (entityMov.IdCaja != null) { CajaDetalle entityCajaDet = new CajaDetalle(); entityCajaDet.IdCaja = Convert.ToInt32(entityMov.IdCaja); entityCajaDet.IdMovimiento = entityMov.IdMovimiento; entityCajaDet.TipoDoc = entityMov.TipoDoc; entityCajaDet.NumDoc = entityMov.NumDoc; entityCajaDet.IdDetFormaPago = mfp.IdDetFormaDePago; entityCajaDet.IdDetCuenta = mfp.IdDetCuenta; entityCajaDet.Efectivo = mfp.Descripcion.Contains("Efectivo") ? true : false; entityCajaDet.Transaccion = 1; entityCajaDet.Valor = mfp.Valor; entityCajaDet.Estado = Constantes.EstadoActivo; entityCajaDet.FechaCreacion = DateTimeOffset.Now; entityCajaDet.CreadoPor = entityMov.ModificadoPor; context.CajaDetalle.Add(entityCajaDet); context.SaveChanges(); } } else { entityFormaPag.Valor = mfp.Valor; context.SaveChanges(); CajaDetalle entityCajaDet = context.CajaDetalle.FirstOrDefault(x => x.IdMovimiento == entityMov.IdMovimiento && x.IdCaja == entityMov.IdCaja && x.IdDetFormaPago == mfp.IdDetFormaDePago && x.IdDetCuenta == mfp.IdDetCuenta); if (entityCajaDet != null) { entityCajaDet.Valor = mfp.Valor; entityCajaDet.ModificadoPor = entityMov.ModificadoPor; entityCajaDet.FechaModificado = DateTimeOffset.Now; context.SaveChanges(); } } } if (entityMov.IdTercero != null) { Tercero entityCli = context.Terceros.Find(entityMov.IdTercero); entityCli.NombreTercero = entityMov.NombreTercero; entityCli.Direccion = entityMov.DireccionTercero; entityCli.Telefono = entityMov.TelefonoTercero; context.SaveChanges(); } transaccion.Commit(); return(entityMov.IdMovimiento); } } catch (Exception ex) { errorBusiness.Create("UpdateMovimientoByPuntoVenta", ex.Message, null); throw; } }
public int CreateByPuntoDeVenta(JObject data) { try { Movimiento entityMov = data["entityMov"].ToObject <Movimiento>(); List <MovimientoDetalle> listaDetalleMov = data["listDetalleMov"].ToObject <List <MovimientoDetalle> >(); List <MovimientoFormaPago> listaDetallePag = data["listDetallePag"].ToObject <List <MovimientoFormaPago> >(); SiinErpContext context = new SiinErpContext(); using (var transaccion = context.Database.BeginTransaction()) { TipoDocumento tiposdocmov = context.TiposDocumentos.FirstOrDefault(x => x.TipoDoc.Equals(entityMov.TipoDoc) && x.IdEmpresa == entityMov.IdEmpresa); tiposdocmov.NumDoc++; context.SaveChanges(); Resolucion resolucion = context.Resolucion.FirstOrDefault(x => x.IdEmpresa == entityMov.IdEmpresa && x.Estado.Equals(Constantes.EstadoActivo)); entityMov.TipoDoc = tiposdocmov.TipoDoc; entityMov.NumDoc = tiposdocmov.NumDoc; entityMov.CodModulo = Constantes.ModuloVentas; entityMov.Transaccion = tiposdocmov.IdDetTransaccion; entityMov.Periodo = entityMov.FechaDoc.ToString("yyyyMM"); entityMov.IdResolucion = resolucion.IdResolucion; entityMov.Estado = Constantes.EstadoActivo; entityMov.FechaVencimiento = entityMov.PlazoPago == null ? entityMov.FechaDoc : entityMov.FechaDoc.AddDays(entityMov.PlazoPago.PlazoDias); entityMov.FechaCreacion = DateTimeOffset.Now; context.Movimientos.Add(entityMov); context.SaveChanges(); decimal vrBruto = 0, vrDscto = 0, vrIva = 0; Movimiento obMov = context.Movimientos.FirstOrDefault(x => x.NumDoc == entityMov.NumDoc && x.TipoDoc.Equals(entityMov.TipoDoc)); foreach (MovimientoDetalle m in listaDetalleMov) { m.IdMovimiento = obMov.IdMovimiento; vrBruto += m.VrUnitario * m.Cantidad; vrDscto += m.VrUnitario * m.Cantidad * m.PcDscto / 100; vrIva += m.VrUnitario * m.Cantidad * m.PcIva / 100; Articulo entityArt = context.Articulos.Find(m.IdArticulo); if (entityArt.AfectaInventario) { ArticuloExistencia entityExist = context.Existencias.FirstOrDefault(x => x.IdArticulo == m.IdArticulo && x.IdDetAlmacen == entityMov.IdDetAlmacen); if (entityExist == null) { entityExist = new ArticuloExistencia(); entityExist.IdEmpresa = entityMov.IdEmpresa; entityExist.IdDetAlmacen = entityMov.IdDetAlmacen; entityExist.IdArticulo = m.IdArticulo; entityExist.Existencia = m.Cantidad * -1; context.Existencias.Add(entityExist); context.SaveChanges(); } else { entityExist.Existencia += m.Cantidad * -1; context.SaveChanges(); } } } List <CajaDetalle> ListaCajaDetalle = new List <CajaDetalle>(); foreach (MovimientoFormaPago mfp in listaDetallePag) { mfp.IdMovimiento = obMov.IdMovimiento; CajaDetalle entityCajaDet = new CajaDetalle(); entityCajaDet.IdCaja = Convert.ToInt32(entityMov.IdCaja); entityCajaDet.IdMovimiento = obMov.IdMovimiento; entityCajaDet.TipoDoc = obMov.TipoDoc; entityCajaDet.NumDoc = obMov.NumDoc; entityCajaDet.IdDetFormaPago = mfp.IdDetFormaDePago; entityCajaDet.IdDetCuenta = mfp.IdDetCuenta; entityCajaDet.Efectivo = mfp.Descripcion.Contains("Efectivo") ? true : false; entityCajaDet.Transaccion = 1; entityCajaDet.Valor = mfp.Valor; entityCajaDet.Estado = Constantes.EstadoActivo; entityCajaDet.FechaCreacion = DateTimeOffset.Now; entityCajaDet.CreadoPor = entityMov.CreadoPor; ListaCajaDetalle.Add(entityCajaDet); } context.MovimientosFormasPagos.AddRange(listaDetallePag); context.SaveChanges(); context.MovimientosDetalles.AddRange(listaDetalleMov); context.SaveChanges(); context.CajaDetalle.AddRange(ListaCajaDetalle); context.SaveChanges(); if (entityMov.IdTercero != null) { Tercero entityCli = context.Terceros.Find(entityMov.IdTercero); entityCli.Direccion = entityMov.DireccionTercero; entityCli.Telefono = entityMov.TelefonoTercero; context.SaveChanges(); } transaccion.Commit(); return(obMov.IdMovimiento); } } catch (Exception ex) { errorBusiness.Create("CreateMovimientoByPuntoVenta", ex.Message, null); throw; } }