public ActionResult DivisionLotesentradaLinUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] DivisionLotesentradaLinModel item)
        {
            var model = Session[sessionentrada] as List <DivisionLotesentradaLinModel>; //LINEAS DE ENTRADA

            if (ModelState.IsValid)
            {
                var editItem = model.Single(f => f.Id == item.Id);
                editItem.Largo          = item.Largo;
                editItem.Ancho          = item.Ancho;
                editItem.Grueso         = item.Grueso;
                editItem.Canal          = item.Canal;
                editItem.Cantidad       = item.Cantidad;
                editItem.Fkarticulos    = item.Fkarticulos;
                editItem.Descripcion    = item.Descripcion;
                editItem.Metros         = item.Metros;
                editItem.Lote           = item.Lote;
                editItem.Tabla          = item.Tabla;
                editItem.Revision       = item.Revision?.ToUpper();
                editItem.Orden          = item.Orden;
                Session[sessionentrada] = model;
            }

            //COMPROBAMOS LAS ENTRADAS EN EL ULTIMO REGISTRO DE ENTRADA
            if (item.Id == model.Count)
            {
                comprobarEntradas(Session[sessionentrada] as List <DivisionLotesentradaLinModel>, Session[sessionsalida] as List <DivisionLotessalidaLinModel>); //COMPROBAMOS LAS ENTRADAS
            }

            return(PartialView("_divisionlotesentradalin", Session[sessionentrada] as List <DivisionLotesentradaLinModel>)); //DEVOLVEMOS LA VISTA
        }
        public ActionResult DivisionLotesentradaLinAddNew([ModelBinder(typeof(DevExpressEditorsBinder))] DivisionLotesentradaLinModel item)
        {
            var model = Session[sessionentrada] as List <DivisionLotesentradaLinModel>;             //LINEAS DE ENTRADA

            model.Add(item);                                                                        //AÑADIMOS ELEMENTO
            comprobarEntradas(model, Session[sessionsalida] as List <DivisionLotessalidaLinModel>); //COMPROBAMOS LAS ENTRADAS
            return(PartialView("_divisionlotesentradalin", model));                                 //DEVOLVEMOS LA VISTA
        }
예제 #3
0
        public List <DivisionLotesentradaLinModel> CrearUnaNuevaLineaEntrada(DivisionLotessalidaLinModel first, List <DivisionLotesentradaLinModel> listadoEntrada, double?cantidad)
        {
            //CODE
            DivisionLotesentradaLinModel d1 = new DivisionLotesentradaLinModel();

            d1.Cantidad = 1;

            if (listadoEntrada?.Count == 0)
            {
                d1.Id = 1;
            }

            else
            {
                d1.Id = (listadoEntrada?.Max(l => l.Id) ?? 0) + 1;
            }

            //Obtenemos la familoa a la que pertenece ese articulo
            var familiaService = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db);
            var familiaObj     = familiaService.get(ArticulosService.GetCodigoFamilia(first.Fkarticulos)) as FamiliasproductosModel;

            //Si es una tabla, son metros cuadrados y el lote es el mismo pero la tabla es el maximo de la BD + 1
            if (familiaObj.Tipofamilia == TipoFamilia.Tabla)
            {
                d1.Cantidad = cantidad;

                d1.Largo  = first.Largo / 2;
                d1.Ancho  = first.Ancho;
                d1.Grueso = first.Grueso;
                d1.Metros = d1.Ancho * d1.Largo * d1.Cantidad;

                d1.Lote           = first.Lote;
                d1.LoteAutomatico = false;

                d1.Decimalesmonedas = first.Decimalesmonedas;
                d1.Decimalesmedidas = first.Decimalesmedidas;
            }

            //Si es un bloque, metros 3 y el lote es automatico
            else if (familiaObj.Tipofamilia == TipoFamilia.Bloque)
            {
                d1.Cantidad = cantidad;

                d1.Largo  = first.Largo / 2;
                d1.Ancho  = first.Ancho;
                d1.Grueso = first.Grueso;
                d1.Metros = d1.Ancho * d1.Largo * d1.Grueso * d1.Cantidad;

                d1.Tabla          = 0;
                d1.Lote           = "Lote " + ((listadoEntrada?.Count() ?? 0) + 1).ToString();
                d1.LoteAutomatico = true;

                d1.Decimalesmonedas = first.Decimalesmonedas;
                d1.Decimalesmedidas = first.Decimalesmedidas;
            }

            //Si son losas
            else
            {
                d1.Cantidad = cantidad;

                d1.Largo  = first.Largo;
                d1.Ancho  = first.Ancho;
                d1.Grueso = first.Grueso;

                d1.Metros         = d1.Largo * d1.Ancho * d1.Cantidad;
                d1.Tabla          = 0;
                d1.Lote           = "Lote " + ((listadoEntrada?.Count() ?? 0) + 1).ToString();
                d1.LoteAutomatico = true;

                d1.Decimalesmonedas = first.Decimalesmonedas;
                d1.Decimalesmedidas = first.Decimalesmedidas;
            }

            d1.Fkarticulos       = first.Fkarticulos;
            d1.Descripcion       = first.Descripcion;
            d1.Tipodealmacenlote = first.Tipodealmacenlote;
            d1.Fkunidades        = first.Fkunidades;
            d1.Canal             = first.Canal;

            listadoEntrada.Add(d1);

            return(listadoEntrada);
        }