public void AnularComprobante(dto.ComprobanteAnulacionElectronicaRequest request, byte estado) { var comprobante = new dom.Comprobante().BuscarPorId(request.IdComprobante); comprobante.Estado = estado; comprobante.MotiAnulacion = request.MotivoAnulacion; new dom.Comprobante().Modificar(comprobante); byte tipodete = 1; if (comprobante.ComprobanteTipoId == 7) { tipodete = 2; } var detalle = new dom.ComprobanteDetalles().Buscar(c => c.ComprobanteId == comprobante.Id).ToList(); dato.Almacen objAlmacen; foreach (var item in detalle) { var producto = new dom.Producto().BuscarPorId(item.ProductoId); if (item.Tipo == 1) { if (tipodete == 2) { if (producto.Stock - item.Cantidad > 0) { producto.Stock = producto.Stock - item.Cantidad; } else { producto.Stock = 0; } } else { producto.Stock = producto.Stock + item.Cantidad; } new dom.Producto().Modificar(producto); objAlmacen = new dato.Almacen(); objAlmacen.Tipo = tipodete; objAlmacen.UsuarioId = request.UsuarioId; objAlmacen.ProductoId = item.ProductoId; objAlmacen.ProductoNombre = item.ProductoNombre; objAlmacen.UnidadMedidaId = item.UnidadMedidaId; objAlmacen.Cantidad = (decimal)item.Cantidad; objAlmacen.Fecha = DateTime.Now; objAlmacen.EmpresaId = comprobante.EmpresaId; objAlmacen.ComprobanteId = comprobante.Id; objAlmacen.Precio = item.PrecioTotal; new dom.Almacen().Adicionar(objAlmacen); } } }
public dto.ComprobanteGuardarResponse GuardarComprobante(dto.ComprobanteGuardarRequest r) { dto.ComprobanteGuardarResponse response = new dto.ComprobanteGuardarResponse(); try { byte tipodete = 2; var cabecera = Mapper.Map <ent.Comprobante, dato.Comprobante>(r.ComprobanteCabecera); var detalle = Mapper.Map <IEnumerable <ent.Comprobantedetalle>, IEnumerable <dato.Comprobantedetalle> >(r.ComprobanteDetalle); if (cabecera.ComprobanteTipoId == 7) { tipodete = 1; } if (cabecera.Id == 0) { var serieServ = new dom.Serie().Buscar(c => c.EmpresaId == r.ComprobanteCabecera.EmpresaId && c.Serie1 == r.ComprobanteCabecera.Serie && c.ComprobanteTipoId == r.ComprobanteCabecera.ComprobanteTipoId && c.Proforma == false).FirstOrDefault(); cabecera.Correlativo = (serieServ.Correlativo + 1).ToString(); new dom.Comprobante().Adicionar(cabecera); foreach (var item in detalle) { item.ComprobanteId = cabecera.Id; new dom.ComprobanteDetalles().Adicionar(item); var producto = new dom.Producto().BuscarPorId(item.ProductoId); if (item.Tipo == 1) { if (cabecera.ComprobanteTipoId == 1 || cabecera.ComprobanteTipoId == 3 || cabecera.ComprobanteTipoId == 8) { if (producto.Stock - item.Cantidad > 0) { producto.Stock = producto.Stock - item.Cantidad; } else { producto.Stock = 0; } } else { producto.Stock = producto.Stock + item.Cantidad; } new dom.Producto().Modificar(producto); dato.Almacen objAlmacen = new dato.Almacen(); objAlmacen.Tipo = tipodete; objAlmacen.UsuarioId = cabecera.UsuarioId; objAlmacen.ProductoId = item.ProductoId; objAlmacen.ProductoNombre = item.ProductoNombre; objAlmacen.UnidadMedidaId = item.UnidadMedidaId; objAlmacen.Cantidad = (decimal)item.Cantidad; objAlmacen.Fecha = DateTime.Now; objAlmacen.EmpresaId = cabecera.EmpresaId; objAlmacen.ComprobanteId = cabecera.Id; objAlmacen.Precio = item.PrecioTotal; new dom.Almacen().Adicionar(objAlmacen); } } var serie = new dom.Serie().BuscarPrimero(c => c.EmpresaId == cabecera.EmpresaId && c.Serie1 == cabecera.Serie && c.ComprobanteTipoId == cabecera.ComprobanteTipoId); serie.Correlativo = Convert.ToInt64(cabecera.Correlativo); new dom.Serie().Modificar(serie); response.IdComprobante = cabecera.Id; } else { new dom.Comprobante().Modificar(cabecera); var comprobanteDetalles = new dom.ComprobanteDetalles(); var detalleEdicion = comprobanteDetalles.Buscar(c => c.ComprobanteId == cabecera.Id).ToList(); foreach (var item in detalleEdicion) { var productoEdicion = new dom.Producto().BuscarPorId(item.ProductoId); if (item.Tipo == 1) { if (cabecera.ComprobanteTipoId == 1 || cabecera.ComprobanteTipoId == 3 || cabecera.ComprobanteTipoId == 8) { //devolucion productoEdicion.Stock = productoEdicion.Stock + item.Cantidad; } else { productoEdicion.Stock = productoEdicion.Stock - item.Cantidad; } new dom.Producto().Modificar(productoEdicion); dato.Almacen objAlmacen = new dato.Almacen(); objAlmacen.Tipo = 3; objAlmacen.UsuarioId = cabecera.UsuarioId; objAlmacen.ProductoId = item.ProductoId; objAlmacen.ProductoNombre = item.ProductoNombre; objAlmacen.UnidadMedidaId = item.UnidadMedidaId; objAlmacen.Cantidad = (decimal)item.Cantidad; objAlmacen.Fecha = DateTime.Now; objAlmacen.EmpresaId = cabecera.EmpresaId; objAlmacen.ComprobanteId = cabecera.Id; objAlmacen.Precio = item.PrecioTotal; new dom.Almacen().Adicionar(objAlmacen); } comprobanteDetalles.Eliminar(item); } foreach (var item in detalle) { item.ComprobanteId = cabecera.Id; new dom.ComprobanteDetalles().Adicionar(item); var producto = new dom.Producto().BuscarPorId(item.ProductoId); if (item.Tipo == 1) { if (cabecera.ComprobanteTipoId == 1 || cabecera.ComprobanteTipoId == 3 || cabecera.ComprobanteTipoId == 8) { if (producto.Stock - item.Cantidad > 0) { producto.Stock = producto.Stock - item.Cantidad; } else { producto.Stock = 0; } } else { producto.Stock = producto.Stock + item.Cantidad; } new dom.Producto().Modificar(producto); dato.Almacen objAlmacen = new dato.Almacen(); objAlmacen.Tipo = tipodete; objAlmacen.UsuarioId = cabecera.UsuarioId; objAlmacen.ProductoId = item.ProductoId; objAlmacen.ProductoNombre = item.ProductoNombre; objAlmacen.UnidadMedidaId = item.UnidadMedidaId; objAlmacen.Cantidad = (decimal)item.Cantidad; objAlmacen.Fecha = DateTime.Now; objAlmacen.EmpresaId = cabecera.EmpresaId; objAlmacen.ComprobanteId = cabecera.Id; objAlmacen.Precio = item.PrecioTotal; new dom.Almacen().Adicionar(objAlmacen); } } response.IdComprobante = cabecera.Id; } } catch (Exception Ex) { response.IdComprobante = 0; } return(response); }
public void Modificar(ent.Almacen entidad) { _repositorio.Modificar(entidad); _repositorio.Grabar(); }
public void Eliminar(ent.Almacen entidad) { _repositorio.Eliminar(entidad); _repositorio.Grabar(); }
public void Adicionar(ent.Almacen entidad) { _repositorio.Adicionar(entidad); _repositorio.Grabar(); }