Llamar metodo de una clase desde otra en asp.net

Iniciado por jabedoya, 26 Mayo 2014, 18:56 PM

0 Miembros y 1 Visitante están viendo este tema.

jabedoya

Hola a todos

Necesito hacer lo siguiente tengo un metodo en un clase que se llama enviar pedidos que se invoca a traves de un menu donde esta la ocpion de enviar un pedido.

Código (asp) [Seleccionar]
  public void enviarPedidos(string strIdPedidos)
   {
       if (strIdPedidos == "")
       {
           tblMensajes.Visible = true;
           lblMensaje.Visible = true;
           lblMensaje.Text = "Debe seleccionar al menos un pedido.";
           return;
       }
   
       DataSet dsDevoluciones = new DataSet();
       IPedidos objPedidos = Factory.CreatePedidos();
       Pedidos Pedidos_VO = new Pedidos();
       Pedidos_VO.idCliente = mpage.Cliente;
       Hashtable htUsuario = (Hashtable)Session["parametros"];
       string varnit = htUsuario["VarNitCliente"].ToString();
       string varnombrecliente = htUsuario["varNombreCliente"].ToString();
       string varNombreUsuario = htUsuario["varNombreUsuario"].ToString();
       idUsuarioLogeado = int.Parse(htUsuario["lngIdUsuario"].ToString());
       Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;

       Pedidos_VO.idEstado = ConfigurationManager.AppSettings["enviado"];
       hddPedido.Value = strIdPedidos;

     
       int pedidosOk = 0;
       string pedidosError = "";
       string strPedidosOK = "";    
       string[] arrayPedidos = strIdPedidos.Split(',');
       for(int I=0;I< arrayPedidos.Length;I++){
           Pedidos_VO.idPedido = arrayPedidos[I].ToString();

         switch (objPedidos.modificarEstadoPedidos(Pedidos_VO)) {
               case 1:
                   pedidosOk = pedidosOk + 1;
                   strPedidosOK = strPedidosOK + arrayPedidos[I].ToString() +",";
                 break;
               default :
                   pedidosError = arrayPedidos[I].ToString() + " ";
                   break;
           }            
       }
       if (strPedidosOK != "")
           strPedidosOK = strPedidosOK.Substring(0, strPedidosOK.Length - 1);
       
       tblMensajes.Visible = true;
       lblMensaje.Visible = true;
       lblMensaje.Text = "Se enviaron " + pedidosOk + " pedido(s) satisfactoriamente.";
       if (pedidosError.Length > 0)
       {
           lblMensaje.Text = " Los pedidos " + pedidosError + ", No pudieron ser enviados. ";
       }
       CuPed.LimpiarConsulta();
       CuPed.Visible = false;
       //envio de correos a las vendedoras  
       string servidorSmtp = ConfigurationManager.AppSettings["SmtpServer"];
       string strRuta = "../" + ConfigurationManager.AppSettings["dirPedidos"];
       strRuta = strRuta + "/NS" + DateTime.Now.Day.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Year.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + "-" + mpage.Cliente + ".txt";
       Pedidos_VO.idPedido = strPedidosOK;
       DataTable dt = new DataTable();
     
 
       //Requerimiento 6: PEDIDOS POR LINEA DE PRODUCTO - Archivos creados, la siguiente lista generica almacena los archivos creados
       List<string> Archivos_Creados = new List<string>();
       Archivos_Creados = objPedidos.crearArchivo(Pedidos_VO, Server.MapPath(strRuta), Convert.ToInt32(mpage.Planos_XLinea_Producto)); //Genera planos por línea de producto
       MailMessage MiCorreo = new MailMessage();        
       MailAddress from = new MailAddress(ConfigurationManager.AppSettings["correoSIP"]);
       MiCorreo.From = from;
       MiCorreo.To.Add(mpage.correoVendedor);
       MiCorreo.To.Add(ConfigurationManager.AppSettings["correoASSUL"]);
       MiCorreo.Subject = "Pedidos enviados desde nuevoSIP";
       try
       {
         foreach (string Archivo in Archivos_Creados)
         {
           string strRuta_Inicial = "../" + ConfigurationManager.AppSettings["dirPedidos"] + "/";
           int iNS = Archivo.IndexOf("NS");
           string strRuta_Final = strRuta_Inicial + Archivo.Substring(iNS,Archivo.Length-iNS);
           MiCorreo.Attachments.Add(new Attachment(Server.MapPath(strRuta_Final)));
         }      
       }
       catch (Exception ex)
       {
         Response.Write(ex.ToString());
       }
       //MiCorreo.IsBodyHtml = true;


       MiCorreo.Body = "El cliente " + varnit.ToString() + "-" + varnombrecliente.ToString() + " usuario - "+ varNombreUsuario + " ha enviado " + pedidosOk.ToString() + " pedidos : " + strPedidosOK;
     
       SmtpClient smtp = new SmtpClient();
       smtp.Host = servidorSmtp;        
       smtp.Send(MiCorreo);
       
       string[] arreglo_pedidos = strPedidosOK.Split(',');
       foreach (string i in arreglo_pedidos)
       {
         //CuActa.generarActa(int.Parse((i)), "EN", dsDevoluciones, "");
         CuActa_IE.generarActa_IE(int.Parse((i)), "EN", dsDevoluciones, "");
       }
   }


Pero tengo otra clase que se llama guardar pedido; necesito que cuando el usuario le de clic en guardar le muestre un mensaje donde le diga que si desea enviar su pedido y lo direccione al metodo de la clase enviar con el parametro del numero del pedido.

Adjunto el codigo de la clase guardar

Código (asp) [Seleccionar]
 protected void guardarPedido()
 {
   //veritem= 1;
   //txtSubtotal.Text = hddSubtotal;
   //txtIVA.Text = hddTotalIVA.Value;
   //txtTotal.Text = hddTotal.Value;
   DataSet dsDevoluciones = new DataSet();
   DataSet dsPedido = new DataSet("Pedido");
   DataTable dtProducto = new DataTable("Productos");
   dtProducto.Columns.Add("IdProducto", typeof(string));
   dtProducto.Columns.Add("Cantidad", typeof(int));
   dtProducto.Columns.Add("lngPromProducto", typeof(int));
   dsPedido.Tables.Add(dtProducto);

   for (int ireg = 0; ireg <= rpLinea.Items.Count - 1; ireg++)
   {
     Repeater tmp = (Repeater)rpLinea.Items[ireg].FindControl("rpProductos");
     for (int i = 0; i <= tmp.Items.Count - 1; i++)
     {
       if (((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value.Trim() != "")
       {
         //if (veritem == 1)
         //{
         //  ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = true;
         //}
         //else
         //{
         //  ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = false;
         //}

         DataRow drdatos = dtProducto.NewRow();
         drdatos["IdProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("IdCod")).InnerText;
         drdatos["Cantidad"] = int.Parse(((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value);
         drdatos["lngPromProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("Td1")).InnerText;
         dtProducto.Rows.Add(drdatos);
       }
     }
   }
   Pedidos Pedidos_VO = new Pedidos();
 
   Hashtable htUsuario = (Hashtable)Session["parametros"];
   idUsuarioLogeado = int.Parse(htUsuario["lngIdUsuario"].ToString());
   Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;

   if (mpage.pptoValor || mpage.pptoCantidad ||  mpage.pptoValorL)
   {
     /*Capturo el perido ppto*/
     DateTimeFormatInfo myDTFI = new CultureInfo("es-ES", false).DateTimeFormat;
     myDTFI.ShortDatePattern = "dd/MM/yyyy";
     myDTFI.DateSeparator = "/";
     DataSet dsDetallePeriodoPresupuesto;
     if (hddOperacion.Value == "I")
       dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(System.DateTime.Now.Date);
     else
       dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(Convert.ToDateTime(hddFechaPedido.Value, myDTFI));

     if (dsDetallePeriodoPresupuesto.Tables[0].Rows.Count <= 0)
     {
       lblMensaje.Text = "No hay presupuesto asignado. Consulte al administrador del sistema.";
       lblMensaje.Visible = true;
       tblMensajes.Visible = true;
       tblBuscar.Visible = false;
       tblLista.Visible = false;
     }
     else
     {
       Pedidos_VO.IdDetallePeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdDetallePeriodo"].ToString());
       Pedidos_VO.IdPeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdPeriodo"].ToString());
     }
   }

   string[] idJerarquia ={ "", "" };
   Pedidos_VO.fechaPedidoIni = System.DateTime.Now.Date;
   Pedidos_VO.pptoAcumula = mpage.pptoAcumula ? "1" : "0";

   if (mpage.pptoValor)
   {
     Pedidos_VO.manejaPpto = "V";
   }
   else
   {
     Pedidos_VO.manejaPpto = "N";
   }
   if (mpage.pptoValorL)
   {
     Pedidos_VO.manejaPpto = "L";
   }
   if (mpage.pptoCantidad)
   {
       Pedidos_VO.manejaPpto = "C";
   }

   if (mpage.pptoIVA)
     Pedidos_VO.PptoIVA = "1";
   else
     Pedidos_VO.PptoIVA = "0";


   Pedidos_VO.idTipoJerarquia = mpage.nivelControlPpto;

   switch (mpage.nivelControlPpto)
   {
     
     case 1:
       if (hddOperacion.Value == "I")
       {
         idJerarquia = mpage.ccostos.SelectedItem.Value.Split('|');
         Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());

       }
       else
       {
         Pedidos_VO.idJerarquia = int.Parse(hddCcostos.Value);

       }
       break;
     
     case 2:
       if (hddOperacion.Value == "I")
       {
         idJerarquia = mpage.division.SelectedItem.Value.Split('|');
         Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());

       }
       else
       {
         Pedidos_VO.idJerarquia = int.Parse(hddDivision.Value);

       }
       break;
     
     case 3:
       if (hddOperacion.Value == "I")
       {
         idJerarquia = mpage.regional.SelectedItem.Value.Split('|');
         Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
         Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;

       }
       else
       {
         Pedidos_VO.idJerarquia = int.Parse(hddRegional.Value);
         Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;

       }
       break;
     
     case 4://el presupuesto es por empresa
       Pedidos_VO.idJerarquia = mpage.Cliente;
       Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;

       break;
   }


   Pedidos_VO.idCliente = mpage.Cliente;
   IPedidos objPedidos = Factory.CreatePedidos();

   if (mpage.excederPpto)
     Pedidos_VO.ExcederPpto = "1";
   else
     Pedidos_VO.ExcederPpto = "0";

   if (mpage.autorizarPpto)
     Pedidos_VO.AutorizarPpto = "1";
   else
     Pedidos_VO.AutorizarPpto = "0";

   if (chkPedTerminado.Checked)
     Pedidos_VO.PedidoTerminado = "1";


   Pedidos_VO.pedidoExtemporaneo = chkPedExtemporaneo.Checked ? "1" : "0";
   Pedidos_VO.PedidoUrgente = chkPedUrgente.Checked ? "1" : "0";
   Pedidos_VO.GravadoIva = hddCcGravadoIVA.Value;
   Pedidos_VO.observaciones = txtObservacion.Text;
   Pedidos_VO.ordencompra = txtordencompra.Text;
   bool bolGuardado = true;
   string[] Resultado_guardarlinea;
   IPptoValorLinea objPptoValorLinea = Factory.CreatePptoValorL();
   PptpValorLinea PptoValorLinea_VO = new PptpValorLinea();
   bool bolguardarlinea = true;
   if (mpage.pptoValorL)
   {
     foreach (GridViewRow rowItem_g in gvppto.Rows)
     {
       int valor_ = rowItem_g.RowIndex;
       PptoValorLinea_VO.idCliente = mpage.Cliente;
       PptoValorLinea_VO.idlinea = Convert.ToInt32(gvppto.Rows[valor_].Cells[0].Text);
       PptoValorLinea_VO.pptoAsignado = int.Parse(gvppto.Rows[valor_].Cells[2].Text);
       PptoValorLinea_VO.pptoejecutado = int.Parse(gvppto.Rows[valor_].Cells[3].Text);
       PptoValorLinea_VO.subtotal = int.Parse(gvppto.Rows[valor_].Cells[4].Text);
       PptoValorLinea_VO.total = int.Parse(gvppto.Rows[valor_].Cells[6].Text);
       PptoValorLinea_VO.periodo = Convert.ToInt32(gvppto.Rows[valor_].Cells[7].Text);
       PptoValorLinea_VO.tperiodo = int.Parse(gvppto.Rows[valor_].Cells[8].Text);
       PptoValorLinea_VO.centro = int.Parse(gvppto.Rows[valor_].Cells[9].Text);

       if (mpage.pptoValorL)
         PptoValorLinea_VO.chrManejaPpt = "L";


       else
         PptoValorLinea_VO.chrManejaPpt = "N";


       if (mpage.excederPpto)
         PptoValorLinea_VO.ExcederPpt = "1";
       else
         PptoValorLinea_VO.ExcederPpt = "0";

       if (PptoValorLinea_VO.subtotal > 0)
       {
         if (PptoValorLinea_VO.pptoAsignado <= PptoValorLinea_VO.subtotal && PptoValorLinea_VO.pptoAsignado >= PptoValorLinea_VO.pptoejecutado)
         {
           bolGuardado = false;
           lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuest; favor revise los valores totales de cada linea.";
           bolguardarlinea = false;
         }
         lblMensaje.Visible = true;
         tblMensajes.Visible = true;
       }
     }

     if (bolguardarlinea)
     {

     }
   }
 
     
   string[] Resultado;

   if (bolGuardado)
   {
     if (dsPedido.Tables[0].Rows.Count > 0)
     {
       if (hddOperacion.Value == "I")
       {
         string[] idCcostos = mpage.ccostos.SelectedItem.Value.Split('|');
         Pedidos_VO.idCCostos = int.Parse(idCcostos[1].ToString());
         Resultado = objPedidos.guardarPedidos(Pedidos_VO, dsPedido, "I");
         if (mpage.pptoValorL)
         {
           Resultado_guardarlinea = objPedidos.guardarPedidolinea(PptoValorLinea_VO, dsPedido, "I");
         }
         //Resultado[0] numero del pedido; Resultado[1] si necesita autoraizacion o si no pudo ser creado
         if (Resultado[0] != "0" && Resultado[1] == "0")
         {
           lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString();
           //Requerimiento 2.0
           hddPedido.Value = Resultado[0];

           if (chkPedUrgente.Checked)
           {
             sPedidoUrgente = "1";
           }
           else
           {
             sPedidoUrgente = "0";
           }
           CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "EM", dsDevoluciones, sPedidoUrgente);
           CuActa_nueva.generarActa_nueva(int.Parse(hddPedido.Value), "PROMEDIO", dsDevoluciones, sPedidoUrgente);
           CuActa.Visible = false;
         }
         else

           if (Resultado[1] == "1")
             lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString() + ", pero requiere autorización de presupuesto.";
           else
             if (Resultado[1] == "2")
             {
               bolGuardado = false;
               lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuesto.";
             }
         lblMensaje.Visible = true;
         tblMensajes.Visible = true;
       }
       else
       {
         Pedidos_VO.idCCostos = int.Parse(hddCcostos.Value);
         Pedidos_VO.IdPerfilUsuario = mpage.idPerfil;
         Pedidos_VO.idPedido = lblNumPedido.Text;
         switch (objPedidos.modificarPedido(Pedidos_VO, dsPedido))
         {

           case 0:
             hddPedido.Value = lblNumPedido.Text;
             lblMensaje.Text = "El pedido fue modificado correctamente.";
             CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "MO", dsDevoluciones, sPedidoUrgente);
             break;

           case 1:
             lblMensaje.Text = "El pedido fue modificado, pero requiere autoraización de presupuesto.";
             break;

           case 2:
             bolGuardado = false;
             lblMensaje.Text = "El pedido no fue modificado, debido a que sobrepasa el presupuesto.";
             break;
         }
         lblMensaje.Visible = true;
         tblMensajes.Visible = true;

       }
     }
     else
     {
       bolGuardado = false;
       lblMensaje.Text = "El pedido no fue guardado, debido a que no hay detalle válido";
       lblMensaje.Visible = true;
       tblMensajes.Visible = true;
     }
   }
   else
   {
     mpage.filtro.Visible = false;
     tblFiltroPed.Visible = true;
     btnAdicionar.Visible = false;
     btnGuardar.Visible = true;
     tblBuscar.Visible = true;
   }



   if (bolGuardado)
   {
     /*limpia los campos*/
     tblLista.Visible = false;
     rpLinea.DataSource = null;
     tblBuscar.Visible = false;
     tblFiltroPed.Visible = false;
     ViewState["htLista"] = null;
   }
   else
   {            
     mpage.filtro.Visible = false;
     tblFiltroPed.Visible = true;
     btnAdicionar.Visible = false;
     btnGuardar.Visible = true;
     tblBuscar.Visible = true;
   }

   hddClicGuardar.Value = "";
 }


Agradezco me ayuden con una pronta respuesta.