public ActionResult Crear(Factura factura)
        {
            if (!ModelState.IsValid)
            {
                LlenarControles();
                return PartialView(factura);
            }
            factura.Identifier = Guid.NewGuid();
            factura.UsuarioId = UsuarioActual.Usuario.UsuarioId;
            factura.FechaCreacion = DateTime.Now;

            var maxikiosco = Uow.MaxiKioscos.Obtener(factura.MaxiKioscoId);
            var fact = Uow.Facturas.Listado(f => f.MaxiKiosco).Where(f => f.MaxiKioscoId == factura.MaxiKioscoId && f.AutoNumero.StartsWith("WEB_")).OrderBy(f => f.FacturaId).ToList();
            if (fact.Any())
            {
                var fact2 = fact.Last();
                var primerParte = String.Format("WEB_{0}", maxikiosco.Abreviacion);
                var numero = Convert.ToInt32(fact2.AutoNumero.Replace(primerParte, ""));
                factura.AutoNumero = String.Format("{0}{1}", primerParte, numero + 1);
            }
            else
            {

                factura.AutoNumero = String.Format("WEB_{0}1", maxikiosco.Abreviacion);
            }

            Uow.Facturas.Agregar(factura);
            Uow.Commit();

            return new JsonResult() { Data = new { exito = true }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        public ActionResult Editar(Factura factura)
        {
            if (!ModelState.IsValid)
            {
                LlenarControles();
                return PartialView(factura);
            }

            Uow.Facturas.Modificar(factura);
            Uow.Commit();

            return new JsonResult() { Data = new { exito = true }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            errorProvider1.Dispose();

            var valido = Validacion.Validar(errorProvider1, new List<object>
                                                  {
                                                      txtFacturaNro,
                                                      txtImporteTotal,
                                                      ddlProveedor
                                                  });
            if (valido)
            {

                if (Factura != null)
                {
                    //verifico que ya no haya una factura con el mismo numero y proveedor
                    var existente = FacturaRepository.Obtener(f => f.FacturaNro == FacturaNro
                                                           && f.ProveedorId == ProveedorId
                                                           && f.FacturaId != Factura.FacturaId);
                    if (existente != null)
                    {
                        MessageBox.Show("Ya existe una factura para el proveedor seleccionado con el mismo número");
                        this.DialogResult = DialogResult.None;
                    }
                    else
                    {
                        Factura.FacturaNro = FacturaNro;
                        Factura.ImporteTotal = ImporteTotal;
                        Factura.ProveedorId = ProveedorId;
                        //Factura.UsuarioId = UsuarioActual.UsuarioId;
                        FacturaRepository.Modificar(Factura);
                        FacturaRepository.Commit();
                        ExportarKiosco();
                    }
                }
                else
                {
                    var existente = FacturaRepository.Obtener(f => f.FacturaNro == FacturaNro
                                                           && f.ProveedorId == ProveedorId);
                    if (existente != null)
                    {
                        MessageBox.Show("Ya existe una factura para el proveedor seleccionado con el mismo número");
                        this.DialogResult = DialogResult.None;
                    }
                    else
                    {
                        Factura = new Factura()
                        {
                            CierreCajaId = UsuarioActual.CierreCajaIdActual,
                            Identifier = Guid.NewGuid(),
                            FacturaNro = FacturaNro,
                            ImporteTotal = ImporteTotal,
                            ProveedorId = ProveedorId,
                            MaxiKioscoId = AppSettings.MaxiKioscoId,
                            Fecha = Fecha,
                            AutoNumero = GenerarAutonumerico(),
                            UsuarioId = UsuarioActual.UsuarioId,
                            FechaCreacion = DateTime.Now
                        };
                        FacturaRepository.Agregar(Factura);
                        FacturaRepository.Commit();

                        ExportarKiosco();
                    }
                }
            }
            else
            {
                this.DialogResult = DialogResult.None;
            }
        }