Ejemplo n.º 1
0
        public ActionResult ReservasstockLinAddNew([ModelBinder(typeof(DevExpressEditorsBinder))] ReservasstockLinModel item)
        {
            var model = Session[session] as List <ReservasstockLinModel>;



            return(PartialView("_Reservasstocklin", model));
        }
Ejemplo n.º 2
0
        public ActionResult ReservasstockLinUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] ReservasstockLinModel item)
        {
            var model = Session[session] as List <ReservasstockLinModel>;

            try
            {
                if (ModelState.IsValid)
                {
                    var configuracionAplicacion = appService.GetConfiguracion();
                    if (configuracionAplicacion.VentasUsarCanal && configuracionAplicacion.VentasCanalObligatorio &&
                        string.IsNullOrEmpty(item.Canal))
                    {
                        ModelState.AddModelError("Canal",
                                                 string.Format(General.ErrorCampoObligatorio, RReservasstock.Canal));
                    }
                    else
                    {
                        var editItem          = model.Single(f => f.Id == item.Id);
                        var moneda            = Funciones.Qnull(Request.Params["fkmonedas"]);
                        var decimalesunidades = Funciones.Qint(Request.Params["decimalesunidades"]);
                        var decimalesmonedas  = Funciones.Qint(Request.Params["decimalesmonedas"]);

                        var serviceMonedas = FService.Instance.GetService(typeof(MonedasModel), ContextService);
                        var monedaObj      = serviceMonedas.get(moneda) as MonedasModel;
                        editItem.Decimalesmedidas              = decimalesunidades ?? 0;
                        editItem.Decimalesmonedas              = decimalesmonedas ?? 0;
                        editItem.Ancho                         = item.Ancho;
                        editItem.Largo                         = item.Largo;
                        editItem.Grueso                        = item.Grueso;
                        editItem.Canal                         = item.Canal;
                        editItem.Cantidad                      = item.Cantidad;
                        editItem.Cantidadpedida                = item.Cantidadpedida;
                        editItem.Fkarticulos                   = item.Fkarticulos;
                        editItem.Descripcion                   = item.Descripcion;
                        editItem.Metros                        = item.Metros;
                        editItem.Cuotaiva                      = item.Cuotaiva;
                        editItem.Cuotarecargoequivalencia      = item.Cuotarecargoequivalencia;
                        editItem.Fktiposiva                    = item.Fktiposiva;
                        editItem.Porcentajeiva                 = item.Porcentajeiva;
                        editItem.Porcentajerecargoequivalencia = item.Porcentajerecargoequivalencia;
                        editItem.Importe                       = Math.Round(item.Importe ?? 0, (editItem.Decimalesmonedas ?? 0));
                        editItem.Importedescuento              = item.Importedescuento;
                        editItem.Lote                = item.Lote;
                        editItem.Precio              = Math.Round(item.Precio ?? 0, decimalesmonedas ?? 0);
                        editItem.Precioanterior      = item.Precioanterior;
                        editItem.Porcentajedescuento = item.Porcentajedescuento;
                        editItem.Tabla               = item.Tabla;
                        editItem.Revision            = item.Revision?.ToUpper();
                        editItem.Caja                = item.Caja;
                        editItem.Bundle              = item.Bundle?.ToUpper();
                        editItem.Orden               = item.Orden;
                        editItem.Flagidentifier      = Guid.NewGuid();

                        // Validar dimensiones artículo
                        try
                        {
                            var familiasProductosService = FService.Instance.GetService(typeof(FamiliasproductosModel), ContextService) as FamiliasproductosService;
                            familiasProductosService.ValidarDimensiones(item.Fkarticulos, item.Largo, item.Ancho, item.Grueso);
                        }
                        catch (ValidationException ex)
                        {
                            Regex rgx = new Regex(@"\{.*\}");

                            if (Regex.IsMatch(ex.Message, rgx.Replace(RFamilias.ErrorLargo, ".*") + ".*"))
                            {
                                ModelState.AddModelError("SLargo", Regex.Match(ex.Message, rgx.Replace(RFamilias.ErrorLargo, ".*")).Value);
                            }
                            if (Regex.IsMatch(ex.Message, ".*" + rgx.Replace(RFamilias.ErrorAncho, ".*") + ".*"))
                            {
                                ModelState.AddModelError("SAncho", Regex.Match(ex.Message, rgx.Replace(RFamilias.ErrorAncho, ".*")).Value);
                            }
                            if (Regex.IsMatch(ex.Message, ".*" + rgx.Replace(RFamilias.ErrorGrueso, ".*") + "."))
                            {
                                ModelState.AddModelError("SGrueso", Regex.Match(ex.Message, rgx.Replace(RFamilias.ErrorGrueso, ".*")).Value);
                            }

                            return(PartialView("_Reservasstocklin", model));
                        }

                        Session[session] = model;

                        var descuentopp        = Funciones.Qdouble(Request.Params["descuentopp"]) ?? 0;
                        var descuentocomercial = Funciones.Qdouble(Request.Params["descuentocomercial"]) ?? 0;
                        var portes             = 0;

                        var service = FService.Instance.GetService(typeof(ReservasstockModel), ContextService) as ReservasstockService;
                        Session[sessiontotales] = service.Recalculartotales(model, descuentopp, descuentocomercial, portes, monedaObj.Decimales);
                    }
                }
            }
            catch (ValidationException)
            {
                throw;
            }

            return(PartialView("_Reservasstocklin", model));
        }