private void ValidarKit(List <TraspasosalmacenLinModel> listado, TraspasosalmacenLinVistaModel model) { var serviceKit = FService.Instance.GetService(typeof(KitModel), _context, _db); if (serviceKit.exists(model.Lote)) { var kitobj = serviceKit.get(model.Lote) as KitModel; foreach (var item in kitobj.Lineas) { if (!listado.Any(f => item.Lote == f.Lote && Funciones.Qint(item.Loteid) == f.Tabla)) { throw new ValidationException(string.Format("El Kit {0} no está completo, falta añadir el lote {1}{2}", model.Lote, item.Lote, Funciones.RellenaCod(item.Loteid, 3))); } } } }
public ActionResult AgregarLineas(TraspasosalmacenLinVistaModel model) { var errormessage = ""; try { var listado = Session[session] as List <TraspasosalmacenLinModel>; using (var TraspasosalmacenService = FService.Instance.GetService(typeof(TraspasosalmacenModel), ContextService) as TraspasosalmacenService) { listado = TraspasosalmacenService.CrearNuevasLineas(listado, model); Session[session] = listado; var service = FService.Instance.GetService(typeof(TraspasosalmacenModel), ContextService) as TraspasosalmacenService; } return(Content(JsonConvert.SerializeObject(model), "application/json", Encoding.UTF8)); } catch (Exception ex) { errormessage = ex.Message; } return(Content("{\"error\":\"" + errormessage + "\"}", "application/json", Encoding.UTF8)); }
public List <TraspasosalmacenLinModel> CrearNuevasLineas(List <TraspasosalmacenLinModel> listado, TraspasosalmacenLinVistaModel 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.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 metros = UnidadesService.CalculaResultado(unidadesObj, linea.Cantidad, largo, ancho, grueso, model.Metros); linea.Metros = metros; listado.Add(new TraspasosalmacenLinModel() { 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 = 0, Importe = 0, Decimalesmedidas = unidadesObj.Decimalestotales, Decimalesmonedas = 0, Fktiposiva = "", Porcentajeiva = 0, Porcentajerecargoequivalencia = 0, 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); }