protected void btnGuardar_Click(object sender, EventArgs e) { string guiaConf = string.Empty; IGuiaServicioConfirmacion guiaServ = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion(); guiaServ.Fecha = DateTime.Now; DsGuias ds = (DsGuias)Session["GuiaConfirmacion"]; foreach (DsGuias.DatosRow dr in ds.Datos.Rows) { guiaServ.GuiaID = dr.GuiaID; //guiaConf = dr.TipoGuia + "-" + dr.NroSucursalGuia.ToString().PadLeft(4, '0') + "-" + dr.NroGuia.ToString().PadLeft(8, '0'); } guiaConf = ddlTipoGuia.SelectedValue + "-" + txtNroSucursal.Text + "-" + txtNroGuia.Text; guiaServ.NroRemito = txtNroRemito.Text; guiaServ.UsuarioID = this.usuario.UsuarioID; guiaServ.AgenciaID = this.AgenciaConectadaID; guiaServ.Guardar(); // Cargo los datos para imprimir IAgencia agencia = AgenciaFactory.GetAgencia(); hdnPaginaImpresion.Value = "ImprimirConfirmacion.aspx"; Session["GuiaConfirmacion"] = guiaConf; Session["RemitoConfirmacion"] = txtNroRemito.Text; hdnGuiaID.Value = guiaServ.GuiaID.ToString(); lblMensaje.Text = string.Empty; butImprimir.Enabled = false; btnGuardar.Enabled = false; }
protected void btnBuscar_Click(object sender, EventArgs e) { try { IGuia oGuia = GuiaFactory.GetGuia(); IGuiaServicioConfirmacion oGuiaServ = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion(); DsGuias ds = new DsGuias(); DsGuiaServicioConfirmacion dsGuiaServ = new DsGuiaServicioConfirmacion(); if (this.rbCodigo.Checked) { try { oGuia.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia(this.txtCodigoBarra.Text.Substring(0, 1).Trim()).Trim(); if (oGuia.TipoGuia.Equals("")) { throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); } oGuia.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4); oGuia.NroGuia = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5)); ds = oGuia.GetGuiaOneServicio(); } catch (Exception) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado un nro. de guía correcto."); return; } } else if (this.rbTipo.Checked) { oGuia.TipoGuia = this.ddlTipoGuia.SelectedValue; oGuia.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("") ? "0" : this.txtNroSucursal.Text.Trim(); oGuia.NroGuia = this.txtNroGuia.Text.Trim().Equals("") ? 0 : Convert.ToInt32(this.txtNroGuia.Text.Trim()); ds = oGuia.GetGuiaOneServicio(); } else if (rbRemito.Checked) { ds = oGuia.GetGuiaByRemitoDataSet(txtNroRemito.Text); if (ds.Datos.Count > 0) { oGuia.GuiaID = Convert.ToInt32(ds.Datos.Rows[0]["GuiaID"].ToString()); oGuia.NroGuia = Convert.ToInt32(ds.Datos.Rows[0]["NroGuia"].ToString()); oGuia.NroSucursalGuia = ds.Datos.Rows[0]["NroSucursalGuia"].ToString(); oGuia.TipoGuia = ds.Datos.Rows[0]["TipoGuia"].ToString(); } } else { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado el nro. de guía ."); return; } if (ds.Datos.Count == 0) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("El nro. de guía no es correcto o no tiene asociado un servicio a confirmar."); return; } oGuiaServ.GuiaID = oGuia.GuiaID; dsGuiaServ = oGuiaServ.Consultar(); if (dsGuiaServ.Datos.Count > 0) { lblMensaje.Text = "La guia ya ha sido confirmada"; butImprimir.Enabled = true; btnGuardar.Enabled = false; return; } else { hdnRemito.Value = ds.Datos.Rows[0]["Observaciones"].ToString(); // en Observaciones viene guardado el numero de remito lblMensaje.Text = "La guia se encuentra en condiciones de confirmar su servicio"; butImprimir.Enabled = false; btnGuardar.Enabled = true; } txtNroGuia.Text = oGuia.NroGuia.ToString(); txtNroSucursal.Text = oGuia.NroSucursalGuia; ddlTipoGuia.SelectedValue = oGuia.TipoGuia; txtCodigoBarra.Text = (oGuia.TipoGuia == "R" ? "9" : (oGuia.TipoGuia == "A" ? "3" : "4")) + oGuia.NroSucursalGuia + oGuia.NroGuia.ToString(); Session["GuiaConfirmacion"] = ds; } catch (Exception ex) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message); } }
private void butConfirmar_Click(object sender, System.EventArgs e) { List <IGuia> listadoGuias = new List <IGuia>(); List <IFactura> listadoFacturas = new List <IFactura>(); string lista = string.Empty; string listaFacturas = 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).Replace(",", ""); 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; if (oGuia.GuiaID > 0) //Es una guia { if (!lista.Contains(oGuia.GuiaID.ToString())) { lista += oGuia.GuiaID + ","; listadoGuias.Add(oGuia); } } else // es una factura { IFactura oFactura = FacturaFactory.GetFactura(); oFactura.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); oFactura.NroSucursalGuia = nroSucursal; oFactura.TipoGuia = tGuia; oFactura.ConsultarByNroFactura(); if (oFactura.FacturaID > 0) { if (!listaFacturas.Contains(oFactura.FacturaID.ToString())) { listaFacturas += oFactura.FacturaID + ","; listadoFacturas.Add(oFactura); } } 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); } } } /*Diego 22/03/2013 Guardar los valores para pasar a la pantalla de confirmacion */ IGuiaServicioConfirmacion guiaServicio = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion(); DsGuiaServicioConfirmacion ds = guiaServicio.GetGuiasSinConfirmacion(lista, 1); //1 = busca las guias emitidas if (ds.Datos.Rows.Count > 0) { /*debo guardar los id para mostrar el pop up para ingresar */ Session["GuiasSinConfirmar"] = ds; Session["ListaGuias"] = lista; Session["ListaFacturas"] = listaFacturas; 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*/ foreach (var oGuia in listadoGuias) { ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oGuia.GuiaID > 0) { // Asocio la guia con el lote. lote = caja.AgregarGuiaEmision(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 = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia.ToString() + "-" + oGuia.TipoGuia; // 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 : " + oGuia.NroGuia.ToString();// nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = oGuia.NroGuia.ToString();// nroGuia; } } // fin foreach foreach (var oFactura in listadoFacturas) { ICaja caja = CajaFactory.GetCajaFactory(); caja.CajaID = cajaID; // si la guía existe en el sistema if (oFactura.FacturaID > 0) { // Asocio la guia con el lote. lote = caja.AgregarFacturaEmision(oFactura, 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 = oFactura.NroSucursalGuia + "-" + oFactura.NroGuia.ToString() + "-" + oFactura.TipoGuia; // nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuias.ContainsKey(oFactura.FacturaID) == false) { hGuias.Add(oFactura.FacturaID, 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 : " + oFactura.NroGuia.ToString();// nroGuia; } if (lote != 0) { loteant = lote; } else { if (loteant != 0) { lote = loteant; } } nroguiaAnt = oFactura.NroGuia.ToString();// nroGuia; } } // fin foreach /* * 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; * lista += oGuia.GuiaID + ","; * ICaja caja = CajaFactory.GetCajaFactory(); * caja.CajaID = cajaID; * * // si la guía existe en el sistema * if (oGuia.GuiaID > 0) * { * // Asocio la guia con el lote. * lote = caja.AgregarGuiaEmision(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); * } * } */ 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, "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; 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("RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID); } } }