public Empresa ObtenerEmpresa(string RUC)
        {
            OleDbConnection obj_Conexion = new OleDbConnection();
            OleDbCommand obj_Comando = new OleDbCommand();
            OleDbDataAdapter obj_Adapter = new OleDbDataAdapter();
            DataSet obj_Data = new DataSet();
            obj_Conexion.ConnectionString = "Server=VIRTUALXP-50904\\SQL2008; Provider=SQLOLEDB; User ID=sa; Initial Catalog=Ventas; password=royal2008;";
            obj_Conexion.Open();
            obj_Comando.Connection = obj_Conexion;
            obj_Comando.CommandText = "Select * From Contribuyentes Where Ruc ='" + RUC + "'";
            obj_Comando.CommandType = CommandType.Text;
            obj_Adapter.SelectCommand = obj_Comando;
            obj_Adapter.Fill(obj_Data);
            obj_Conexion.Close();

            Empresa empresa = new Empresa(); ;
            foreach (var dr_Fila in obj_Data.Tables[0].Rows)
            {
                DataRow fila = (DataRow)dr_Fila;
                empresa.RUC = fila[0].ToString();
                empresa.nombrecomercial = fila[1].ToString();
                empresa.direccion = fila[5].ToString();
                empresa.telefono = fila[6].ToString();
                empresa.Estado = fila[3].ToString();
            }

            return empresa;
        }
        public ICollection<Empresa> ConsultarEmpresa(string RUC, string nombreComercial)
        {
            OleDbConnection obj_Conexion = new OleDbConnection();
            OleDbCommand obj_Comando = new OleDbCommand();
            OleDbDataAdapter obj_Adapter = new OleDbDataAdapter();
            DataSet obj_Data = new DataSet();
            obj_Conexion.ConnectionString = "Server=VIRTUALXP-50904\\SQL2008; Provider=SQLOLEDB; User ID=sa; Initial Catalog=Ventas; password=royal2008;";
            obj_Conexion.Open();
            obj_Comando.Connection = obj_Conexion;
            if (RUC == null && nombreComercial == null)
                obj_Comando.CommandText = "Select * From Contribuyentes";
            else if (RUC != null && nombreComercial == null)
                obj_Comando.CommandText = "Select * From Contribuyentes Where Ruc Like '%" + RUC + "%'";
            else
                obj_Comando.CommandText = "Select * From Contribuyentes Where RazonSocial Like '%" + nombreComercial + "%'";
            obj_Comando.CommandType = CommandType.Text;
            obj_Adapter.SelectCommand = obj_Comando;
            obj_Adapter.Fill(obj_Data);
            obj_Conexion.Close();

            List<Empresa> empresas = new List<Empresa>();
            Empresa empresa;
            foreach (var dr_Fila in obj_Data.Tables[0].Rows)
            {
                DataRow fila = (DataRow)dr_Fila;
                empresa = new Empresa();
                empresa.RUC = fila[0].ToString();
                empresa.nombrecomercial = fila[1].ToString();
                empresa.Estado = fila[3].ToString();
                empresas.Add(empresa);
            }

            return empresas;
        }
 public void Eliminar(Empresa itemEliminar)
 {
     using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
     {
         Empresa empresa = (from s in db.Empresa
                                where s.Codigo == itemEliminar.Codigo
                                select s).Single();
         db.Empresa.Remove(empresa);
         db.SaveChanges();
     }
 }
 /// <summary>
 /// Crear Empresa
 /// </summary>
 /// <param name="EmpresaACrear">Dominio Empresa</param>
 /// <returns>Dominio Empresa</returns>
 public Empresa Crear(Empresa EmpresaACrear)
 {
     using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
     {
         int? codigo = db.Empresa.Select(l => (int?)l.Codigo).Max();
         EmpresaACrear.Codigo = (codigo ?? 0) + 1;
         db.Empresa.Add(EmpresaACrear);
         db.SaveChanges();
     }
     return Obtener(EmpresaACrear.Codigo);
 }
 public ActionResult Delete(int id, Empresa EmpresaAEliminar)
 {
     try
     {
         AdminService.EliminarEmpresa(id);
         return RedirectToAction("Index");
     }
     catch
     {
         return View();
     }
 }
 public ActionResult Create(Empresa EmpresaACrear)
 {
     try
     {
         AdminService.RegistrarEmpresa(EmpresaACrear.Codigo, EmpresaACrear.RUC, EmpresaACrear.nombrecomercial, EmpresaACrear.direccion, EmpresaACrear.telefono, EmpresaACrear.Estado);
         return RedirectToAction("Index");
     }
     catch
     {
         return View();
     }
 }
 public Empresa Modificar(Empresa itemAModificar)
 {
     using (EFContext db = new EFContext(ConexionUtil.ObtenerCadena()))
     {
         Empresa empresa = db.Empresa.Single(l => l.Codigo == itemAModificar.Codigo);
         empresa.RUC = itemAModificar.RUC;
         empresa.nombrecomercial = itemAModificar.nombrecomercial;
         empresa.direccion = itemAModificar.direccion;
         empresa.telefono = itemAModificar.telefono;
         empresa.Estado = itemAModificar.Estado;
         db.SaveChanges();
         return empresa;
     }
 }
        public Empresa ModificarEmpresa(int codigoEmpresa, string RUC, string nombrecomercial, string direccion, string telefono, string estado)
        {
            Empresa beEmpresa = new Empresa();
            beEmpresa.RUC = RUC;
            beEmpresa.nombrecomercial = nombrecomercial;
            beEmpresa.direccion = direccion;
            beEmpresa.telefono = telefono;
            beEmpresa.Estado = estado;

            return empresaDAO.Modificar(beEmpresa);
        }
 public ActionResult Edit(int id, Empresa EmpresaAModificar)
 {
     try
     {
         AdminService.ModificarEmpresa(id, EmpresaAModificar.RUC, EmpresaAModificar.nombrecomercial, EmpresaAModificar.direccion, EmpresaAModificar.telefono, EmpresaAModificar.Estado);
         return RedirectToAction("Index");
     }
     catch
     {
         return View();
     }
 }
 public ActionResult State(string RUC)
 {
     ServicioSunat.Empresas servicio = new ServicioSunat.Empresas();
     ServicioSunat.Empresa modelo = servicio.ObtenerEmpresa(RUC);
     Empresa empresa = new Empresa();
     empresa = new Empresa();
     empresa.Codigo = modelo.Codigo;
     empresa.RUC = modelo.RUC;
     empresa.nombrecomercial = modelo.nombrecomercial;
     empresa.direccion = modelo.direccion;
     empresa.telefono = modelo.telefono;
     empresa.Estado = modelo.Estado;
     return View(empresa);
 }
        public ActionResult FindInfocorp(Empresa form)
        {
            HttpWebRequest request = WebRequest.Create("http://*****:*****@".\private$\Empresas";
            if (!MessageQueue.Exists(rutaEmpresas))
                MessageQueue.Create(rutaEmpresas);

            MessageQueue colaEmpresas = new MessageQueue(rutaEmpresas);

            Message mensaje = new Message();
            mensaje.Label = "Estado Empresa Infocorp";
            mensaje.Body = new Empresa() { RUC = form.RUC, estadoInfocorp = estado };
            colaEmpresas.Send(mensaje);

            return View("FindInfocorp");
        }
 public ActionResult Find(Empresa form)
 {
     ServicioSunat.Empresas servicio = new ServicioSunat.Empresas();
     ICollection<ServicioSunat.Empresa> modelo = servicio.ConsultarEmpresa(form.RUC, form.nombrecomercial);
     List<Empresa> empresas = new List<Empresa>();
     Empresa empresa;
     foreach (var item in modelo)
     {
         empresa = new Empresa();
         empresa.RUC = item.RUC;
         empresa.nombrecomercial = item.nombrecomercial;
         empresa.Estado = item.Estado;
         empresas.Add(empresa);
     }
     return View("FindDetail", empresas);
 }
        public ActionResult CreateIndex(Empresa form)
        {
            string rutaColaEmpresas = @".\private$\Empresas";

            if (!MessageQueue.Exists(rutaColaEmpresas))
                MessageQueue.Create(rutaColaEmpresas);

            MessageQueue colaEmpresas = new MessageQueue(rutaColaEmpresas);
            colaEmpresas.Formatter = new XmlMessageFormatter(new Type[] { typeof(Empresa) });

            Message mensajeEmpresa = colaEmpresas.Receive();
            Empresa empresa = (Empresa)mensajeEmpresa.Body;
            VentaPauta venta = new VentaPauta();
            venta.empresaRUC = empresa.RUC;

            if (empresa.RUC == "123456")
            {
                return View("CreateDetail", venta);
            }
            else
            {
                return View("CreateIndex");
            }
        }