public void GenerarMovimientoAlmacen(string lote, string fkalmacen, string fkzona) { var service = new MovimientosstockService(_context, _db); var stockactualService = new StockactualService(_context, _db); service.GenerarMovimiento(stockactualService.GetArticuloPorLoteOCodigo(lote, fkalmacen, _context.Empresa), TipoOperacionService.MovimientoAlmacen, fkzona); }
public ActionResult MovimientosAlmacen(StArticulosLotes model) { var almacen = model.Fkalmacen; var referencialote = model.Referencialote; var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticuloPorLoteOCodigo(referencialote, almacen, ContextService.Empresa); return(Json(list)); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var referencialote = nvc["Referencialote"]; var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticuloPorLoteOCodigo(referencialote, almacen, ContextService.Empresa); var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8, "application/json"); return(response); }
private List <InventariosLinModel> EditarLineasInventarios(List <InventariosLinModel> lineas, string referencialote, bool agregar) { string lote; string loteid; StockactualService.CalcularPartesLote(referencialote, out lote, out loteid); var linea = lineas.Single(f => f.Lote == lote && f.Loteid == loteid); linea.Estado = agregar ? EstadoLineaInventario.Punteado :EstadoLineaInventario.Pendiente; return(lineas); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get(string id) { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var solotablas = Funciones.Qbool(nvc["Solotablas"]); var service = new StockactualService(ContextService,MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list= service.GetArticuloLote(almacen, ContextService.Empresa, "", "", "", "", "", "", solotablas,id); var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8, "application/json"); return response; }
private ReservasstockLinVistaModel GenerarModeloLin(ReservasstockModel albaranObj, string lote) { var serviceStock = new StockactualService(_context, _db); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var familiasService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var obj = serviceStock.GetArticuloPorLoteOCodigo(lote, albaranObj.Fkalmacen, albaranObj.Empresa) as MovimientosstockModel; if (obj != null) { var fkarticulos = obj.Fkarticulos; var articulosObj = articulosService.GetArticulo(fkarticulos, albaranObj.Fkclientes, albaranObj.Fkmonedas.ToString(), albaranObj.Fkregimeniva, TipoFlujo.Venta); var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(fkarticulos)) as FamiliasproductosModel; var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel; var metros = UnidadesService.CalculaResultado(unidadesObj, obj.Cantidad, obj.Largo, obj.Ancho, obj.Grueso, obj.Metros); obj.Metros = metros; return(new ReservasstockLinVistaModel() { Modificarmedidas = false, Lote = lote, Decimalesmonedas = albaranObj.Decimalesmonedas, Descuentocomercial = albaranObj.Porcentajedescuentocomercialcadena, Descuentoprontopago = albaranObj.Porcentajedescuentoprontopagocadena, Fkcuenta = albaranObj.Fkclientes, Fkmonedas = albaranObj.Fkmonedas.ToString(), Flujo = TipoFlujo.Venta, Fkregimeniva = albaranObj.Fkregimeniva, Portes = albaranObj.Costeportes.ToString(), Fkalmacen = albaranObj.Fkalmacen, Descuento = 0, Precio = articulosObj.Precio ?? 0, Fkarticulos = fkarticulos, Lineas = new List <MovimientosstockModel>(new[] { obj }) }); } return(new ReservasstockLinVistaModel() { Fkmonedas = albaranObj.Fkmonedas.ToString() }); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get(string id) { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var articulosdesde = nvc["FkarticulosDesde"]; var articuloshasta = nvc["FkarticulosHasta"]; var familiadesde = nvc["FkfamiliaDesde"]; var familiahasta = nvc["FkfamiliaHasta"]; var lotedesde = nvc["LoteDesde"]; var lotehasta = nvc["LoteHasta"]; var solotablas = Funciones.Qbool(nvc["Solotablas"]); var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticuloPorLoteOCodigo(id, almacen, ContextService.Empresa); var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8, "application/json"); return(response); }
public ActionResult ListLotes(StListadoStock model) { var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticulosLotesAgrupados(model.Fkalmacen, ContextService.Empresa, model.IdArticulo); var result = new ResultBusquedasPaginados <StockActualMobileModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true }, new ColumnDefinition() { field = "Articulo", displayName = "Descripción", visible = true }, new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true }, new ColumnDefinition() { field = "Cantidaddisponible", displayName = "Cantidad", visible = true }, new ColumnDefinition() { field = "SMetros", displayName = "Metros", visible = true }, new ColumnDefinition() { field = "UM", displayName = "UM", visible = true }, }, RegistrosTotales = list.Count(), PaginaActual = 1 }; return(Json(result)); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var service = new StockactualService(ContextService,MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetBundleArticulosLotes(almacen, ContextService.Empresa); var result = new ResultBusquedas<StockActualVistaModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true,width=150}, new ColumnDefinition() { field = "Fkalmacenes", displayName = "Almacén", visible = false,width=70 }, new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true ,filter = new Filter() { condition = ColumnDefinition.STARTS_WITH }}, new ColumnDefinition() { field = "Descripcion", displayName = "Descripción", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH }}, } }; var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); return response; }
// GET: api/Supercuentas/5 public HttpResponseMessage Get() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var fkalmacen = nvc["Fkalmacen"]; var fkproveedores = nvc["Fkproveedores"]; var desderecepcionstock = nvc["Desderecepcionstock"]; var hastarecepcionstock = nvc["Hastarecepcionstock"]; var fechadesde = nvc["Fechadesde"]; var fechahasta = nvc["Fechahasta"]; var lotedesde = nvc["Desdelote"]; var lotehasta = nvc["Hastalote"]; var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticulosLotesRemedir(fkalmacen, ContextService.Empresa, fkproveedores, desderecepcionstock, hastarecepcionstock, fechadesde, fechahasta, lotedesde, lotehasta); var result = new ResultBusquedas <StockActualRemedirModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70 }, new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH }, width = 100 }, new ColumnDefinition() { field = "Descripcion", displayName = "Descripción", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH }, width = 200 }, new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true, width = 100 }, new ColumnDefinition() { field = "Loteid", displayName = "Lote Id", visible = true, width = 70 }, new ColumnDefinition() { field = "Bundle", displayName = "Bundle", visible = true, width = 70 }, new ColumnDefinition() { field = "Cantidaddisponible", displayName = "Cantidad", visible = true, width = 70 }, new ColumnDefinition() { field = "SLargo", displayName = "Largo", visible = true, width = 70 }, new ColumnDefinition() { field = "SAncho", displayName = "Ancho", visible = true, width = 70 }, new ColumnDefinition() { field = "SGrueso", displayName = "Grueso", visible = true, width = 70 }, new ColumnDefinition() { field = "SMetros", displayName = "Metros", visible = true, width = 70 }, new ColumnDefinition() { field = "UM", displayName = "UM", visible = true, width = 70 }, new ColumnDefinition() { field = "Cc", displayName = "C. comercial", visible = true, width = 70 }, new ColumnDefinition() { field = "Tono", displayName = "Tono", visible = true, width = 70 }, new ColumnDefinition() { field = "Grano", displayName = "Grano", visible = true, width = 70 }, new ColumnDefinition() { field = "Zona", displayName = "Zona", visible = true, width = 70 }, new ColumnDefinition() { field = "Loteproveedor", displayName = "Lote proveedor", visible = true, width = 120 }, } }; var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); return(response); }
public List <ReservasstockLinModel> CrearNuevasLineas(List <ReservasstockLinModel> listado, ReservasstockLinVistaModel model) { var stockactualService = new StockactualService(_context, _db); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var familiasService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var tiposivaService = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService; var monedasService = FService.Instance.GetService(typeof(MonedasModel), _context, _db) as MonedasService; var monedasObj = monedasService.get(model.Fkmonedas) as MonedasModel; var maxId = listado.Any() ? listado.Max(f => f.Id) + 1 : 1; foreach (var linea in model.Lineas) { if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid))) { var articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo); var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel; var ancho = linea.Ancho; var largo = linea.Largo; var grueso = linea.Grueso; if (model.Modificarmedidas) { ancho = model.Ancho; largo = model.Largo; grueso = model.Grueso; } else { var item = familiaObj.Gestionstock ? stockactualService.GetArticuloPorLoteOCodigo( string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen, Empresa) as MovimientosstockModel : null; ancho = item?.Ancho ?? linea.Ancho; largo = item?.Largo ?? linea.Largo; grueso = item?.Grueso ?? linea.Grueso; } var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel; var tiposivaObj = tiposivaService.get(articuloObj.Fktiposiva) as TiposIvaModel; var metros = UnidadesService.CalculaResultado(unidadesObj, linea.Cantidad, largo, ancho, grueso, model.Metros); linea.Metros = metros; var bruto = linea.Metros * model.Precio; var importedescuento = Math.Round(((bruto) * model.Descuento / 100.0), model.Decimalesmonedas); var total = bruto - importedescuento; listado.Add(new ReservasstockLinModel() { Id = maxId++, Fkarticulos = linea.Fkarticulos, Descripcion = articuloObj.Descripcion, Lote = linea.Lote, Tabla = Funciones.Qint(linea.Loteid), Tblnum = Funciones.Qint(linea.Loteid), Cantidad = linea.Cantidad, Largo = largo, Ancho = ancho, Grueso = grueso, Fkunidades = articuloObj.Fkunidades, Metros = metros, Precio = model.Precio, Porcentajedescuento = model.Descuento, Importedescuento = importedescuento, Importe = total, Decimalesmedidas = unidadesObj.Decimalestotales, Decimalesmonedas = monedasObj.Decimales, Fktiposiva = tiposivaObj.Id, Porcentajeiva = tiposivaObj.PorcentajeIva, Porcentajerecargoequivalencia = tiposivaObj.PorcentajeRecargoEquivalencia, Bundle = model.Tipopieza == TipoPieza.Bundle ? model.Lote.Replace(linea.Lote, string.Empty) : string.Empty, Caja = model.Caja, Canal = model.Canal } ); } } ValidarKit(listado, model); return(listado); }
public List <ImputacionCostesLinModel> CrearLineasLotes(List <ImputacionCostesLinModel> listado, ImputacionCostesLinVistaModel model) { var stockactualService = new StockactualService(_context, _db); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var familiasService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var tiposivaService = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService; var maxId = listado.Any() ? listado.Max(f => f.Id) + 1 : 1; foreach (var linea in model.Lineas) { if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid))) { var articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo); var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel; var ancho = linea.Anchoentrada; var largo = linea.Largoentrada; var grueso = linea.Gruesoentrada; //if (model.Modificarmedidas) //{ // ancho = model.Ancho; // largo = model.Largo; // grueso = model.Grueso; //} //else //{ // var item = familiaObj.Gestionstock // ? stockactualService.GetArticuloPorLoteOCodigoHistorico( // string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen, // Empresa) as MovimientosstockModel : null; // ancho = item?.Ancho ?? linea.Anchoentrada; // largo = item?.Largo ?? linea.Largoentrada; // grueso = item?.Grueso ?? linea.Gruesoentrada; //} var metros = linea.MetrosEntrada; var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel; ////lotes en stock historico //if(linea.Cantidad==0 && linea.Metros>0) //{ // linea.Metros = linea.Metros; //} //else //{ // var metros = UnidadesService.CalculaResultado(unidadesObj, linea.Cantidad, largo, ancho, grueso, linea.MetrosEntrada); // linea.Metros = metros; //} listado.Add(new ImputacionCostesLinModel(_context) { Id = maxId++, Fkarticulos = linea.Fkarticulos, Descripcion = articuloObj.Descripcion, Lote = linea.Lote, Tabla = Funciones.Qint(linea.Loteid), Cantidad = linea.Cantidadentrada, Largo = largo, Ancho = ancho, Grueso = grueso, Fkunidades = articuloObj.Fkunidades, Metros = metros, Precio = model.Precio, Decimalesmedidas = unidadesObj.Decimalestotales, Decimalesmonedas = 0, Canal = model.Canal } ); } } ValidarKit(listado, model); return(listado); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var articulosdesde = nvc["FkarticulosDesde"]; var articuloshasta = nvc["FkarticulosHasta"]; var familiadesde = nvc["FkfamiliaDesde"]; var familiahasta = nvc["FkfamiliaHasta"]; var acabadodesde = nvc["FkAcabadoDesde"]; var acabadohasta = nvc["FkAcabadoHasta"]; var lotedesde = nvc["LoteDesde"]; var lotehasta = nvc["LoteHasta"]; var flujocadena = nvc["Flujo"]; var categoria = TipoCategoria.Ambas; if (!string.IsNullOrEmpty(flujocadena)) { if (flujocadena == "0") { categoria = TipoCategoria.Ventas; } else if (flujocadena == "1") { categoria = TipoCategoria.Compras; } } var solotablas = Funciones.Qbool(nvc["Solotablas"]); if (Funciones.Qbool(solotablas)) { var lote = nvc["Lote"]; if (!string.IsNullOrEmpty(lote)) { lotedesde = lote; lotehasta = lote; } } var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticulosLotes(almacen, ContextService.Empresa, articulosdesde, articuloshasta, familiadesde, familiahasta, lotedesde, lotehasta, solotablas, categoria, acabadodesde, acabadohasta); var result = new ResultBusquedas <StockActualVistaModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Id", displayName = "Id", visible = false, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH, } }, new ColumnDefinition() { field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70 }, new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Descripcion", displayName = "Descripción", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Fkfamilias", displayName = "Familia", visible = true, width = 100 }, new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true, width = 100 }, new ColumnDefinition() { field = "Loteid", displayName = "Lote Id", visible = true, width = 70 }, new ColumnDefinition() { field = "Bundle", displayName = "Bundle", visible = true, width = 150 }, new ColumnDefinition() { field = "Cantidad", displayName = "Cantidad", visible = true, width = 70 }, new ColumnDefinition() { field = "Largo", displayName = "Largo", visible = true, width = 70 }, new ColumnDefinition() { field = "Ancho", displayName = "Ancho", visible = true, width = 70 }, new ColumnDefinition() { field = "Grueso", displayName = "Grueso", visible = true, width = 70 }, new ColumnDefinition() { field = "Metros", displayName = "Metros", visible = true, width = 70 }, } }; var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); return(response); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get(string id) { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var articulosdesde = nvc["FkarticulosDesde"]; var articuloshasta = nvc["FkarticulosHasta"]; var familiadesde = nvc["FkfamiliaDesde"]; var familiahasta = nvc["FkfamiliaHasta"]; var lotedesde = nvc["LoteDesde"]; var lotehasta = nvc["LoteHasta"]; var solotablas = Funciones.Qbool(nvc["Solotablas"]); var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var list = service.GetArticuloEntradaPorLoteOCodigo(id, almacen, ContextService.Empresa).Where(f => ((SalidabusquedaentregaslotesarticulosModel)f).Cantidad > 0).Select(f => (SalidabusquedaentregaslotesarticulosModel)f); var result = new ResultBusquedas <SalidabusquedaentregaslotesarticulosModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Id", displayName = "Id", visible = false, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70 }, new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Descripcion", displayName = "Descripción", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true, width = 100 }, new ColumnDefinition() { field = "Loteid", displayName = "Lote Id", visible = true, width = 70 }, new ColumnDefinition() { field = "Bundle", displayName = "Bundle", visible = true, width = 150 }, new ColumnDefinition() { field = "Cantidad", displayName = "Cantidad", visible = true, width = 70 }, new ColumnDefinition() { field = "SLargo", displayName = "Largo", visible = true, width = 70 }, new ColumnDefinition() { field = "SAncho", displayName = "Ancho", visible = true, width = 70 }, new ColumnDefinition() { field = "SGrueso", displayName = "Grueso", visible = true, width = 70 }, new ColumnDefinition() { field = "SMetros", displayName = "Metros", visible = true, width = 70 }, } }; var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); return(response); }
private List <TransformacioneslotesLinModel> GenerarLineasConStock(List <TransformacioneslotesLinModel> listado, TransformacioneslotesLinVistaModel model, ArticulosDocumentosModel articuloObj, int maxId) { var stockactualService = new StockactualService(_context, _db); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var familiasService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var lotesService = new LotesService(_context); foreach (var linea in model.Lineas) { if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid))) { var stockObj = _db.Stockhistorico.Single( f => f.fkalmacenes == _context.Fkalmacen && f.empresa == _context.Empresa && f.lote == linea.Lote && f.loteid == linea.Loteid); var loteObj = lotesService.Get(stockObj.id.ToString()); articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo); var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel; var ancho = linea.Ancho; var largo = linea.Largo; var grueso = linea.Grueso; var item = familiaObj.Gestionstock ? stockactualService.GetArticuloPorLoteOCodigo( string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen, Empresa) as MovimientosstockModel : null; if (model.Modificarmedidas) { ancho = model.Ancho; largo = model.Largo; grueso = model.Grueso; } else { ancho = item?.Ancho ?? linea.Ancho; largo = item?.Largo ?? linea.Largo; grueso = item?.Grueso ?? linea.Grueso; } if (linea.Cantidad > item.Cantidad) { throw new ValidationException(string.Format("La cantidad indicada para el lote {0} es superior a la que hay en el stock actual", string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)))); } var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel; var metros = UnidadesService.CalculaResultado(unidadesObj, articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad, largo, ancho, grueso, model.Metros); linea.Metros = metros; listado.Add(new TransformacioneslotesLinModel() { Id = maxId++, Fkarticulos = linea.Fkarticulos, Descripcion = articuloObj.Descripcion, Lote = linea.Lote, Tabla = Funciones.Qint(linea.Loteid), Cantidad = articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad, Largo = largo, Ancho = ancho, Grueso = grueso, Fkunidades = articuloObj.Fkunidades, Metros = metros, Decimalesmedidas = unidadesObj.Decimalestotales, Canal = model.Canal, Flagidentifier = Guid.NewGuid(), Precio = loteObj.Costenetocompra, Tipodealmacenlote = loteObj.Tipodealmacenlote } ); } } ValidarKit(listado, model); return(listado); }
public MovimientosstockService(IContextService context, MarfilEntities db) { _db = db; _context = context; _stockactualService = new StockactualService(_context, _db); }
// GET: api/Supercuentas/5 public HttpResponseMessage Get() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var almacen = nvc["Fkalmacen"]; var articulosdesde = nvc["FkarticulosDesde"]; var articuloshasta = nvc["FkarticulosHasta"]; var familiadesde = nvc["FkfamiliaDesde"]; var familiahasta = nvc["FkfamiliaHasta"]; var lotedesde = nvc["LoteDesde"]; var lotehasta = nvc["LoteHasta"]; var solotablas = Funciones.Qbool(nvc["Solotablas"]); if (Funciones.Qbool(solotablas)) { var lote = nvc["Lote"]; if (!string.IsNullOrEmpty(lote)) { lotedesde = lote; lotehasta = lote; } } var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); //Le pasamos la empresa, el almacen y el articulo del que queremos buscar var list = service.GetArticulosLotesAgrupadosHistorico(almacen, ContextService.Empresa, articulosdesde); var result = new ResultBusquedas <StockActualMobileModel>() { values = list, columns = new[] { new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Articulo", displayName = "Descripción", visible = true, filter = new Filter() { condition = ColumnDefinition.STARTS_WITH } }, new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true, width = 100 }, new ColumnDefinition() { field = "Familia", displayName = "Familia", visible = true, width = 100 }, new ColumnDefinition() { field = "Familiamaterial", displayName = "Familia M.", visible = true, width = 100 }, new ColumnDefinition() { field = "Material", displayName = "Material", visible = true, width = 100 }, new ColumnDefinition() { field = "Cantidaddisponible", displayName = "Cantidaddisponible", visible = true, width = 70 }, new ColumnDefinition() { field = "SMetros", displayName = "SMetros", visible = true, width = 150 }, new ColumnDefinition() { field = "UM", displayName = "UM", visible = true, width = 70 }, } }; var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); return(response); }
private List <AlbaranesLinModel> GenerarLineasConStock(List <AlbaranesLinModel> listado, AlbaranesLinVistaModel model, ArticulosDocumentosModel articuloObj, int maxId) { var stockactualService = new StockactualService(_context, _db); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var familiasService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var tiposivaService = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService; var monedasService = FService.Instance.GetService(typeof(MonedasModel), _context, _db) as MonedasService; var monedasObj = monedasService.get(model.Fkmonedas) as MonedasModel; foreach (var linea in model.Lineas) { if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid))) { articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo); var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel; var ancho = linea.Ancho; var largo = linea.Largo; var grueso = linea.Grueso; var item = familiaObj.Gestionstock ? stockactualService.GetArticuloPorLoteOCodigo( string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen, Empresa) as MovimientosstockModel : null; if (model.Modificarmedidas) { ancho = model.Ancho; largo = model.Largo; grueso = model.Grueso; } else { ancho = item?.Ancho ?? linea.Ancho; largo = item?.Largo ?? linea.Largo; grueso = item?.Grueso ?? linea.Grueso; } if (linea.Cantidad > item.Cantidad) { throw new ValidationException(string.Format("La cantidad indicada para el lote {0} es superior a la que hay en el stock actual", string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)))); } var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel; var tiposivaObj = tiposivaService.get(articuloObj.Fktiposiva) as TiposIvaModel; var metros = UnidadesService.CalculaResultado(unidadesObj, articuloObj.Lotefraccionable ? model.Cantidad :linea.Cantidad, largo, ancho, grueso, model.Metros); linea.Metros = metros; var bruto = linea.Metros * model.Precio; var importedescuento = Math.Round(((bruto) * model.Descuento / 100.0), model.Decimalesmonedas); var total = bruto - importedescuento; listado.Add(new AlbaranesLinModel() { Nueva = true, Id = maxId++, Fkarticulos = linea.Fkarticulos, Descripcion = articuloObj.Descripcion, Lote = linea.Lote, Tabla = Funciones.Qint(linea.Loteid), Tblnum = Funciones.Qint(linea.Loteid), Cantidad = articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad, Largo = largo, Ancho = ancho, Grueso = grueso, Fkunidades = articuloObj.Fkunidades, Metros = metros, Precio = model.Precio, Porcentajedescuento = model.Descuento, Importedescuento = importedescuento, Importe = total, Decimalesmedidas = unidadesObj.Decimalestotales, Decimalesmonedas = monedasObj.Decimales, Fktiposiva = tiposivaObj.Id, Porcentajeiva = tiposivaObj.PorcentajeIva, Porcentajerecargoequivalencia = tiposivaObj.PorcentajeRecargoEquivalencia, Bundle = model.Tipopieza == TipoPieza.Bundle ? model.Lote.Replace(linea.Lote, string.Empty) : string.Empty, Caja = model.Caja, Canal = model.Canal, Flagidentifier = Guid.NewGuid() } ); } } ValidarKit(listado, model); return(listado); }