public bool ActualizarEstadoPedidoDevolucion(int UnidadLogisticaPedidoDevolucionID, IUsuarios usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica Estado, IUnidadesLogisticasAsignacion unidad, string observacion) { using (SqlConnection conexion = new SqlConnection()) { SqlTransaction transaccion = null; conexion.ConnectionString = Config.ConnectionString; try { conexion.Open(); transaccion = conexion.BeginTransaction(); if (unidad != null) { unidad.Guardar(null, transaccion); } Config.Conexion.EjecutarSinResultados(transaccion, "UnidadLogisticaPedidoDevolucionUPD", UnidadLogisticaPedidoDevolucionID, (int)Estado, usuario.UsuarioID, observacion); // Si se rechaza el pedido, debo anular la guia asociada. if (Estado == NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Rechazado) { System.Data.DataSet ds = new System.Data.DataSet(); SqlParameter pUnidadLogisticaPedidoDevolucionID = new SqlParameter("@UnidadLogisticaPedidoDevolucionID", Utiles.BaseDatos.IntToSql(UnidadLogisticaPedidoDevolucionID)); ds = Config.Conexion.EjecutarDataSet(System.Data.CommandType.StoredProcedure, "UnidadLogisticaPedidoDevolucionSEL", pUnidadLogisticaPedidoDevolucionID); if (ds.Tables[0].Rows.Count > 0) { IGuia guia = new Guia(); guia.GuiaID = Utiles.Validaciones.obtieneEntero(ds.Tables[0].Rows[0]["GuiaID"].ToString()); guia.Anular("Anulada por rechazo de Devolucion de Unidad de Logistica.", Utiles.Validaciones.obtieneEntero(ds.Tables[0].Rows[0]["AgenciaID"].ToString()), transaccion, usuario); } } transaccion.Commit(); return(true); } catch (Exception ex) { transaccion.Rollback(); throw ex; } } }
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); } }