public IEnumerable <ent.Serie> ObtenerSerieByTipoComprobante(dto.SerieRequest r) { var query = new dom.Serie().Buscar(c => c.EmpresaId == r.EmpresaId && c.ComprobanteTipoId == r.ComprobanteTipoId && c.Proforma == r.Proforma); var Resultado = Mapper.Map <IEnumerable <dato.Serie>, IEnumerable <ent.Serie> >(query); return(Resultado); }
public ent.Serie ObtenerSerie(dto.SerieRequest r) { var query = new dom.Serie().Buscar(c => c.EmpresaId == r.EmpresaId && c.Serie1 == r.Serie && c.ComprobanteTipoId == r.ComprobanteTipoId && c.Proforma == r.Proforma).FirstOrDefault(); var Resultado = Mapper.Map <dato.Serie, ent.Serie>(query); return(Resultado); }
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); }