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
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
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.