Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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);
        }