protected void GuardarConRemito() { string lista = string.Empty; usuario = (IUsuarios)Session["usuario"]; IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); string[] nroGuias = Session["ListaGuias"].ToString().Split(','); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas porque no existen en el sistema. string mensaje = ""; string mensaje2 = ""; string nroguiaAnt = ""; int loteant = 0; DsGuiaServicioConfirmacion ds = (DsGuiaServicioConfirmacion)Session["GuiasSinConfirmar"]; int cant = nroGuias.Length;// Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text); int nroGuia; DsImpresionConfirmacionServicio dsImpresion = new DsImpresionConfirmacionServicio(); for (int i = 0; i < cant; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS if (int.TryParse(nroGuias[i], out nroGuia)) { IGuia oGuia = GuiaFactory.GetGuia(); oGuia.GuiaID = nroGuia; oGuia.Consultar(); // Lógica para recibir guías string tGuia = ""; tGuia = oGuia.TipoGuia; string nroSucursal = oGuia.NroSucursalGuia; string nGuia = oGuia.NroGuia.ToString(); string nroRemito = string.Empty; string numero_guia = string.Empty; oGuia.UsuarioID = usuario.UsuarioID; oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; lista += oGuia.GuiaID + ","; ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oGuia.GuiaID > 0) { foreach (DsGuiaServicioConfirmacion.DatosRow dr in ds.Tables[0].Rows) { if (oGuia.GuiaID == dr.GuiaID && dr.Seleccionado) { nroRemito = dr.NroRemito; numero_guia = dr.NroGuia; } } // Asocio la guia con el lote. lote = caja.AgregarGuia(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, nroRemito); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oGuia.GuiaID) == false) { hGuias.Add(oGuia.GuiaID, guia); } } else { if (nroRemito != string.Empty) { dsImpresion.Datos.AddDatosRow(numero_guia, nroRemito); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = nroGuia.ToString(); } else // La guia no existe en el sistema { //La agrego al hashtable de guias que no existen en el sistema. string guia = nroSucursal + "-" + nGuia + "-" + tGuia; hGuiasNR.Add(guia, guia); } } } // fin for Session["GuiaConfirmacion"] = dsImpresion; Session["GuiasNR"] = hGuiasNR; Session["Guias"] = hGuias; // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple if (ok && lote != 0 && mensaje == "") { Session["GuiasDefectuosas"] = null; // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION string scriptString = "<script language='javascript'>\n"; scriptString += "alert('Guias Almacenadas en Lote: " + lote + "'); \n"; scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += "window.location.href = 'RecepcionConformadas.aspx?d=0&cajaID=" + cajaID + "';\n"; scriptString += "</script>\n"; Page.RegisterStartupScript("scriptOpen", scriptString); //Page.RegisterStartupScript("muestraMensaje", // SisPackController.GenerarJavaScripts.MostrarMensaje( // "Guias Almacenadas en Lote: " + lote, // "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2 else if (mensaje != "") { Session["GuiasDefectuosas"] = null; // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION string scriptString = "<script language='javascript'>\n"; scriptString += "alert('" + mensaje + "\\n" + mensaje2 + "'); \n"; scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; scriptString += "window.location.href = 'RecepcionConformadas.aspx?d=0&cajaID=" + cajaID + "';\n"; scriptString += "</script>\n"; Page.RegisterStartupScript("scriptOpen", scriptString); //Page.RegisterStartupScript("muestraMensaje", // SisPackController.GenerarJavaScripts.MostrarMensaje( // mensaje + "\\n" + mensaje2, "RecepcionEmitidas.aspx?cajaID=" + cajaID)); } // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores. else { this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionConformadas.aspx?d=0&cajaID=" + cajaID); } }
private void butConfirmar_Click(object sender, System.EventArgs e) { string lista = string.Empty; usuario = (IUsuarios)Session["usuario"]; IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas porque no existen en el sistema. string mensaje = ""; string mensaje2 = ""; string nroguiaAnt = ""; int loteant = 0; int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text); for (int i = 0; i < cant; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS string txt = "txt" + i; string ddl = "ddl" + i.ToString(); string nroGuia = Request.Form[txt].ToString(); // Lógica para recibir guías string tGuia = ""; tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1)); string nroSucursal = nroGuia.Substring(1, 4); string nGuia = nroGuia.Substring(5); IGuia oGuia = GuiaFactory.GetGuia(); oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oGuia.NroSucursalGuia = nroSucursal; oGuia.TipoGuia = tGuia; oGuia.ConsultarByNroGuia(); oGuia.UnidadNegocioID = this.UnidadNegocioID; oGuia.UsuarioID = usuario.UsuarioID; oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; if (!lista.Contains(oGuia.GuiaID.ToString())) { lista += oGuia.GuiaID + ","; } } /*Diego 22/03/2013 Guardar los valores para pasar a la pantalla de confirmacion */ //IGuiaServicioConfirmacion guiaServicio = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion(); //DsGuiaServicioConfirmacion ds = guiaServicio.GetGuiasSinConfirmacion(lista, 0); //0 = busca las guias conformadas //if (ds.Datos.Rows.Count > 0) //{ // Session["GuiasSinConfirmar"] = ds; // Session["ListaGuias"] = lista; // Response.Redirect("Recepcion_ConfirmacionGuias.aspx?d=0&cajaID=" + cajaID); // ///*debo guardar los id para mostrar el pop up para ingresar */ // //Session["GuiasSinConfirmar"] = ds; // //Session["ListaGuias"] = lista; // //string script = "<script language='javascript'>\n"; // //script += " window.showModalDialog('Recepcion_ConfirmacionGuias.aspx','Confirmacion','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');\n"; // //script += " GuardarServicios(); \n"; // //script += " </script>\n"; // //Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script); ////} //else //{ /* No tiene guias para confirmar el servicio*/ for (int i = 0; i < cant; i++) { // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS string txt = "txt" + i; string ddl = "ddl" + i.ToString(); string nroGuia = Request.Form[txt].ToString(); // Lógica para recibir guías string tGuia = ""; tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1)); string nroSucursal = nroGuia.Substring(1, 4); string nGuia = nroGuia.Substring(5); IGuia oGuia = GuiaFactory.GetGuia(); oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oGuia.NroSucursalGuia = nroSucursal; oGuia.TipoGuia = tGuia; oGuia.ConsultarByNroGuia(); oGuia.UnidadNegocioID = this.UnidadNegocioID; oGuia.UsuarioID = usuario.UsuarioID; oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true; ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; lista += oGuia.GuiaID + ","; // si la guía existe en el sistema if (oGuia.GuiaID > 0) { // Asocio la guia con el lote. lote = caja.AgregarGuia(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, ""); if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó. { // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oGuia.GuiaID) == false) { hGuias.Add(oGuia.GuiaID, guia); } } // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia. if (loteant != lote && lote != 0 && loteant != 0) { // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020" mensaje = "Lote : " + loteant + " . Posicion : " + cantGuias.ToString() + " . Guia : " + nroguiaAnt; mensaje2 = "Lote : " + lote + " . Posicion : 001 . Guia : " + nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = nroGuia; } else // La guia no existe en el sistema { //La agrego al hashtable de guias que no existen en el sistema. string guia = nroSucursal + "-" + nGuia + "-" + tGuia; hGuiasNR.Add(guia, guia); } } // fin for Session["GuiasNR"] = hGuiasNR; Session["Guias"] = hGuias; // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple if (ok && lote != 0 && mensaje == "") { Session["GuiasDefectuosas"] = null; Page.RegisterStartupScript("muestraMensaje", SisPackController.GenerarJavaScripts.MostrarMensaje("Guias Almacenadas en Lote: " + lote, "RecepcionConformadas.aspx?cajaID=" + cajaID)); } // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2 else if (mensaje != "") { Session["GuiasDefectuosas"] = null; Page.RegisterStartupScript("muestraMensaje", SisPackController.GenerarJavaScripts.MostrarMensaje(mensaje + "\\n" + mensaje2, "RecepcionConformadas.aspx?cajaID=" + cajaID)); } // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores. else { this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionConformadas.aspx?d=0&cajaID=" + cajaID); } //} }