Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: jabedoya en 26 Mayo 2014, 18:56 pm



Título: Llamar metodo de una clase desde otra en asp.net
Publicado por: jabedoya en 26 Mayo 2014, 18:56 pm
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
  1.   public void enviarPedidos(string strIdPedidos)
  2.    {
  3.        if (strIdPedidos == "")
  4.        {
  5.            tblMensajes.Visible = true;
  6.            lblMensaje.Visible = true;
  7.            lblMensaje.Text = "Debe seleccionar al menos un pedido.";
  8.            return;
  9.        }
  10.  
  11.        DataSet dsDevoluciones = new DataSet();
  12.        IPedidos objPedidos = Factory.CreatePedidos();
  13.        Pedidos Pedidos_VO = new Pedidos();
  14.        Pedidos_VO.idCliente = mpage.Cliente;
  15.        Hashtable htUsuario = (Hashtable)Session["parametros"];
  16.        string varnit = htUsuario["VarNitCliente"].ToString();
  17.        string varnombrecliente = htUsuario["varNombreCliente"].ToString();
  18.        string varNombreUsuario = htUsuario["varNombreUsuario"].ToString();
  19.        idUsuarioLogeado = int.Parse(htUsuario["lngIdUsuario"].ToString());
  20.        Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
  21.  
  22.        Pedidos_VO.idEstado = ConfigurationManager.AppSettings["enviado"];
  23.        hddPedido.Value = strIdPedidos;
  24.  
  25.  
  26.        int pedidosOk = 0;
  27.        string pedidosError = "";
  28.        string strPedidosOK = "";    
  29.        string[] arrayPedidos = strIdPedidos.Split(',');
  30.        for(int I=0;I< arrayPedidos.Length;I++){
  31.            Pedidos_VO.idPedido = arrayPedidos[I].ToString();
  32.  
  33.          switch (objPedidos.modificarEstadoPedidos(Pedidos_VO)) {
  34.                case 1:
  35.                    pedidosOk = pedidosOk + 1;
  36.                    strPedidosOK = strPedidosOK + arrayPedidos[I].ToString() +",";
  37.                  break;
  38.                default :
  39.                    pedidosError = arrayPedidos[I].ToString() + " ";
  40.                    break;
  41.            }            
  42.        }
  43.        if (strPedidosOK != "")
  44.            strPedidosOK = strPedidosOK.Substring(0, strPedidosOK.Length - 1);
  45.  
  46.        tblMensajes.Visible = true;
  47.        lblMensaje.Visible = true;
  48.        lblMensaje.Text = "Se enviaron " + pedidosOk + " pedido(s) satisfactoriamente.";
  49.        if (pedidosError.Length > 0)
  50.        {
  51.            lblMensaje.Text = " Los pedidos " + pedidosError + ", No pudieron ser enviados. ";
  52.        }
  53.        CuPed.LimpiarConsulta();
  54.        CuPed.Visible = false;
  55.        //envio de correos a las vendedoras  
  56.        string servidorSmtp = ConfigurationManager.AppSettings["SmtpServer"];
  57.        string strRuta = "../" + ConfigurationManager.AppSettings["dirPedidos"];
  58.        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";
  59.        Pedidos_VO.idPedido = strPedidosOK;
  60.        DataTable dt = new DataTable();
  61.  
  62.  
  63.        //Requerimiento 6: PEDIDOS POR LINEA DE PRODUCTO - Archivos creados, la siguiente lista generica almacena los archivos creados
  64.        List<string> Archivos_Creados = new List<string>();
  65.        Archivos_Creados = objPedidos.crearArchivo(Pedidos_VO, Server.MapPath(strRuta), Convert.ToInt32(mpage.Planos_XLinea_Producto)); //Genera planos por línea de producto
  66.        MailMessage MiCorreo = new MailMessage();        
  67.        MailAddress from = new MailAddress(ConfigurationManager.AppSettings["correoSIP"]);
  68.        MiCorreo.From = from;
  69.        MiCorreo.To.Add(mpage.correoVendedor);
  70.        MiCorreo.To.Add(ConfigurationManager.AppSettings["correoASSUL"]);
  71.        MiCorreo.Subject = "Pedidos enviados desde nuevoSIP";
  72.        try
  73.        {
  74.          foreach (string Archivo in Archivos_Creados)
  75.          {
  76.            string strRuta_Inicial = "../" + ConfigurationManager.AppSettings["dirPedidos"] + "/";
  77.            int iNS = Archivo.IndexOf("NS");
  78.            string strRuta_Final = strRuta_Inicial + Archivo.Substring(iNS,Archivo.Length-iNS);
  79.            MiCorreo.Attachments.Add(new Attachment(Server.MapPath(strRuta_Final)));
  80.          }      
  81.        }
  82.        catch (Exception ex)
  83.        {
  84.          Response.Write(ex.ToString());
  85.        }
  86.        //MiCorreo.IsBodyHtml = true;
  87.  
  88.  
  89.        MiCorreo.Body = "El cliente " + varnit.ToString() + "-" + varnombrecliente.ToString() + " usuario - "+ varNombreUsuario + " ha enviado " + pedidosOk.ToString() + " pedidos : " + strPedidosOK;
  90.  
  91.        SmtpClient smtp = new SmtpClient();
  92.        smtp.Host = servidorSmtp;        
  93.        smtp.Send(MiCorreo);
  94.  
  95.        string[] arreglo_pedidos = strPedidosOK.Split(',');
  96.        foreach (string i in arreglo_pedidos)
  97.        {
  98.          //CuActa.generarActa(int.Parse((i)), "EN", dsDevoluciones, "");
  99.          CuActa_IE.generarActa_IE(int.Parse((i)), "EN", dsDevoluciones, "");
  100.        }
  101.    }
  102.  

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
  1.  protected void guardarPedido()
  2.  {
  3.    //veritem= 1;
  4.    //txtSubtotal.Text = hddSubtotal;
  5.    //txtIVA.Text = hddTotalIVA.Value;
  6.    //txtTotal.Text = hddTotal.Value;
  7.    DataSet dsDevoluciones = new DataSet();
  8.    DataSet dsPedido = new DataSet("Pedido");
  9.    DataTable dtProducto = new DataTable("Productos");
  10.    dtProducto.Columns.Add("IdProducto", typeof(string));
  11.    dtProducto.Columns.Add("Cantidad", typeof(int));
  12.    dtProducto.Columns.Add("lngPromProducto", typeof(int));
  13.    dsPedido.Tables.Add(dtProducto);
  14.  
  15.    for (int ireg = 0; ireg <= rpLinea.Items.Count - 1; ireg++)
  16.    {
  17.      Repeater tmp = (Repeater)rpLinea.Items[ireg].FindControl("rpProductos");
  18.      for (int i = 0; i <= tmp.Items.Count - 1; i++)
  19.      {
  20.        if (((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value.Trim() != "")
  21.        {
  22.          //if (veritem == 1)
  23.          //{
  24.          //  ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = true;
  25.          //}
  26.          //else
  27.          //{
  28.          //  ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = false;
  29.          //}
  30.  
  31.          DataRow drdatos = dtProducto.NewRow();
  32.          drdatos["IdProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("IdCod")).InnerText;
  33.          drdatos["Cantidad"] = int.Parse(((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value);
  34.          drdatos["lngPromProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("Td1")).InnerText;
  35.          dtProducto.Rows.Add(drdatos);
  36.        }
  37.      }
  38.    }
  39.    Pedidos Pedidos_VO = new Pedidos();
  40.  
  41.    Hashtable htUsuario = (Hashtable)Session["parametros"];
  42.    idUsuarioLogeado = int.Parse(htUsuario["lngIdUsuario"].ToString());
  43.    Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
  44.  
  45.    if (mpage.pptoValor || mpage.pptoCantidad ||  mpage.pptoValorL)
  46.    {
  47.      /*Capturo el perido ppto*/
  48.      DateTimeFormatInfo myDTFI = new CultureInfo("es-ES", false).DateTimeFormat;
  49.      myDTFI.ShortDatePattern = "dd/MM/yyyy";
  50.      myDTFI.DateSeparator = "/";
  51.      DataSet dsDetallePeriodoPresupuesto;
  52.      if (hddOperacion.Value == "I")
  53.        dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(System.DateTime.Now.Date);
  54.      else
  55.        dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(Convert.ToDateTime(hddFechaPedido.Value, myDTFI));
  56.  
  57.      if (dsDetallePeriodoPresupuesto.Tables[0].Rows.Count <= 0)
  58.      {
  59.        lblMensaje.Text = "No hay presupuesto asignado. Consulte al administrador del sistema.";
  60.        lblMensaje.Visible = true;
  61.        tblMensajes.Visible = true;
  62.        tblBuscar.Visible = false;
  63.        tblLista.Visible = false;
  64.      }
  65.      else
  66.      {
  67.        Pedidos_VO.IdDetallePeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdDetallePeriodo"].ToString());
  68.        Pedidos_VO.IdPeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdPeriodo"].ToString());
  69.      }
  70.    }
  71.  
  72.    string[] idJerarquia ={ "", "" };
  73.    Pedidos_VO.fechaPedidoIni = System.DateTime.Now.Date;
  74.    Pedidos_VO.pptoAcumula = mpage.pptoAcumula ? "1" : "0";
  75.  
  76.    if (mpage.pptoValor)
  77.    {
  78.      Pedidos_VO.manejaPpto = "V";
  79.    }
  80.    else
  81.    {
  82.      Pedidos_VO.manejaPpto = "N";
  83.    }
  84.    if (mpage.pptoValorL)
  85.    {
  86.      Pedidos_VO.manejaPpto = "L";
  87.    }
  88.    if (mpage.pptoCantidad)
  89.    {
  90.        Pedidos_VO.manejaPpto = "C";
  91.    }
  92.  
  93.    if (mpage.pptoIVA)
  94.      Pedidos_VO.PptoIVA = "1";
  95.    else
  96.      Pedidos_VO.PptoIVA = "0";
  97.  
  98.  
  99.    Pedidos_VO.idTipoJerarquia = mpage.nivelControlPpto;
  100.  
  101.    switch (mpage.nivelControlPpto)
  102.    {
  103.  
  104.      case 1:
  105.        if (hddOperacion.Value == "I")
  106.        {
  107.          idJerarquia = mpage.ccostos.SelectedItem.Value.Split('|');
  108.          Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
  109.  
  110.        }
  111.        else
  112.        {
  113.          Pedidos_VO.idJerarquia = int.Parse(hddCcostos.Value);
  114.  
  115.        }
  116.        break;
  117.  
  118.      case 2:
  119.        if (hddOperacion.Value == "I")
  120.        {
  121.          idJerarquia = mpage.division.SelectedItem.Value.Split('|');
  122.          Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
  123.  
  124.        }
  125.        else
  126.        {
  127.          Pedidos_VO.idJerarquia = int.Parse(hddDivision.Value);
  128.  
  129.        }
  130.        break;
  131.  
  132.      case 3:
  133.        if (hddOperacion.Value == "I")
  134.        {
  135.          idJerarquia = mpage.regional.SelectedItem.Value.Split('|');
  136.          Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
  137.          Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
  138.  
  139.        }
  140.        else
  141.        {
  142.          Pedidos_VO.idJerarquia = int.Parse(hddRegional.Value);
  143.          Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
  144.  
  145.        }
  146.        break;
  147.  
  148.      case 4://el presupuesto es por empresa
  149.        Pedidos_VO.idJerarquia = mpage.Cliente;
  150.        Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
  151.  
  152.        break;
  153.    }
  154.  
  155.  
  156.    Pedidos_VO.idCliente = mpage.Cliente;
  157.    IPedidos objPedidos = Factory.CreatePedidos();
  158.  
  159.    if (mpage.excederPpto)
  160.      Pedidos_VO.ExcederPpto = "1";
  161.    else
  162.      Pedidos_VO.ExcederPpto = "0";
  163.  
  164.    if (mpage.autorizarPpto)
  165.      Pedidos_VO.AutorizarPpto = "1";
  166.    else
  167.      Pedidos_VO.AutorizarPpto = "0";
  168.  
  169.    if (chkPedTerminado.Checked)
  170.      Pedidos_VO.PedidoTerminado = "1";
  171.  
  172.  
  173.    Pedidos_VO.pedidoExtemporaneo = chkPedExtemporaneo.Checked ? "1" : "0";
  174.    Pedidos_VO.PedidoUrgente = chkPedUrgente.Checked ? "1" : "0";
  175.    Pedidos_VO.GravadoIva = hddCcGravadoIVA.Value;
  176.    Pedidos_VO.observaciones = txtObservacion.Text;
  177.    Pedidos_VO.ordencompra = txtordencompra.Text;
  178.    bool bolGuardado = true;
  179.    string[] Resultado_guardarlinea;
  180.    IPptoValorLinea objPptoValorLinea = Factory.CreatePptoValorL();
  181.    PptpValorLinea PptoValorLinea_VO = new PptpValorLinea();
  182.    bool bolguardarlinea = true;
  183.    if (mpage.pptoValorL)
  184.    {
  185.      foreach (GridViewRow rowItem_g in gvppto.Rows)
  186.      {
  187.        int valor_ = rowItem_g.RowIndex;
  188.        PptoValorLinea_VO.idCliente = mpage.Cliente;
  189.        PptoValorLinea_VO.idlinea = Convert.ToInt32(gvppto.Rows[valor_].Cells[0].Text);
  190.        PptoValorLinea_VO.pptoAsignado = int.Parse(gvppto.Rows[valor_].Cells[2].Text);
  191.        PptoValorLinea_VO.pptoejecutado = int.Parse(gvppto.Rows[valor_].Cells[3].Text);
  192.        PptoValorLinea_VO.subtotal = int.Parse(gvppto.Rows[valor_].Cells[4].Text);
  193.        PptoValorLinea_VO.total = int.Parse(gvppto.Rows[valor_].Cells[6].Text);
  194.        PptoValorLinea_VO.periodo = Convert.ToInt32(gvppto.Rows[valor_].Cells[7].Text);
  195.        PptoValorLinea_VO.tperiodo = int.Parse(gvppto.Rows[valor_].Cells[8].Text);
  196.        PptoValorLinea_VO.centro = int.Parse(gvppto.Rows[valor_].Cells[9].Text);
  197.  
  198.        if (mpage.pptoValorL)
  199.          PptoValorLinea_VO.chrManejaPpt = "L";
  200.  
  201.  
  202.        else
  203.          PptoValorLinea_VO.chrManejaPpt = "N";
  204.  
  205.  
  206.        if (mpage.excederPpto)
  207.          PptoValorLinea_VO.ExcederPpt = "1";
  208.        else
  209.          PptoValorLinea_VO.ExcederPpt = "0";
  210.  
  211.        if (PptoValorLinea_VO.subtotal > 0)
  212.        {
  213.          if (PptoValorLinea_VO.pptoAsignado <= PptoValorLinea_VO.subtotal && PptoValorLinea_VO.pptoAsignado >= PptoValorLinea_VO.pptoejecutado)
  214.          {
  215.            bolGuardado = false;
  216.            lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuest; favor revise los valores totales de cada linea.";
  217.            bolguardarlinea = false;
  218.          }
  219.          lblMensaje.Visible = true;
  220.          tblMensajes.Visible = true;
  221.        }
  222.      }
  223.  
  224.      if (bolguardarlinea)
  225.      {
  226.  
  227.      }
  228.    }
  229.  
  230.  
  231.    string[] Resultado;
  232.  
  233.    if (bolGuardado)
  234.    {
  235.      if (dsPedido.Tables[0].Rows.Count > 0)
  236.      {
  237.        if (hddOperacion.Value == "I")
  238.        {
  239.          string[] idCcostos = mpage.ccostos.SelectedItem.Value.Split('|');
  240.          Pedidos_VO.idCCostos = int.Parse(idCcostos[1].ToString());
  241.          Resultado = objPedidos.guardarPedidos(Pedidos_VO, dsPedido, "I");
  242.          if (mpage.pptoValorL)
  243.          {
  244.            Resultado_guardarlinea = objPedidos.guardarPedidolinea(PptoValorLinea_VO, dsPedido, "I");
  245.          }
  246.          //Resultado[0] numero del pedido; Resultado[1] si necesita autoraizacion o si no pudo ser creado
  247.          if (Resultado[0] != "0" && Resultado[1] == "0")
  248.          {
  249.            lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString();
  250.            //Requerimiento 2.0
  251.            hddPedido.Value = Resultado[0];
  252.  
  253.            if (chkPedUrgente.Checked)
  254.            {
  255.              sPedidoUrgente = "1";
  256.            }
  257.            else
  258.            {
  259.              sPedidoUrgente = "0";
  260.            }
  261.            CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "EM", dsDevoluciones, sPedidoUrgente);
  262.            CuActa_nueva.generarActa_nueva(int.Parse(hddPedido.Value), "PROMEDIO", dsDevoluciones, sPedidoUrgente);
  263.            CuActa.Visible = false;
  264.          }
  265.          else
  266.  
  267.            if (Resultado[1] == "1")
  268.              lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString() + ", pero requiere autorización de presupuesto.";
  269.            else
  270.              if (Resultado[1] == "2")
  271.              {
  272.                bolGuardado = false;
  273.                lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuesto.";
  274.              }
  275.          lblMensaje.Visible = true;
  276.          tblMensajes.Visible = true;
  277.        }
  278.        else
  279.        {
  280.          Pedidos_VO.idCCostos = int.Parse(hddCcostos.Value);
  281.          Pedidos_VO.IdPerfilUsuario = mpage.idPerfil;
  282.          Pedidos_VO.idPedido = lblNumPedido.Text;
  283.          switch (objPedidos.modificarPedido(Pedidos_VO, dsPedido))
  284.          {
  285.  
  286.            case 0:
  287.              hddPedido.Value = lblNumPedido.Text;
  288.              lblMensaje.Text = "El pedido fue modificado correctamente.";
  289.              CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "MO", dsDevoluciones, sPedidoUrgente);
  290.              break;
  291.  
  292.            case 1:
  293.              lblMensaje.Text = "El pedido fue modificado, pero requiere autoraización de presupuesto.";
  294.              break;
  295.  
  296.            case 2:
  297.              bolGuardado = false;
  298.              lblMensaje.Text = "El pedido no fue modificado, debido a que sobrepasa el presupuesto.";
  299.              break;
  300.          }
  301.          lblMensaje.Visible = true;
  302.          tblMensajes.Visible = true;
  303.  
  304.        }
  305.      }
  306.      else
  307.      {
  308.        bolGuardado = false;
  309.        lblMensaje.Text = "El pedido no fue guardado, debido a que no hay detalle válido";
  310.        lblMensaje.Visible = true;
  311.        tblMensajes.Visible = true;
  312.      }
  313.    }
  314.    else
  315.    {
  316.      mpage.filtro.Visible = false;
  317.      tblFiltroPed.Visible = true;
  318.      btnAdicionar.Visible = false;
  319.      btnGuardar.Visible = true;
  320.      tblBuscar.Visible = true;
  321.    }
  322.  
  323.  
  324.  
  325.    if (bolGuardado)
  326.    {
  327.      /*limpia los campos*/
  328.      tblLista.Visible = false;
  329.      rpLinea.DataSource = null;
  330.      tblBuscar.Visible = false;
  331.      tblFiltroPed.Visible = false;
  332.      ViewState["htLista"] = null;
  333.    }
  334.    else
  335.    {            
  336.      mpage.filtro.Visible = false;
  337.      tblFiltroPed.Visible = true;
  338.      btnAdicionar.Visible = false;
  339.      btnGuardar.Visible = true;
  340.      tblBuscar.Visible = true;
  341.    }
  342.  
  343.    hddClicGuardar.Value = "";
  344.  }
  345.  

Agradezco me ayuden con una pronta respuesta.