protected void btnDevolver_Click(object sender, EventArgs e) { try { if (Session["UnidadesAsigDev"] == null) { ((SisPacK.ErrorWeb)(this.phErrores.Controls[0])).setMensaje("Debe agregar alguna unidad de logistica."); return; } IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); ((IGuia)guiaUnidad).AgenciaOrigenID = this.AgenciaConectadaID; foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigDev"]) { guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL); } if (EmitirUnidadLogistica()) { //if (guiaUnidad.DevolverGuiaUnidadLogistica(this.usuario)) //{ Session["UnidadesAsigDev"] = null; return; //} } } catch (Exception ex) { ((SisPacK.ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message)); } }
private void BindGrid(int currentPage) { try { IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); AdministrarGrillas.Configurar(dtgDevolucion, "UnidadLogisticaPedidoDevolucionID", CantidadOpciones, true, false); dtgDevolucion.CurrentPageIndex = currentPage; DateTime fDesde, fHasta; fDesde = txtFechaDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(txtFechaDesde.Text) : new DateTime(1901, 01, 01); fHasta = txtFechaHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(txtFechaHasta.Text) : new DateTime(2900, 01, 01); dtgDevolucion.DataSource = unidadLogistica.GetUnidadesLogisticaPendientesDevolucion(chSinAutorizar.Checked, chRechazados.Checked, chAutorizados.Checked, fDesde, fHasta, Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID)); dtgDevolucion.DataBind(); } catch (Exception ex) { ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } }
protected void butGuardar_Click(object sender, EventArgs e) { try { int cantidad = 0; if (busqAgencia.AgenciaID == "" && busqAgencia.RazonSocial == "") // Consultar con Diego!!! { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar una agencia."); return; } if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "") { cantidad = ++cantidad; } if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "") { cantidad = ++cantidad; } else if (chkAgregarProveedor.Checked && txtDocumento.Text.Trim() != string.Empty && txtRazonSocial.Text.Trim() != string.Empty) { cantidad = ++cantidad; } if (cantidad > 1) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar un cliente o un Proveedor"); // Consultar con Diego!!! return; } else { IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion(); unidad.Fecha = DateTime.Now; if (busqAgencia.AgenciaID != "" && busqAgencia.RazonSocial != "") { unidad.AgenciaID = int.Parse(busqAgencia.AgenciaID); } else { unidad.AgenciaID = 0; } if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "") { unidad.ClienteID = int.Parse(busqCliente.ClienteID); } else { unidad.ClienteID = 0; } if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "") { unidad.ProveedorID = int.Parse(busqProveedor1.ProveedorID); } else { unidad.ProveedorID = 0; } if (busqProveedor1.ProveedorID == "" && chkAgregarProveedor.Checked) { unidad.Documento = txtDocumento.Text; unidad.RazonSocial = txtRazonSocial.Text; unidad.AgregarProveedor = true; } if (busqObservacion.ObservacionID != "" && busqObservacion.ObsDescrip != "") { unidad.ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID); } else { unidad.ObservacionID = 0; } IList <IGuiaUnidadLogisticaDetalle> lista; unidad.UnidadesLogisticasID = int.Parse(ddlUnidades.SelectedItem.Value); unidad.UsuarioID = ((IUsuarios)Session["Usuario"]).UsuarioID; unidad.Cantidad = ddlTipoAccion.SelectedItem.Value == "1" ? int.Parse(txtCantidad.Text) : (-1 * int.Parse(txtCantidad.Text)); if (Session["UnidadesAsigAut"] != null) { lista = (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"]; } else { lista = new List <IGuiaUnidadLogisticaDetalle>(); } lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle() { Cantidad = int.Parse(txtCantidad.Text), UnidadLogisticaId = int.Parse(ddlUnidades.SelectedItem.Value), Descripcion = ddlUnidades.SelectedItem.Text, ClienteId = unidad.ClienteID, RazonCliente = unidad.RazonSocial, ProveedorId = unidad.ProveedorID, RazonProv = unidad.RazonSocial, UsuarioID = this.usuario.UsuarioID, AgenciaID = AgenciaConectadaID }); Session["UnidadesAsigAut"] = lista; #region ArmarGuiaUnidadLogistica cantidad = 0; /*Cargo datos para la emision de la guia de Unidad de Logistica*/ IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); this.ObtenerNroGuia(); ((IGuia)guiaUnidad).NumeroCAI = this.numeroCAI; ((IGuia)guiaUnidad).TipoGuia = this.tipoGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroGuia = this.nroGuiaUnidadLogistica; /**/ ((IGuia)guiaUnidad).AgenciaOrigenID = this.AgenciaConectadaID; ((IGuia)guiaUnidad).UnidadNegocioID = this.UnidadNegocioID; ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica; ((IGuia)guiaUnidad).AgenciaDestinoID = Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID); foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"]) { cantidad = cantidad + guiaUL.Cantidad; guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL); } ((IGuiaFactura)guiaUnidad).EmpresaFacturacionID = 1; ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = Utiles.Validaciones.obtieneEntero(txtCantidad.Text); guiaUnidad.TipoOperacionUnidadLogistica = (ddlTipoAccion.SelectedItem.Value == "1" ? NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Ingreso : NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso); ((IGuia)guiaUnidad).ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID); #endregion /*Guardo la asignacion y la guia de unidad de logistica*/ if (unidad.Guardar(guiaUnidad, null)) { BindGrid(); #region ImpresionGuiaUnidadLogistica Session["UnidadesAsigAut"] = null; IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias(); admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID; DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID(); Session["DatosGuia"] = dataSrc; IAgencia agOrigen = AgenciaFactory.GetAgencia(); agOrigen.AgenciaID = AgenciaConectadaID; agOrigen.ConsultarBasico(); if (agOrigen.TipoImpresionGuiaId == 0) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido."); return; } // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno. agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco; txtPaginaImpresion.Value = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); txtGuiaUnidadID.Value = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString(); string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); string script = "<script language='javascript'>\n"; script += " window.showModalDialog('"+ pagina + "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; script += " </script>\n"; Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script); #endregion txtCantidad.Text = string.Empty; ddlUnidades.SelectedIndex = 0; ddlTipoAccion.SelectedIndex = 0; txtDocumento.Text = string.Empty; txtRazonSocial.Text = string.Empty; busqObservacion.ObservacionID = string.Empty; busqObservacion.ObsDescrip = string.Empty; busqObservacion.ObservacionID = string.Empty; busqObservacion.Codigo = string.Empty; Session["UnidadesAsigAut"] = null; string mensaje = "Los datos se guardaron correctamente."; string script1 = "<script language='javascript'>\n"; script1 += "alert('" + mensaje + "');"; script1 += "</script>"; Page.RegisterStartupScript("scriptOk", script1); } } } catch (Exception ex) { Session["UnidadesAsigAut"] = null; ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se pudo realizar la operación: " + ex.Message); } }
private bool EmitirUnidadLogistica() { int cantidad = 0; IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); this.ObtenerNroGuia(); ((IGuia)guiaUnidad).NumeroCAI = this.numeroCAI; ((IGuia)guiaUnidad).TipoGuia = this.tipoGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroGuia = this.nroGuiaUnidadLogistica; /**/ ((IGuia)guiaUnidad).AgenciaOrigenID = this.AgenciaConectadaID; ((IGuia)guiaUnidad).UnidadNegocioID = this.UnidadNegocioID; ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica; NegociosSisPack.ParametroUNegocio parametro = new NegociosSisPack.ParametroUNegocio(); parametro.UnidadNegocioID = 1; parametro.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion; parametro.Consultar(); ((IGuia)guiaUnidad).AgenciaDestinoID = Utiles.Validaciones.obtieneEntero(parametro.ValorString); foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigDev"]) { cantidad = cantidad + guiaUL.Cantidad; guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL); } ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = cantidad; guiaUnidad.TipoOperacionUnidadLogistica = NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso; /**/ guiaUnidad.EsPedidoDevolucion = true; ((IGuia)guiaUnidad).NoRegistrarEstadoEmitida = true; if (guiaUnidad.EmitirGuiaUnidadLogistica(null, this.usuario, false)) // validar stock cuando emite la guia asociada { //limpiarCarga(); //dtgUnidades.DataSource = null; //dtgUnidades.DataBind(); Session["UnidadesAsigDev"] = null; IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias(); admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID; DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID(); Session["DatosGuia"] = dataSrc; IAgencia agOrigen = AgenciaFactory.GetAgencia(); agOrigen.AgenciaID = AgenciaConectadaID; agOrigen.ConsultarBasico(); if (agOrigen.TipoImpresionGuiaId == 0) { ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido."); return(false); } // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno. agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco; txtPaginaImpresion.Value = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); txtGuiaUnidadID.Value = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString(); string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); string script = "window.showModalDialog('" + pagina + "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; //Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script); ScriptManager.RegisterClientScriptBlock(this.UpdatePanel2, UpdatePanel2.GetType(), "scriptImprimirGuiaUnidad", script, true); return(true); } else { return(false); } }
private void butConfirmar_Click(object sender, System.EventArgs e) { usuario = (IUsuarios)Session["usuario"]; // Obtengo las agencias para verificar si la sucursal de la guía a recibir es válida // en el caso de guías de agencias no automatizadas IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas Hashtable hGuiasIncompletas = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias) // Verifico si el sistema está configurado para utilizar recepción libre bool recepcionLibre = false; IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio(); param.Parametro = NegociosSisPackInterface.SisPack.Parametro.RecepcionLibre; param.UnidadNegocioID = this.UnidadNegocioID; param.Consultar(); if (param.ValorString == "1") { recepcionLibre = true; } 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 obs = "Obs" + i.ToString() + "$txtObservacionID"; string obsCodigo = "Obs" + i.ToString() + "$txtCodigo"; string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip"; string ddl = "ddl" + i.ToString(); string nroGuia = Request.Form[txt].ToString(); string observacionID = Request.Form[obs].ToString(); string sObsCodigo = Request.Form[obsCodigo].ToString(); string sObsDescrip = Request.Form[obsDescrip].ToString(); // Lógica para recibir (y observar) 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.Consultar(); oGuia.EsRecepcion = 1; oGuia.UnidadNegocioID = this.UnidadNegocioID; //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.UsuarioID = usuario.UsuarioID; IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura(); oGuiaFactura.UsuarioID = usuario.UsuarioID; // si la guía existe en el sistema, la recibe if (oGuia.GuiaID > 0) { // Obtengo el Id de la agencia administración IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio(); paramAdm.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion; paramAdm.UnidadNegocioID = this.UnidadNegocioID; paramAdm.Consultar(); int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString); paramAdm = null; // Reviso si la guía es recepcionable (si la guía todavia no esta en destino o si esta solicitada para devolución) if ((oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID)) && !oGuia.EsGuiaAnulada(oGuia.GuiaID)) { // La guía es recepcionable ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID; /* Diego 09/01/2013 Actualiza el stock de las unidades de logisticas */ if (oGuia.TipoGuia == "X") { IGuiaUnidadLogistica gUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); gUnidad.ActualizarStockGuiaUnidadLogistica(oGuia.GuiaID, this.AgenciaConectadaID, usuario.UsuarioID, 1); } if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID) || ((this.AgenciaConectadaID == oGuia.AgenciaOrigenID /*|| this.AgenciaConectadaID == agAdm*/) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion)) { if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito) { //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuia.EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.Ingresada("Recibida Masivamente Administracion", this.AgenciaConectadaID, usuario); /*German 28/06/2016 */ if (oGuia.TipoGuia == "X" && EsConformable(oGuia)) { oGuiaFactura.Entregada("Conformada Masivamente Administracion", this.AgenciaConectadaID, usuario); } } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Ingresada("Recibida Masivamente Administracion", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); } } //SFE: Modificado para corregir el bug que no ponia en Agencia de Redespacho en la Recepcion Masiva-- Se agrego el Metodo "EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)" else if (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia.AgenciaDestinoID, oGuia.GuiaID) || this.EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)) { //Guia de redespacho ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Redespacho("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario); } else { if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito) { //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuia.EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.Ingresada("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario); /*German 28/06/2016 */ if (oGuia.TipoGuia == "X" && EsConformable(oGuia)) { oGuiaFactura.Entregada("Conformada Masivamente Administracion", oGuia.AgenciaDestinoID, usuario); } } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Ingresada("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); } } ////else ////{ //// IAgencia ag = AgenciaFactory.GetAgencia(); //// ag.AgenciaID = oGuia.AgenciaOrigenID; //// ag.ConsultarBasico(); //// // si la agencia que recibe en forma libre es la agencia madre, //// // tengo que insertar los estados correspondientes //// if (recepcionLibre && this.AgenciaConectadaID == ag.AgenciaMadre) //// { //// // insertar los estados de agencia madre... //// if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) //// { //// oGuia.EsRecepcion = 1; //// oGuia.EsRecepcionLibre = recepcionLibre; //// oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); //// oGuia.UsuarioID = Utiles.Validaciones.obtieneEntero(this.UsuarioConectadoID); //// oGuia.Observaciones = "Recibida Masivamente"; //// oGuia.RecepcionAgenciaMadre(this.AgenciaConectadaID); //// } //// else //// { //// ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; //// //Se agregaron las siguientes dos lineas porque cuando llegaba al metodo para observar //// //no llegaba ni el usuario ni la observacion. FQuiroga 08/04/2016 //// ((IGuia)oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); //// ((IGuia)oGuiaFactura).UsuarioID = (usuario.UsuarioID); //// oGuiaFactura.RecepcionAgenciaMadre("Recibida Masivamente", this.AgenciaConectadaID, Utiles.Validaciones.obtieneEntero(observacionID)); //// } //// } //// else //// { //// /*SFE: Agregado para trabajar con envios desde la Web*/ //// if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) //// { //// /**/ //// /*Esto estaba 16/11/2010*/ //// // sino, continuar normalmente... //// if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) //// { //// oGuia.EsRecepcionLibre = recepcionLibre; //// oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); //// if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) //// oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario); //// else //// oGuia.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario); //// } //// else //// { //// ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; //// if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) //// oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); //// else //// oGuiaFactura.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario); //// } //// /*Esto estaba 16/11/2010*/ //// } //// /*SFE:Agregado para trabajar con envios desde la Web*/ //// else //// { //// // Inserto los estados de "emitida" a la guía que se recibe //// // ya que se emitió en la web, y cuando se realizó la factura desde SisPack //// // se insertó el estado "Pendiente de Retiro" //// IObservacion observacion = ObservacionFactory.GetObservacion(); //// observacion.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); //// if (observacion.ObservacionID > 0) //// observacion.Buscar(); //// if (observacion.ObservacionID > 0 && observacion.TipoObservacionID == (int)NegociosSisPackInterface.SisPack.TipoObservacion.WebYPendienteRetiro) //// { //// /* VSA 14-08: Si se ha ingresado una observación del tipo WebYPendienteRetiro --> no se cambia el estado movimiento de la guía.*/ //// //IGuia oGuia = GuiaFactory.GetGuia(); //// //oGuia.GuiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text); //// oGuia.ObservacionID = observacion.ObservacionID; //// oGuia.UsuarioID = usuario.UsuarioID; //// oGuia.Observar(); //// oGuia = null; //// /********************************************************************************************************************************/ //// //bOK = true; //// } //// else //// //bOK = //// oGuia.IngresoReparto(observacion.ObsDescrip, this.AgenciaConectadaID, usuario); //// } //// /*SFE */ //// } ////} } // fin if EsRecepcionable else { // acá debería guardar las que no se pueden recibir y luego mostrarlas en un alert... string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false) { hGuiasNR.Add(oGuia.GuiaID, guia); } } } } // fin for Session["GuiasNR"] = hGuiasNR; if (ok) { Session["GuiasDefectuosas"] = null; Response.Redirect("RecepcionMasivaAdministracion.aspx"); } else { if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0) { hGuias = hGuiasIncompletas; } this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionMasivaAdministracion.aspx?d=1"); } }
private void butConfirmar_Click(object sender, System.EventArgs e) { usuario = (IUsuarios)Session["usuario"]; // Obtengo las agencias para verificar si la sucursal de la guía a recibir es válida // en el caso de guías de agencias no automatizadas IAgencia agencia = AgenciaFactory.GetAgencia(); DsAgencias dsAgencias = agencia.GetAgenciasDataSet(); bool ok = true; Hashtable hGuias = new Hashtable(); // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser recibidas Hashtable hGuiasIncompletas = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias) // Verifico si el sistema está configurado para utilizar recepción libre bool recepcionLibre = false; IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio(); param.Parametro = NegociosSisPackInterface.SisPack.Parametro.RecepcionLibre; param.UnidadNegocioID = this.UnidadNegocioID; param.Consultar(); if (param.ValorString == "1") { recepcionLibre = true; } 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 obs = "Obs" + i.ToString() + "$txtObservacionID"; string obsCodigo = "Obs" + i.ToString() + "$txtCodigo"; string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip"; string ddl = "ddl" + i.ToString(); string nroGuia = Request.Form[txt].ToString(); string observacionID = Request.Form[obs].ToString(); string sObsCodigo = Request.Form[obsCodigo].ToString(); string sObsDescrip = Request.Form[obsDescrip].ToString(); // Lógica para recibir (y observar) guías string tGuia = ""; // if (nroGuia.Substring(0,1) == "3") // tGuia="A"; // else if (nroGuia.Substring(0,1) == "4") // tGuia="B"; // //else // //throw new Exception("Errores.Invalidos.CodigoBarrasLongitud"); 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.Consultar(); oGuia.EsRecepcion = 1; oGuia.UnidadNegocioID = this.UnidadNegocioID; //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.UsuarioID = usuario.UsuarioID; IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura(); oGuiaFactura.UsuarioID = usuario.UsuarioID; // si la guía existe en el sistema, la recibe if (oGuia.GuiaID > 0) { // Obtengo el Id de la agencia administración IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio(); paramAdm.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion; paramAdm.UnidadNegocioID = this.UnidadNegocioID; paramAdm.Consultar(); int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString); paramAdm = null; // Reviso si la guía es recepcionable (si la guía todavia no esta en destino o si esta solicitada para devolución) //if (oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID)) // Diego 29/03/2014 // Modificado para que verifique que la guia no este anulada o anulada WEB if ((oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID)) && !oGuia.EsGuiaAnulada(oGuia.GuiaID)) { // La guía es recepcionable ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID; /* Diego 09/01/2013 Actualiza el stock de las unidades de logisticas */ if (oGuia.TipoGuia == "X") { IGuiaUnidadLogistica gUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); gUnidad.ActualizarStockGuiaUnidadLogistica(oGuia.GuiaID, this.AgenciaConectadaID, usuario.UsuarioID, 1); } if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID) || ((this.AgenciaConectadaID == oGuia.AgenciaOrigenID /*|| this.AgenciaConectadaID == agAdm*/) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion)) { if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito) { //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuia.EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario); /*German 28/06/2016 */ if (oGuia.TipoGuia == "X" && EsConformable(oGuia)) { oGuiaFactura.Entregada("Conformada Masivamente", this.AgenciaConectadaID, usuario); } ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } } else if (this.AgenciaConectadaID == agAdm && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion) { // La guía se esta recibiendo en administración y es una devolución. La cargo como que queda en archivo if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.IngresadaAArchivo("Recibida Masivamente", this.AgenciaConectadaID, usuario); ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.IngresadaAArchivo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } } //SFE: Modificado para corregir el bug que no ponia en Agencia de Redespacho en la Recepcion Masiva-- Se agrego el Metodo "EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)" else if (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia.AgenciaDestinoID, oGuia.GuiaID) || this.EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)) { //Guia de redespacho ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Redespacho("Recibida Masivamente", this.AgenciaConectadaID, usuario); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } else { IAgencia ag = AgenciaFactory.GetAgencia(); ag.AgenciaID = oGuia.AgenciaOrigenID; ag.ConsultarBasico(); // si la agencia que recibe en forma libre es la agencia madre, // tengo que insertar los estados correspondientes if (recepcionLibre && this.AgenciaConectadaID == ag.AgenciaMadre) { // insertar los estados de agencia madre... if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { oGuia.EsRecepcion = 1; oGuia.EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.UsuarioID = Utiles.Validaciones.obtieneEntero(this.UsuarioConectadoID); oGuia.Observaciones = "Recibida Masivamente"; oGuia.RecepcionAgenciaMadre(this.AgenciaConectadaID); ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; //Se agregaron las siguientes dos lineas porque cuando llegaba al metodo para observar //no llegaba ni el usuario ni la observacion. FQuiroga 08/04/2016 ((IGuia)oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); ((IGuia)oGuiaFactura).UsuarioID = (usuario.UsuarioID); oGuiaFactura.RecepcionAgenciaMadre("Recibida Masivamente", this.AgenciaConectadaID, Utiles.Validaciones.obtieneEntero(observacionID)); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } } else { /*SFE: Agregado para trabajar con envios desde la Web*/ if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) { /**/ /*Esto estaba 16/11/2010*/ // sino, continuar normalmente... if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { oGuia.EsRecepcionLibre = recepcionLibre; oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) { oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario); } else { oGuia.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario); } ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro) { oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); } else { oGuiaFactura.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario); } ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } /*Esto estaba 16/11/2010*/ } /*SFE:Agregado para trabajar con envios desde la Web*/ else { // Inserto los estados de "emitida" a la guía que se recibe // ya que se emitió en la web, y cuando se realizó la factura desde SisPack // se insertó el estado "Pendiente de Retiro" IObservacion observacion = ObservacionFactory.GetObservacion(); observacion.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); if (observacion.ObservacionID > 0) { observacion.Buscar(); } if (observacion.ObservacionID > 0 && observacion.TipoObservacionID == (int)NegociosSisPackInterface.SisPack.TipoObservacion.WebYPendienteRetiro) { /* VSA 14-08: Si se ha ingresado una observación del tipo WebYPendienteRetiro --> no se cambia el estado movimiento de la guía.*/ //IGuia oGuia = GuiaFactory.GetGuia(); //oGuia.GuiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text); oGuia.ObservacionID = observacion.ObservacionID; oGuia.UsuarioID = usuario.UsuarioID; oGuia.Observar(); oGuia = null; /********************************************************************************************************************************/ //bOK = true; } else { //bOK = oGuia.IngresoReparto(observacion.ObsDescrip, this.AgenciaConectadaID, usuario); } } /*SFE */ } } } // fin if EsRecepcionable else { // acá debería guardar las que no se pueden recibir y luego mostrarlas en un alert... string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false) { hGuiasNR.Add(oGuia.GuiaID, guia); } } } else { if (this.txtGuiasDefectuosas.Text == "0") { /*SFE: 12/01/2011. No permitir la recepcion de una guía que no se haya emitido y que la Agencia de Origen sea auto impresora*/ // Si la guía no existe en el sistema, consulto si la Agencia Origen es Autoimpresora // 1ro verifico si la sucursal ingresada es válida DsAgencias.DatosRow[] dr = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("SucursalDGI = '" + nroSucursal + "'"); if (dr.Length > 0) // Si es una sucursal válida, ahora controlo que no este configurada como autoimpresora { DsAgencias.DatosRow drAgencia = dr[0]; string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (drAgencia.TipoImpresionGuiaId != (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa) // Caso Buscado: Guia no existe en el sistema y la Agencia Origen es Autoimpresora. No dejar recibir { hGuiasNR.Add(oGuia.GuiaID, guia); } } else { // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no // automatizada o bien porque se emitió en forma manual por una automatizada // hay que visualizarla nuevamente para que se ingresen los datos correspondientes ok = false; string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip; if (hGuias.ContainsKey(nroGuia) == false) { hGuias.Add(nroGuia, obsTemp); } //this.txtGuiasDefectuosas.Text = "1"; } } else { /*SFE: 12/01/2011. No permitir la recepcion de una guía que no se haya emitido y que la Agencia de Origen sea auto impresora*/ // 1ro verifico si la sucursal ingresada es válida DsAgencias.DatosRow[] dr = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("SucursalDGI = '" + nroSucursal + "'"); if (dr.Length > 0) // Si es una sucursal válida, ahora controlo que no este configurada como autoimpresora { DsAgencias.DatosRow drAgencia = dr[0]; if (drAgencia.TipoImpresionGuiaId != (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa) // Caso Buscado: Guia no existe en el sistema y la Agencia Origen es Autoimpresora. No dejar recibir { string guia = nroSucursal + "-" + nGuia + "-" + tGuia; if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false) { hGuiasNR.Add(oGuia.GuiaID, guia); } } else { string valorDeclarado = "txtValorDeclarado" + i; string bultos = "txtBultos" + i.ToString(); string agenciaDestino = "agDes" + i.ToString() + "$txtAgenciaID"; string clasificacionGuiaID = Request.Form[ddl].ToString(); double vd = Utiles.Validaciones.obtieneDouble(Request.Form[valorDeclarado].ToString()); int bultosTotales = Utiles.Validaciones.obtieneEntero(Request.Form[bultos].ToString()); int agDes = Utiles.Validaciones.obtieneEntero(Request.Form[agenciaDestino].ToString()); if (vd > 0 && bultosTotales > 0 && agDes > 0) { oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura(); ((IGuia)oGuiaFactura).TipoGuia = tGuia; ((IGuia)oGuiaFactura).NroSucursalGuia = nroSucursal; ((IGuia)oGuiaFactura).NroGuia = Utiles.Validaciones.obtieneEntero(nGuia); ((IGuia)oGuiaFactura).UnidadNegocioID = this.UnidadNegocioID; ((IGuia)oGuiaFactura).FechaEmision = new DateTime(1900, 1, 1); ((IGuia)oGuiaFactura).ClasificacionGuiaID = (NegociosSisPackInterface.SisPack.ClasificacionGuia)Utiles.Validaciones.obtieneEntero(clasificacionGuiaID); IAgencia agOrigen = AgenciaFactory.GetAgencia(); agOrigen.SucursalDGI = nroSucursal; agOrigen.ConsultarBySucursal(); ((IGuia)oGuiaFactura).AgenciaOrigenID = agOrigen.AgenciaID; ((IGuia)oGuiaFactura).AgenciaDestinoID = agDes; ((IGuia)oGuiaFactura).Observaciones = ""; ((IGuia)oGuiaFactura).EsRecepcion = 1; //((IGuia) oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID; ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID; oGuiaFactura.ImporteTotalGuia = 0; oGuiaFactura.ValorDeclaradoTotal = vd; oGuiaFactura.CantidadBultosTotal = bultosTotales; if ((this.AgenciaConectadaID == agDes)) { if (Utiles.Validaciones.obtieneEntero(clasificacionGuiaID) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario); ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { oGuiaFactura.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } } else if (this.EsGuiaDeAgenciaRedespachoReferenciada(agDes, oGuia.GuiaID)) { //Guia de redespacho ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Redespacho("Recibida Masivamente", this.AgenciaConectadaID, usuario); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } else { if (Utiles.Validaciones.obtieneEntero(clasificacionGuiaID) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura) { oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID); oGuia.EsRecepcionLibre = recepcionLibre; oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario); ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID); } else { ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre; oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID)); ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID); } } } else { ok = false; string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip; if (hGuiasIncompletas.ContainsKey(nroGuia) == false) { hGuiasIncompletas.Add(nroGuia, obsTemp); } } } } // fin dr.Length } } } // fin for Session["GuiasNR"] = hGuiasNR; if (ok) { Session["GuiasDefectuosas"] = null; Response.Redirect("RecepcionMasiva.aspx"); } else { if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0) { hGuias = hGuiasIncompletas; } this.txtGuiasDefectuosas.Text = "1"; Session["GuiasDefectuosas"] = hGuias; Response.Redirect("RecepcionMasiva.aspx?d=1"); } }
protected void btnEmitir_Click(object sender, EventArgs e) { try { int cantidad = 0; if (Session["UnidadesAsig"] == null) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje("Debe agregar alguna unidad de logistica."); return; } IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); this.ObtenerNroGuia(); ((IGuia)guiaUnidad).NumeroCAI = this.numeroCAI; ((IGuia)guiaUnidad).TipoGuia = this.tipoGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica; ((IGuia)guiaUnidad).NroGuia = this.nroGuiaUnidadLogistica; /**/ ((IGuia)guiaUnidad).AgenciaOrigenID = this.AgenciaConectadaID; ((IGuia)guiaUnidad).UnidadNegocioID = this.UnidadNegocioID; ((IGuiaFactura)guiaUnidad).EmpresaFacturacionID = 1; ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica; if (GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value > 0) { ((IGuia)guiaUnidad).AgenciaDestinoID = GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value; } else { ((IGuia)guiaUnidad).PuntoRecepcionID = (-1) * GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value; } foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsig"]) { cantidad = cantidad + guiaUL.Cantidad; guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL); } ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = cantidad; guiaUnidad.TipoOperacionUnidadLogistica = NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Ingreso; /**/ if (guiaUnidad.EmitirGuiaUnidadLogistica(null, this.usuario, true)) // debe validar stock cuando emite la guia asociada { //limpiarCarga(); //dtgUnidades.DataSource = null; //dtgUnidades.DataBind(); Session["UnidadesAsig"] = null; IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias(); admGuia.GuiaID = ((Guia)guiaUnidad).GuiaID; DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID(); Session["DatosGuia"] = dataSrc; IAgencia agOrigen = AgenciaFactory.GetAgencia(); agOrigen.AgenciaID = AgenciaConectadaID; agOrigen.ConsultarBasico(); if (agOrigen.TipoImpresionGuiaId == 0) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido."); return; } // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno. agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco; txtPaginaImpresion.Value = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); txtGuiaUnidadID.Value = ((Guia)guiaUnidad).GuiaID.ToString(); //string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion); //string script = "<script language='javascript'>\n"; //script += " window.showModalDialog('" + pagina + // "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');"; //script += " </script>\n"; //Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script); return; } } catch (Exception ex) { ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message)); } }
private void dtgDevolucion_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (e.CommandName == "Autorizar") { try { int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text); int EstadoID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text); int UsuarioID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[4].Text); int ClienteID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[6].Text); int ProveedorID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[8].Text); int UnidadLogisticaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[15].Text); int Cantidad = Utiles.Validaciones.obtieneEntero(e.Item.Cells[17].Text); int AgenciaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[18].Text); int GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[21].Text); //Controlar que no haya sido ya rechazada o autorizada if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar) { /*Tratar de realizar el egreso de stock del proveedor o del cliente.*/ IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion(); unidad.Cantidad = Cantidad * -1;// Es un egreso unidad.ClienteID = ClienteID; unidad.ProveedorID = ProveedorID; unidad.UsuarioID = UsuarioID; unidad.UnidadesLogisticasID = UnidadLogisticaID; unidad.Fecha = DateTime.Now; unidad.AgenciaID = AgenciaID; unidad.GuiaTemp = GuiaID; Session["UnidadLogistica"] = unidad; /*Actualizar la autorizacion como impresa.*/ IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Autorizado, unidad, txtObservacion.Text); //IList<IGuiaUnidadLogisticaDetalle> lista; //if (Session["UnidadesAsigAutDev"] != null) // lista = (List<IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAutDev"]; //else // lista = new List<IGuiaUnidadLogisticaDetalle>(); //lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle() //{ // Cantidad = unidad.Cantidad, // UnidadLogisticaId = unidad.UnidadesLogisticasID, // Descripcion = string.Empty, // ClienteId = unidad.ClienteID, // RazonCliente = unidad.RazonSocial, // ProveedorId = unidad.ProveedorID, // RazonProv = unidad.RazonSocial, // UsuarioID = unidad.UsuarioID, // AgenciaID = unidad.AgenciaID //}); //Session["UnidadesAsigAutDev"] = lista; BindGrid(0); //EmitirUnidadLogistica(); txtObservacion.Text = string.Empty; } else { throw new Exception("La devolucion ya ha sido autorizada o rechazada."); } } catch (Exception ex) { txtObservacion.Text = string.Empty; ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } } else if (e.CommandName == "Rechazar") { try { int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text); int EstadoID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text); //Controlar que no haya sido ya rechazada o autorizada if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar) { /*Actualizar la autorizacion como Rechazada.*/ IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica(); unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Rechazado, null, txtObservacion.Text); BindGrid(0); txtObservacion.Text = string.Empty; } else { throw new Exception("La devolucion ya ha sido autorizada o rechazada."); } } catch (Exception ex) { txtObservacion.Text = string.Empty; ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } } }
public bool Guardar(IGuiaUnidadLogistica guiaUnidadLogistica, SqlTransaction _transaccion) { bool manejarTransaccionEnElMetodo = false; int guiaT; System.Data.SqlClient.SqlTransaction transaccion; System.Data.SqlClient.SqlConnection conexion = new System.Data.SqlClient.SqlConnection(); if (_transaccion == null) { manejarTransaccionEnElMetodo = true; string connectionString = Config.Conexion.StringConexion; conexion.ConnectionString = connectionString; conexion.Open(); transaccion = conexion.BeginTransaction(); } else { transaccion = _transaccion; } try { if (AgregarProveedor) { Proveedor prov = new Proveedor(); prov.Documento = Documento; prov.RazonSocial = RazonSocial; if (!prov.Guardar(transaccion)) { transaccion.Rollback(); return(false); } proveedorID = prov.ProveedorID; } // Si tengo que emitir una Guia de Unidad de Logistica, si no es nulo. if (guiaUnidadLogistica != null) { Usuarios usuario = new Usuarios(); usuario.UsuarioID = UsuarioID; usuario.Consultar(); ((Guia)guiaUnidadLogistica).NoRegistrarEstadoEmitida = true; if (!guiaUnidadLogistica.EmitirGuiaUnidadLogistica(transaccion, usuario, false)) { transaccion.Rollback(); return(false); } } if (UnidadesLogisticasAsignacionID == 0) { if (guiaUnidadLogistica != null) { guiaT = (guiaUnidadLogistica.GuiasUnidadesLogisticas).GuiaID; } else { guiaT = GuiaTemp; } Config.Conexion.EjecutarSinResultados(transaccion, "UnidadesLogisticasAsignacionINS", UnidadesLogisticasID, AgenciaID, Utiles.BaseDatos.IntToSql(ClienteID), Utiles.BaseDatos.IntToSql(ProveedorID), Cantidad, Fecha, UsuarioID, ObservacionID, guiaT, 0); //el 0 es asignacion manual, 1 asignacion automatica } if (manejarTransaccionEnElMetodo) { transaccion.Commit(); return(true); } else { return(true); } } catch (Exception ex) { if (manejarTransaccionEnElMetodo) { transaccion.Rollback(); } throw (ex); } finally { if (manejarTransaccionEnElMetodo) { conexion.Close(); } } }