private void ValidarKit(List <ImputacionCostesLinModel> listado, ImputacionCostesLinVistaModel 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(ImputacionCostesLinVistaModel model) { var errormessage = ""; try { var listadoLotes = Session[sessionlotes] as List <ImputacionCostesLinModel>; using (var imputacionCostesService = FService.Instance.GetService(typeof(ImputacionCostesModel), ContextService) as ImputacionCostesService) { listadoLotes = imputacionCostesService.CrearLineasLotes(listadoLotes.ToList(), model); //CREAMOS LA SALIDA Session[sessionlotes] = listadoLotes as List <ImputacionCostesLinModel>; } 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 <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); }