public ActionResult MovsLinUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] MovsLinModel item)
        {
            var model = Session[session] as List <MovsLinModel>;

            try
            {
                if (ModelState.IsValid)
                {
                    var configuracionAplicacion = appService.GetConfiguracion();

                    var editItem         = model.Single(f => f.Id == item.Id);
                    var moneda           = Funciones.Qnull(Request.Params["fkmonedas"]);
                    var decimalesmonedas = Funciones.Qint(Request.Params["decimalesmonedas"]);

                    var serviceMonedas = FService.Instance.GetService(typeof(MonedasModel), ContextService);
                    var monedaObj      = serviceMonedas.get(moneda) as MonedasModel;
                    editItem.Decimalesmonedas = decimalesmonedas ?? 0;
                    editItem.Id    = item.Id;
                    editItem.Orden = item.Orden;
                    editItem.Fkseccionesanaliticas = item.Fkseccionesanaliticas;
                    editItem.Fkcuentas             = item.Fkcuentas;
                    editItem.Codigocomentario      = item.Codigocomentario;
                    editItem.Comentario            = item.Comentario;


                    editItem.Esdebe = (short)(item.Haber.HasValue && item.Haber != 0 ? -1 : 1);

                    if (editItem.Debe != item.Debe)
                    {
                        editItem.Debe = item.Debe;
                    }

                    if (editItem.Haber != item.Haber)
                    {
                        editItem.Haber = item.Haber;
                    }

                    if (item.Esdebe == -1)
                    {
                        editItem.Importe = Decimal.Round(item.Haber ?? 0, item.Decimalesmonedas ?? 0);
                    }
                    else
                    {
                        editItem.Importe = Decimal.Round(item.Debe ?? 0, item.Decimalesmonedas ?? 0);
                    }

                    //editItem.Esdebe = editItem.Esdebe;
                    //editItem.Importe = Decimal.Round(item.Importe , monedaObj.Decimales);
                    editItem.Decimalesmonedas = item.Decimalesmonedas;

                    editItem.Importemonedadocumento = item.Importemonedadocumento;
                    editItem.Conciliado             = item.Conciliado;
                    // var service = FService.Instance.GetService(typeof(MovsModel), ContextService) as MovsService;
                    // Session[sessiontotales] = service.Recalculartotales(model,  monedaObj.Decimales);

                    Session[session] = model;
                }
            }
            catch (ValidationException)
            {
                throw;
            }

            return(PartialView("_Movslin", model));
        }
        public ActionResult MovsLinAddNew([ModelBinder(typeof(DevExpressEditorsBinder))] MovsLinModel item)
        {
            var model = Session[session] as List <MovsLinModel> ?? new List <MovsLinModel>();

            try
            {
                if (ModelState.IsValid)
                {
                    var max = model.Any() ? model.Max(f => f.Id) : 0;
                    item.Id = max + 1;
                    var moneda = Funciones.Qnull(Request.Params["fkmonedas"]);

                    var serviceMonedas = FService.Instance.GetService(typeof(MonedasModel), ContextService);
                    var serviceCuentas = FService.Instance.GetService(typeof(CuentasModel), ContextService);

                    if (serviceCuentas.exists(item.Fkcuentas))
                    {
                        //var configuracionAplicacion = appService.GetConfiguracion();
                        //if (configuracionAplicacion.ComprasUsarCanal && configuracionAplicacion.ComprasCanalObligatorio && string.IsNullOrEmpty(item.Canal))
                        //{
                        //    ModelState.AddModelError("Canal", string.Format(General.ErrorCampoObligatorio, Movs.Canal));
                        //}
                        //else
                        //{
                        var monedaObj = serviceMonedas.get(moneda) as MonedasModel;

                        item.Esdebe = (short)(item.Haber.HasValue && item.Haber != 0 ? -1 : 1);
                        if (item.Esdebe == -1)
                        {
                            item.Importe = Decimal.Round(item.Haber ?? 0, monedaObj.Decimales);
                        }
                        else
                        {
                            item.Importe = Decimal.Round(item.Debe ?? 0, monedaObj.Decimales);
                        }


                        model.Add(item);

                        Session[session] = model;
                        // var service = FService.Instance.GetService(typeof(MovsModel), ContextService) as MovsService;
                        // Session[sessiontotales] = service.Recalculartotales(model, monedaObj.Decimales);



                        // }
                    }
                    else
                    {
                        ModelState.AddModelError("Fkcuentas", Cuentas.ErrorCuentaExistente);
                    }
                }
            }
            catch (ValidationException)
            {
                model.Remove(item);
                throw;
            }



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