public void EscribirSolicitudRetiro(DataSet dsSolicitudRetiro, DataSet dsOrdenRetiro, DataSet dsOrdenRetiroConceptoFacturable, DataSet dsDestinatario, DataSet dsDomicilio, DataSet dsDomicilioCliente, DataSet dsRemitente, DataSet dsDomicilioRemitente) { using (SqlConnection conexion = new SqlConnection()) { SqlTransaction transaccion = null; conexion.ConnectionString = Config.ConnectionString; System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.InvariantCulture; try { conexion.Open(); transaccion = conexion.BeginTransaction(); int domicilioClienteID = 0; int clienteID = 0; int destinatarioID = 0; int solicitudRetiroID = 0; int remitenteID = 0; // Obtengo los datos de la solicitud foreach (System.Data.DataRow dr in dsSolicitudRetiro.Tables[0].Rows) { solicitudRetiroID = Utiles.Validaciones.obtieneEntero(dr["SolicitudRetiroID"].ToString()); int agenciaRetiroID = Utiles.Validaciones.obtieneEntero(dr["AgenciaRetiroID"].ToString()); clienteID = Utiles.Validaciones.obtieneEntero(dr["ClienteID"].ToString()); int estadoSolicitudRetiroID = Utiles.Validaciones.obtieneEntero(dr["EstadoSolicitudID"].ToString()); int numeroSolicitud = Utiles.Validaciones.obtieneEntero(dr["NumeroSolicitud"].ToString()); DateTime fechaAlta = Convert.ToDateTime(dr["FechaAlta"]); bool esSolicitudDespacho = Convert.ToBoolean(dr["EsSolicitudDespacho"]); string observacion = Convert.ToString(dr["Observacion"]); DateTime fechaConfirmacion = DateTime.Now; try { fechaConfirmacion = dr["FechaConfirmacion"] != null?Convert.ToDateTime(dr["FechaConfirmacion"]) : DateTime.Now; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } domicilioClienteID = Utiles.Validaciones.obtieneEntero(dr["DomicilioClienteID"].ToString()); int ordenRetiroDomicilioClienteID = 0; // obtengo los datos del domicilio de la solicitud de retiro foreach (System.Data.DataRow drDC in dsDomicilioCliente.Tables[0].Select("DomicilioClienteID=" + domicilioClienteID.ToString())) { string domicilio = drDC["Domicilio"].ToString(); domicilioClienteID = Utiles.Validaciones.obtieneEntero(drDC["DomicilioClienteID"].ToString()); int localidadID = Utiles.Validaciones.obtieneEntero(drDC["LocalidadID"].ToString()); // Guardar domicilio del cliente ordenRetiroDomicilioClienteID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "OrdenRetiroDomicilioClienteINS", domicilioClienteID, domicilio, localidadID)); break; } // Guardar cabecera solicitud de retiro Config.Conexion.EjecutarSinResultados(transaccion, "SolicitudRetiroINS", solicitudRetiroID, agenciaRetiroID, clienteID, ordenRetiroDomicilioClienteID, estadoSolicitudRetiroID, numeroSolicitud, fechaAlta, fechaConfirmacion, esSolicitudDespacho, observacion); break; } // Obtengo los datos de las órdenes de retiro foreach (System.Data.DataRow drOR in dsOrdenRetiro.Tables[0].Rows) { int agenciaID = Utiles.Validaciones.obtieneEntero(drOR["AgenciaID"].ToString()); double alto = Convert.ToDouble(drOR["Alto"].ToString(), culture); double ancho = Convert.ToDouble(drOR["Ancho"].ToString(), culture); double bultos = Convert.ToDouble(drOR["Bultos"].ToString(), culture); double largo = Convert.ToDouble(drOR["Largo"]); int localidadID = Utiles.Validaciones.obtieneEntero(drOR["LocalidadID"].ToString()); int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(drOR["ModalidadEntregaID"].ToString()); string numeroOrden = drOR["NumeroOrden"].ToString(); int ordenRetiroID = Utiles.Validaciones.obtieneEntero(drOR["OrdenRetiroID"].ToString()); int idPromocionWeb = 0; try { idPromocionWeb = Utiles.Validaciones.obtieneEntero(drOR["IdPromocionWeb"].ToString()); } catch {} double peso = Convert.ToDouble(drOR["Peso"].ToString(), culture); /* Cálculo del peso aforado */ ParametroUNegocio param = new ParametroUNegocio(); param.UnidadNegocioID = 1; param.Parametro = SisPack.Parametro.ValorDivisionCalculoPesoAforado; param.ConsultarServicio(); //valorDivPesoAforado: Valor por el cual se divide para encontrar el peso aforado. int valorDivPesoAforado = Convert.ToInt32(param.ValorString); param = null; double pesoAforado = Convert.ToDouble(((alto * ancho * largo) / valorDivPesoAforado), culture); int provinciaID = Utiles.Validaciones.obtieneEntero(drOR["ProvinciaID"].ToString()); int unidadVentaID = Utiles.Validaciones.obtieneEntero(drOR["UnidadVentaID"].ToString()); double valorDeclarado = Convert.ToDouble(drOR["ValorDeclarado"].ToString(), culture); string destino = drOR["Destino"].ToString(); solicitudRetiroID = Utiles.Validaciones.obtieneEntero(drOR["SolicitudRetiroID"].ToString()); destinatarioID = Utiles.Validaciones.obtieneEntero(drOR["DestinatarioID"].ToString()); string remitoClienteNro = drOR["RemitoClienteNro"].ToString(); remitenteID = Utiles.Validaciones.obtieneEntero(drOR["RemitenteID"].ToString()); int ordenRetiroDomicilioID = 0; // obtengo los datos del destinatario de la orden de retiro foreach (System.Data.DataRow drD in dsDestinatario.Tables[0].Select("DestinatarioID = " + destinatarioID.ToString())) { string apellido = drD["Apellido"].ToString(); int condicionIVAID = Utiles.Validaciones.obtieneEntero(drD["CondicionIVAID"].ToString()); destinatarioID = Utiles.Validaciones.obtieneEntero(drD["DestinatarioID"].ToString()); int domicilioID = Utiles.Validaciones.obtieneEntero(drD["DomicilioID"].ToString()); string nombre = drD["Nombre"].ToString(); string nroCUIT = ""; try { nroCUIT = drD["NroCUIT"] != null ? drD["NroCUIT"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } int nroDocumento = Utiles.Validaciones.obtieneEntero(drD["NroDocumento"].ToString()); int tipoDocumentoID = Utiles.Validaciones.obtieneEntero(drD["TipoDocumentoID"].ToString()); // obtengo los datos del domicilio del destinatario foreach (System.Data.DataRow drDD in dsDomicilio.Tables[0].Select("DomicilioID = " + domicilioID.ToString())) { bool baja = Convert.ToBoolean(drDD["Baja"]); string calle = drDD["Calle"].ToString(); string calleNro = drDD["CalleNro"].ToString(); string depto = ""; try { depto = drDD["Dept"] != null ? drDD["Depto"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } string esEventual = drDD["EsEventual"].ToString(); string fax = ""; try { fax = drDD["Fax"] != null ? drDD["Fax"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } int localidadDomID = Utiles.Validaciones.obtieneEntero(drDD["LocalidadID"].ToString()); string telefono = drDD["Telefono"].ToString(); ordenRetiroDomicilioID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "OrdenRetiroDomicilioINS", domicilioID, calle, calleNro, depto, esEventual, fax, localidadDomID, telefono)); break; } destinatarioID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "DestinatarioINS", destinatarioID, ordenRetiroID, apellido, condicionIVAID, nombre, Utiles.BaseDatos.StrToSql(nroCUIT), nroDocumento, tipoDocumentoID, ordenRetiroDomicilioID)); } // obtengo los datos del remitente de la orden de retiro foreach (System.Data.DataRow drR in dsRemitente.Tables[0].Select("RemitenteID = " + remitenteID.ToString())) { string apellido = drR["Apellido"].ToString(); int condicionIVAID = Utiles.Validaciones.obtieneEntero(drR["CondicionIVAID"].ToString()); remitenteID = Utiles.Validaciones.obtieneEntero(drR["RemitenteID"].ToString()); int domicilioID = Utiles.Validaciones.obtieneEntero(drR["DomicilioID"].ToString()); string nombre = drR["Nombre"].ToString(); string nroCUIT = ""; try { nroCUIT = drR["NroCUIT"] != null ? drR["NroCUIT"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } int nroDocumento = Utiles.Validaciones.obtieneEntero(drR["NroDocumento"].ToString()); int tipoDocumentoID = Utiles.Validaciones.obtieneEntero(drR["TipoDocumentoID"].ToString()); // obtengo los datos del domicilio del remitente foreach (System.Data.DataRow drDR in dsDomicilioRemitente.Tables[0].Select("DomicilioID = " + domicilioID.ToString())) { bool baja = Convert.ToBoolean(drDR["Baja"]); string calle = drDR["Calle"].ToString(); string calleNro = drDR["CalleNro"].ToString(); string depto = ""; try { depto = drDR["Dept"] != null ? drDR["Depto"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } string esEventual = drDR["EsEventual"].ToString(); string fax = ""; try { fax = drDR["Fax"] != null ? drDR["Fax"].ToString() : ""; } catch (Exception) { // Necesito capturarlo ya que en algunos casos no viene... } int localidadDomID = Utiles.Validaciones.obtieneEntero(drDR["LocalidadID"].ToString()); string telefono = drDR["Telefono"].ToString(); ordenRetiroDomicilioID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "OrdenRetiroDomicilioINS", domicilioID, calle, calleNro, depto, esEventual, fax, localidadDomID, telefono)); break; } remitenteID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "RemitenteINS", remitenteID, ordenRetiroID, apellido, condicionIVAID, nombre, Utiles.BaseDatos.StrToSql(nroCUIT), nroDocumento, tipoDocumentoID, ordenRetiroDomicilioID)); } Config.Conexion.EjecutarSinResultados(transaccion, "OrdenRetiroINS", ordenRetiroID, numeroOrden, agenciaID, alto, ancho, bultos, largo, localidadID, modalidadEntregaID, peso, provinciaID, unidadVentaID, valorDeclarado, solicitudRetiroID, clienteID, destinatarioID, destino, pesoAforado, remitoClienteNro, remitenteID, idPromocionWeb); // obtengo los datos de los conceptos facturables de la orden actual foreach (System.Data.DataRow drORC in dsOrdenRetiroConceptoFacturable.Tables[0].Select("OrdenRetiroID = " + ordenRetiroID.ToString())) { double importeCR = Convert.ToDouble(drORC["ImporteCR"].ToString(), culture); double importeEntrega = Convert.ToDouble(drORC["ImporteEntrega"].ToString(), culture); double importeFlete = Convert.ToDouble(drORC["ImporteFlete"].ToString(), culture); double importeIVA = Convert.ToDouble(drORC["ImporteIVA"].ToString(), culture); double importeNeto = Convert.ToDouble(drORC["ImporteNeto"].ToString(), culture); double importeRetiro = Convert.ToDouble(drORC["ImporteRetiro"].ToString(), culture); double importeSeguro = Convert.ToDouble(drORC["ImporteSeguro"].ToString(), culture); double importeTotal = Convert.ToDouble(drORC["ImporteTotal"].ToString(), culture); Config.Conexion.EjecutarSinResultados(transaccion, "OrdenRetiroConceptoFacturableINS", ordenRetiroID, importeCR, importeEntrega, importeFlete, importeIVA, importeNeto, importeRetiro, importeSeguro, importeTotal); break; } } // Marco como procesada la solicitud que estaba pendiente de procesar. Config.Conexion.EjecutarSinResultados(transaccion, "SolicitudProcesadaUPD", solicitudRetiroID); string dirXML = System.Configuration.ConfigurationSettings.AppSettings["dirsolicitudesProcesadas"]; DirectoryInfo dir = new DirectoryInfo(dirXML); Mover(solicitudRetiroID + "S.xml", dir); Mover(solicitudRetiroID + "OR.xml", dir); Mover(solicitudRetiroID + "ORC.xml", dir); Mover(solicitudRetiroID + "D.xml", dir); Mover(solicitudRetiroID + "DS.xml", dir); Mover(solicitudRetiroID + "DC.xml", dir); Mover(solicitudRetiroID + "R.xml", dir); Mover(solicitudRetiroID + "DR.xml", dir); culture = null; transaccion.Commit(); } catch (Exception ex) { transaccion.Rollback(); throw ex; } } }
public bool ModificarGuia() { try { /* ver despues el tema del detalle * oGuiaFact.ImporteNetoTotal = this.ImporteNetoTotal; * oGuiaFact.ImporteTotalGuia = this.ImporteTotalCobrar; * oGuiaFact.IVAInscriptoTotal = this.ImporteIVAInscripto; */ using (SqlConnection conexion = new SqlConnection()) { SqlTransaction transaccion = null; conexion.ConnectionString = Config.ConnectionString; conexion.Open(); transaccion = conexion.BeginTransaction(); if (this.TipoGuia == "A") { IParametroUNegocio parametroUN = new ParametroUNegocio(); DsParametros dsParamUNegocio = parametroUN.GetParametrosDataSet(); DsParametros.DatosRow[] drsPARAM = (DsParametros.DatosRow[])dsParamUNegocio.Datos.Select("ParametroID = " + (int)SisPack.Parametro.PorcentajeIVA + "AND UnidadNegocioID = " + this.UnidadNegocioID); double porcentajeIVAAplicado = Convert.ToDouble(drsPARAM[0].ValorString); this.ImporteNetoTotal = this.ImporteFlete + this.ImporteSeguro + this.ImporteRetiro + this.ImporteEntrega; this.IVAInscriptoTotal = this.ImporteNetoTotal * (porcentajeIVAAplicado / 100); this.ImporteTotalCobrar = this.ImporteTotalCobrar = this.ImporteNetoTotal + this.IVAInscriptoTotal; } else if (this.TipoGuia == "B") { this.ImporteNetoTotal = this.ImporteFlete + this.ImporteSeguro + this.ImporteRetiro + this.ImporteEntrega; this.ImporteTotalCobrar = this.ImporteFlete + this.ImporteSeguro + this.ImporteRetiro + this.ImporteEntrega; } Config.Conexion.EjecutarSinResultados(transaccion, "GuiaUDP", this.guiaID, this.nroSucursalGuia, this.nroGuia, this.tipoGuia, this.unidadNegocioID, this.agenciaOrigenID, this.agenciaDestinoID, this.cantBultos, this.observaciones, this.valorDeclarado, this.modalidadEntregaID, this.pesoTotal, this.tipoBultoID, this.importeNetoTotal, this.ImporteTotalCobrar, this.importeIVAInscripto, this.CantBultos, this.PesoTotal, this.UnidadVentaID); //FLETE int guiaFacturaConceptoFacturableID = 0; guiaFacturaConceptoFacturableID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, SisPack.ConceptoFacturable.FleteNacional, (this.ImporteFlete - this.ImporteRedespacho))); Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", guiaFacturaConceptoFacturableID, SisPack.SubConceptoFacturable.FleteNacional, (this.ImporteFlete - this.ImporteRedespacho)); //RETIRO guiaFacturaConceptoFacturableID = 0; guiaFacturaConceptoFacturableID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, SisPack.ConceptoFacturable.Retiro, (this.ImporteRetiro))); Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", guiaFacturaConceptoFacturableID, SisPack.SubConceptoFacturable.Retiro, (this.ImporteRetiro)); //ENTREGA guiaFacturaConceptoFacturableID = 0; guiaFacturaConceptoFacturableID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, SisPack.ConceptoFacturable.Entrega, (this.ImporteEntrega))); Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", guiaFacturaConceptoFacturableID, SisPack.SubConceptoFacturable.Entrega, (this.ImporteEntrega)); //SEGURO guiaFacturaConceptoFacturableID = 0; guiaFacturaConceptoFacturableID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, SisPack.ConceptoFacturable.Seguro, (this.ImporteSeguro))); Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", guiaFacturaConceptoFacturableID, SisPack.SubConceptoFacturable.Seguro, (this.ImporteSeguro)); /* * //RETIRO * if(this.tieneRetiroDomicilio) * { * IGuiaFacturaConceptoFacturable oConcepRetiro = oGuiaFact.ConceptosFacturablesCol.AddFacturaConcFacturable(); * oConcepRetiro.ConceptoFacturable = SisPack.ConceptoFacturable.Retiro; * oConcepRetiro.ImporteTotal = this.ImporteRetiro; * * oConcepRetiro.GuiaFacturaConceptoFacturableID = Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, oConcepRetiro.ConceptoFacturable, oConcepRetiro.ImporteTotal); * * IGuiaFacturaDetalleConcFacturable oDetaConcepRetiro = oDetalle.ConceptosFactuDetaCol.AddFacturaDetalleConcFacturable(); * oDetaConcepRetiro.ConceptoFacturableID = SisPack.ConceptoFacturable.Retiro; * * IGuiaFacturaDetalleSubConcFacturable oDetaSubConceptoRetiro = oDetaConcepRetiro.SubConceptosFactuDetaCol.AddFacturaDetalleSubConcFacturable(); * oDetaSubConceptoRetiro.SubConceptoFacturableID = SisPack.SubConceptoFacturable.Retiro; * oDetaSubConceptoRetiro.Importe = this.ImporteRetiro; * * Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", oConcepRetiro.GuiaFacturaConceptoFacturableID , oDetaSubConceptoRetiro.SubConceptoFacturableID, oDetaSubConceptoRetiro.Importe); * } * * //ENTREGA * if(this.tieneEntregaDomicilio && !this.PagaEntregaEnDomicilio) * { * IGuiaFacturaConceptoFacturable oConcepEntrega = oGuiaFact.ConceptosFacturablesCol.AddFacturaConcFacturable(); * oConcepEntrega.ConceptoFacturable = SisPack.ConceptoFacturable.Entrega; * oConcepEntrega.ImporteTotal = this.ImporteEntrega; * * oConcepEntrega.GuiaFacturaConceptoFacturableID = Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, oConcepEntrega.ConceptoFacturable, oConcepEntrega.ImporteTotal); * * IGuiaFacturaDetalleConcFacturable oDetaConcepEntrega = oDetalle.ConceptosFactuDetaCol.AddFacturaDetalleConcFacturable(); * oDetaConcepEntrega.ConceptoFacturableID = SisPack.ConceptoFacturable.Entrega; * //oDetaConcepEntrega.Importe = this.ImporteEntrega; * * IGuiaFacturaDetalleSubConcFacturable oDetaSubConceptoEntrega = oDetaConcepEntrega.SubConceptosFactuDetaCol.AddFacturaDetalleSubConcFacturable(); * oDetaSubConceptoEntrega.SubConceptoFacturableID = SisPack.SubConceptoFacturable.Entrega; * oDetaSubConceptoEntrega.Importe = this.ImporteEntrega; * * Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleSubConceptoFacturableUPD", oConcepEntrega.GuiaFacturaConceptoFacturableID , oDetaSubConceptoEntrega.SubConceptoFacturableID, oDetaSubConceptoEntrega.Importe); * * } * * //SEGURO * if(this.ImporteSeguro > 0 || (this.DefineMovimMensual && this.importeSeguroTotal>0)) * { * IGuiaFacturaConceptoFacturable oConcepSeguro = oGuiaFact.ConceptosFacturablesCol.AddFacturaConcFacturable(); * oConcepSeguro.ConceptoFacturable = SisPack.ConceptoFacturable.Seguro; * oConcepSeguro.ImporteTotal = this.ImporteSeguro; * * oConcepSeguro.GuiaFacturaConceptoFacturableID = Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleConceptoFacturableUPD", this.GuiaID, oConcepSeguro.ConceptoFacturable, oConcepSeguro.ImporteTotal); * * IGuiaFacturaDetalleConcFacturable oDetaConcepSeguro = oDetalle.ConceptosFactuDetaCol.AddFacturaDetalleConcFacturable(); * oDetaConcepSeguro.ConceptoFacturableID = SisPack.ConceptoFacturable.Seguro; * //oDetaConcepSeguro.Importe = this.ImporteSeguro; * * IGuiaFacturaDetalleSubConcFacturable oDetaSubConceptoSeguro = oDetaConcepSeguro.SubConceptosFactuDetaCol.AddFacturaDetalleSubConcFacturable(); * oDetaSubConceptoSeguro.SubConceptoFacturableID = SisPack.SubConceptoFacturable.Seguro; * oDetaSubConceptoSeguro.Importe = this.ImporteSeguro; * } */ transaccion.Commit(); return(true); } } catch (Exception ex) { throw ex; } }
public bool EmitirGuiaUnidadLogistica(SqlTransaction _transaccion, IUsuarios usuario, bool validarStock) { bool manejarTransaccionEnElMetodo = false; 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 { //Agencia ag = new Agencia(); //ag.AgenciaID = AgenciaOrigenID; //ag.CargarDatosCAIParaTipoGuiaFactura("X"); //NumeroCAI = ag.NumeroCAI; NumeroCAI = string.Empty; FechaEmision = DateTime.Now; UsuarioID = usuario.UsuarioID; ImporteTotalGuia = 0; Observaciones = this.SetObservaciones(); ParametroUNegocio parametro = new ParametroUNegocio(); parametro.UnidadNegocioID = this.UnidadNegocioID; parametro.Parametro = SisPack.Parametro.ClienteGuiaRendicion; parametro.Consultar(); if (parametro.ValorString == null) { transaccion.Rollback(); return(false); } base.FechaDespacho = DateTime.Now; DestinatarioCliente = Convert.ToInt32(parametro.ValorString); //Germán 16/06/2016 Problema en la emisión de guía unidad logística base.EmpresaFacturacionID = 1; if (base.Emitir(transaccion, usuario)) { guiasUnidadesLogisticas.GuiaID = this.GuiaID; guiasUnidadesLogisticas.AgenciaUsuaria = this.AgenciaOrigenID; this.guiasUnidadesLogisticas.Guardar(transaccion, usuario, validarStock); } GuiaFacturaDetalle detalle = new GuiaFacturaDetalle(); detalle.AgenciaOrigenID = this.AgenciaOrigenID; detalle.CantidadBultos = 0; detalle.GuiaID = this.GuiaID; parametro.Parametro = SisPack.Parametro.UnidadVentaUnidadLogistica; parametro.Consultar(); if (parametro.ValorString == null) { transaccion.Rollback(); return(false); } detalle.UnidadVentaID = Convert.ToInt32(parametro.ValorString); if (!detalle.Guardar(transaccion)) { transaccion.Rollback(); return(false); } // Si es un pedido de devolucion. if (EsPedidoDevolucion) { DevolverGuiaUnidadLogistica(usuario, transaccion); } if (manejarTransaccionEnElMetodo) { transaccion.Commit(); return(true); } else { return(true); } } catch (Exception ex) { if (manejarTransaccionEnElMetodo) { transaccion.Rollback(); } throw (ex); } finally { if (manejarTransaccionEnElMetodo) { conexion.Close(); } } }