예제 #1
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            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 conformadas
            Hashtable hGuiasIncompletas          = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)
            Hashtable hRemitosFaltaIngresarDatos = new Hashtable(); // Remitos que no se pueden conformar por que le falta ingresar los datos para facturar

            DsFacturaImpresion.DatosRow drFac;
            Hashtable hGuiasSinCompletar = new Hashtable(); // Guías que pertenecen a la HRepartidor original pero que no se ingresaron en la conformacion/observacion masiva.
            Hashtable hGuiasIngresadas   = new Hashtable(); // Guías que se ingresaron, lo utilizo para hacer una validacion al final

            // Busco los datos de la agencia
            IAgencia datosAgencia = AgenciaFactory.GetAgencia();

            datosAgencia.AgenciaID = usuario.AgenciaID;
            datosAgencia.Consultar();

            DsDatosGenerarFactura dsDatosFacturasAGenerar;

            if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
            {
                dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
            }
            else
            {
                dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
            }
            DsFacturaImpresion          dsFAImprimir = new DsFacturaImpresion();
            DsDetalleHojaRutaRepartidor dsDetalle    = new DsDetalleHojaRutaRepartidor();
            DsHojaRutaRepartidor        dsHR         = (DsHojaRutaRepartidor)Session["dsHojaRutaRepartidor"];

            if (Session["DsDetalleHojaRutaRepartidor"] != null)
            {
                dsDetalle = (DsDetalleHojaRutaRepartidor)Session["DsDetalleHojaRutaRepartidor"];
            }

            if (Session["hGuiasIngresadas"] != null)
            {
                hGuiasIngresadas = (Hashtable)Session["hGuiasIngresadas"];
            }

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                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.UsuarioID       = usuario.UsuarioID;

                IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                oGuiaFactura.UsuarioID = usuario.UsuarioID;

                // si la guía existe en el sistema, verifco si está en condiciones de conformarse y si es así la conformo
                if (oGuia.GuiaID > 0)
                {
                    //SFE: 22/08/2012. Guardo las guias ingresadas para al final del foreach realizar una validacion.
                    hGuiasIngresadas.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);

                    // Reviso si la guía esta en condiciones de ser conformada (tanto por que tiene los estados necesarios
                    // en la cabecera de la guía o en los estados historicos)
                    if (EsConformable(oGuia))
                    {
                        // Reviso si se trata de un remito por un flete pago en destino y si es asi, si esta o no facturado
                        if (tGuia == "R" && oGuia.GuiaTieneFPD() && oGuia.RemitoEstaFacturado() == false)
                        {
                            // Se trata de un remito.
                            // Reviso si tengo que observar la guía o conformarla
                            if (Utiles.Validaciones.obtieneEntero(observacionID) > 0)
                            {
                                // tengo que observar la guía
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            }

                            // Tengo que conformar la guía
                            // Reviso si la agencia es autoimpresora
                            if (datosAgencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                            {
                                // la agencia no es autoimpresora. marco como que no se puede conformar la guía
                                hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                            }
                            else
                            {
                                // La agencia es autoimpresora
                                // Reviso si se ingreso la información para facturar el remito
                                if (Validaciones.obtieneEntero(dsDatosFacturasAGenerar.Datos.Compute("count(guiaid)", "guiaid=" + oGuia.GuiaID.ToString()).ToString()) == 0)
                                {
                                    dsDatosFacturasAGenerar.Datos.Select("guiaid =" + oGuia.GuiaID.ToString());
                                    // No se ingreso la información de la factura.
                                    if (hRemitosFaltaIngresarDatos.ContainsKey(oGuia.GuiaID) == false)
                                    {
                                        hRemitosFaltaIngresarDatos.Add(oGuia.GuiaID, nroGuia);//Validaciones.obtieneEntero(nroSucursal).ToString("0000") + " - " + Validaciones.obtieneEntero(nroGuia).ToString("00000000") + "-" + tGuia);
                                        ok = false;
                                    }
                                }
                                else
                                {
                                    // Si se ingreso la información de la factura
                                    ((IGuia)oGuiaFactura).GuiaID    = oGuia.GuiaID;
                                    ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID;

                                    // Cargo la información para realizar la factura
                                    IFactura oFactura = CargarDatosFactura(((IGuia)oGuiaFactura).GuiaID);
                                    ((IGuia)oGuiaFactura).OFactura = oFactura;

                                    DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                    dr.GuiaID        = oGuia.GuiaID;
                                    dr.ObservacionID = oGuia.ObservacionID;
                                    dr.Observaciones = sObsDescrip;
                                    dsDetalle.Datos.AddDatosRow(dr);
                                    dsDetalle.Datos.AcceptChanges();
                                }
                            }
                        }
                        else
                        {
                            // Se trata de una guía normal o de un remito de un cliente coorporativo. No de un remito por Flete pago en destino. O el remito ya esta facturado
                            ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                            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;

                            // Si la agencia conectada es igual a la agencia de destino, le permito conformar
                            if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID ||
                                 ((this.AgenciaConectadaID != oGuia.AgenciaDestinoID || this.AgenciaConectadaID == agAdm) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion) ||
                                 (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia)) ||
                                 (this.EsGuiaDePuntoRecepcionReferenciado(oGuia))))
                            {
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);

                                DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                //DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                dr.GuiaID        = oGuia.GuiaID;
                                dr.ObservacionID = oGuia.ObservacionID;
                                dr.Observaciones = sObsDescrip;
                                dsDetalle.Datos.AddDatosRow(dr);
                                dsDetalle.Datos.AcceptChanges();
                            }
                            else
                            {
                                // No se puede conformar...
                                string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                                if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                                {
                                    hGuiasNR.Add(oGuia.GuiaID, guia);
                                    // SFE
                                    ok = false;
                                }
                            }
                        }
                    } // fin if EsConformable
                    else
                    {
                        // La guía no existe... no se puede conformar...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                        ok = false;
                    }
                }
                else
                {
                    // La guía no existe... no se puede conformar...
                    string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                    if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                    {
                        hGuiasNR.Add(oGuia.GuiaID, guia);
                    }
                    ok = false;
                }
            } // fin for


            //SFE: 22/08/2012. Recorro el detalle de las guias que componen la Hoja de Ruta del Repartidor
            foreach (DsHojaRutaRepartidor.GuiasRow item in dsHR.Guias)
            {
                //SFE: 22/08/2012. Valido que las guias que se ingresaron se correspondan y esten todas con las guias de la HRepartidor
                // Es decir verifico que en el HashTable de guias ingresadas exista el item que compone la HR, sino existe la coloco en el Hash de guias sin completar para mostrarla nuevamente.
                if (hGuiasIngresadas.ContainsKey(item.GuiaID) == false)
                {
                    ok = false;
                    hGuiasSinCompletar.Add(item.GuiaID, item.NroCompletoGuia);
                }
            }
            //SFE: 22/08/2012. Fin

            // Este dsDetalle contiene las guias ingresadas y que pertenecen a la HRepartidor, va a servir para marcarlas en la pagina de atras (la que llama).
            Session["DsDetalleHojaRutaRepartidor"] = dsDetalle;
            Session["GuiasNR"] = hGuiasNR;
            Session["hRemitosFaltaIngresarDatos"] = hRemitosFaltaIngresarDatos;
            Session["hGuiasSinCompletar"]         = hGuiasSinCompletar;
            Session["hGuiasIngresadas"]           = hGuiasIngresadas;

            StringBuilder scriptRedirect = new StringBuilder();

            if (ok)
            {
                Session["GuiasDefectuosas"]   = null;
                Session["hGuiasIngresadas"]   = null;
                Session["hGuiasSinCompletar"] = null;

                StringBuilder scriptFinal = new StringBuilder();
                scriptFinal.Append("<script type=\"text/javascript\">\n");
                scriptFinal.Append("window.close();\n");
                scriptFinal.Append("</script>");
                Page.RegisterStartupScript("DatosRegistrados", scriptFinal.ToString());
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;;

                Hashtable hGuiasNr = new Hashtable();
                if (Session["GuiasNR"] != null)
                {
                    hGuiasNr = (Hashtable)Session["GuiasNR"];

                    if (hGuiasNr.Count > 0)
                    {
                        MostrarGuiasNoConformables(hGuiasNr);
                    }
                }
                else
                {
                    this.lblMensaje.Visible = false;
                }

                if (Session["hRemitosFaltaIngresarDatos"] != null && ((Hashtable)Session["hRemitosFaltaIngresarDatos"]).Count > 0)
                {
                    // Si hay remitos que no se conformaron por falta de ingreso de datos. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarRemitosSinConformarPorFaltaDatos();
                }
                if (Session["hGuiasSinCompletar"] != null && ((Hashtable)Session["hGuiasSinCompletar"]).Count > 0)
                {
                    // Si hay guias que pertenecen a la HRepartidor y no se ingresaron. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarGuiasNoIngresadas();
                }
            }
        }
        private DsGuiaFacturaImpresion ToDsGuiaFacturaConceptoImpresion(DsFacturaImpresion dsFac)
        {
            DsGuiaFacturaImpresion ds = new DsGuiaFacturaImpresion();

            DsGuiaFacturaImpresion.DatosRow dr = ds.Datos.NewDatosRow();

            foreach (DsFacturaImpresion.DatosRow drFac in dsFac.Datos.Rows)
            {
                dr.GuiaID                      = drFac.IsGuiaIDNull() ? 0 : drFac.GuiaID;
                dr.TipoGuia                    = drFac.IsTipoGuiaNull() ? "" : drFac.TipoGuia;
                dr.NroSucursalGuia             = drFac.IsNroSucursalGuiaNull() ? "" : drFac.NroSucursalGuia;
                dr.NroGuia                     = drFac.IsNroGuiaNull() ? 0 : drFac.NroGuia;
                dr.CUITAgentePago              = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CondicionIvaAgentePago      = drFac.IsCondicionIvaAgentePagoNull() ? 0 : drFac.CondicionIvaAgentePago;
                dr.NombreAgenciaDestino        = drFac.IsNombreAgenciaDestinoNull() ? "" : drFac.NombreAgenciaDestino;
                dr.FechaEmision                = drFac.IsFechaEmisionNull() ? "" : drFac.FechaEmision;
                dr.CodCliente                  = drFac.IsCodigoDestinatarioNull() ? "" : drFac.CodigoDestinatario;
                dr.NombrePersonaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.NombreEmpresaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.DireccionDestinatario       = drFac.IsDireccionNull() ? "" : drFac.Direccion;
                dr.LocalidadDestinatario       = drFac.IsLocalidadNull() ? "" : drFac.Localidad;
                dr.TelefonoDestinatario        = drFac.IsTelefonoNull() ? "" : drFac.Telefono;
                dr.NroCuitAgentePago           = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CantidadBultosTotal         = System.Convert.ToInt32(drFac.IsCantidadBultosTotalNull() ? 0 : drFac.CantidadBultosTotal);
                dr.VolumenTotal                = drFac.IsVolumenTotalNull() ? 0.00 : drFac.VolumenTotal;
                dr.ValorDeclaradoTotal         = drFac.ValorDeclaradoTotal;
                dr.ValorDeclaradoBulto         = drFac.IsValorDeclaradoBultoNull() ? 0.00 : drFac.ValorDeclaradoBulto;
                dr.PesoTotal                   = drFac.IsPesoTotalNull() ? 0.00 : drFac.PesoTotal;
                dr.ImporteFleteNacional        = drFac.IsImporteFleteNacionalNull() ? 0.00 : drFac.ImporteFleteNacional;
                dr.ImporteSeguro               = drFac.IsImporteSeguroNull() ? 0.00 : drFac.ImporteSeguro;
                dr.ImporteRetiro               = drFac.IsImporteRetiroNull() ? 0.00 : drFac.ImporteRetiro;
                dr.ImporteEntrega              = drFac.IsImporteEntregaNull() ? 0.00 : drFac.ImporteEntrega;
                dr.ImporteComisContraReembolso = drFac.IsImporteComisContraReembolsoNull() ? 0.00 : drFac.ImporteComisContraReembolso;
                dr.ImporteServicioAdicional    = drFac.IsImporteServicioAdicionalNull() ? 0.00 : drFac.ImporteServicioAdicional;
                dr.TipoImpresionGuiaID         = drFac.IsTipoImpresionGuiaIDNull() ? 0 : drFac.TipoImpresionGuiaID;
                dr.ImporteNetoTotal            = drFac.IsImporteNetoNull() ? "" : drFac.ImporteNeto;
                dr.IVAInscriptoTotal           = drFac.IsIVAInscriptoTotalNull() ? "" : drFac.IVAInscriptoTotal.ToString("#,###0.00");
                dr.ImporteTotalGuia            = drFac.IsImporteTotalNull() ? 0.00 : drFac.ImporteTotal;
                dr.EsContado                   = drFac.IsEsContadoNull() ? false : drFac.EsContado;
                dr.EsCtaCte                    = drFac.IsEsCtaCteNull() ? false : drFac.EsCtaCte;
                dr.EsTarjeta                   = drFac.IsEsTarjetaNull() ? false : drFac.EsTarjeta;
                dr.EsPagoEnDestino             = drFac.IsEsPagoEnDestinoNull() ? false : drFac.EsPagoEnDestino;
                dr.FechaInicioActividades      = drFac.IsFechaInicioActividadesNull() ? new DateTime(1, 1, 1) : drFac.FechaInicioActividades;
                dr.NombreAgenciaOrigen         = drFac.IsNombreAgenciaOrigenNull() ? "" : drFac.NombreAgenciaOrigen;
                dr.DireccionAgenciaOrigen      = drFac.IsDireccionAgenciaDestinoNull() ? "" : drFac.DireccionAgenciaDestino;
                dr.TelefonoAgenciaOrigen       = drFac.IsTelefonoAgenciaDestinoNull() ? "" : drFac.TelefonoAgenciaDestino;
                dr.NumeroCAI                   = drFac.NumeroCAI;
                dr.Observaciones               = drFac.Observaciones;
                dr.FechaVencimientoCAI         = drFac.IsFechaVencimientoCAINull() ? new DateTime(1, 1, 1) : drFac.FechaVencimientoCAI;
                dr.TextoDorso                  = drFac.TextoDorso;
                dr.LocalidadAgenciaOrigen      = drFac.IsLocalidadAgenciaDestinoNull() ? "" : drFac.LocalidadAgenciaDestino;
                dr.ProvinciaAgenciaOrigen      = drFac.IsProvinciaAgenciaDestinoNull() ? "" : drFac.ProvinciaAgenciaDestino;
                dr.EmpresaFacturacionID        = drFac.IsEmpresaFacturacionIDNull() ? 0 : drFac.EmpresaFacturacionID;

                IAgencia datosAgencia = AgenciaFactory.GetAgencia();
                datosAgencia.AgenciaID = AgenciaConectadaID;
                datosAgencia.Consultar();
                datosAgencia.Empresa.Consultar();
                dr.CUITEmpresa     = datosAgencia.Empresa.NroCUIT;
                dr.FacturaAsociada = drFac.IsFacturaAsociadaNull() ? "" : drFac.FacturaAsociada;
                dr.EsFacturaRemito = false;
                dr.EsFacturaConceptoFacturacion = true;
                dr.PesoTotal = drFac.IsPesoTotalNull() ? 0 : drFac.PesoTotal;
                dr.PesoBulto = 0;
                try
                {
                    dr.NroEstablicimiento = drFac.NroEstablecimiento;
                }
                catch { }

                try
                {
                    dr.NroFacturaCliente = drFac.NroFacturaCliente;
                }
                catch { }
                try
                {
                    dr.NroRemitoCliente = drFac.NroRemitoCliente;
                }
                catch { }
                try
                {
                    dr.NroHojaRutaCliente = drFac.NroHojaRutaCliente;
                }
                catch { }

                ds.Datos.AddDatosRow(dr);
                break;
            }
            // Devuelvo la conversión del dataset
            return(ds);
        }
        private DsGuiaFacturaImpresion ToDsGuiaFacturaImpresion(DsFacturaImpresion dsFac)
        {
            DsGuiaFacturaImpresion ds = new DsGuiaFacturaImpresion();

            DsGuiaFacturaImpresion.DatosRow dr = ds.Datos.NewDatosRow();

            foreach (DsFacturaImpresion.DatosRow drFac in dsFac.Datos.Rows)
            {
                dr.GuiaID                      = drFac.GuiaID;
                dr.TipoGuia                    = drFac.IsTipoGuiaNull() ? "" : drFac.TipoGuia;
                dr.NroSucursalGuia             = drFac.IsNroSucursalGuiaNull() ? "" : drFac.NroSucursalGuia;
                dr.NroGuia                     = drFac.IsNroGuiaNull() ? 0 : drFac.NroGuia;
                dr.CUITAgentePago              = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CondicionIvaAgentePago      = drFac.IsCondicionIvaAgentePagoNull() ? 0 : drFac.CondicionIvaAgentePago;
                dr.NombreAgenciaDestino        = drFac.IsNombreAgenciaDestinoNull() ? "" : drFac.NombreAgenciaDestino;
                dr.FechaEmision                = drFac.IsFechaEmisionNull() ? "" : drFac.FechaEmision;
                dr.CodCliente                  = drFac.IsCodigoDestinatarioNull() ? "" : drFac.CodigoDestinatario;
                dr.NombrePersonaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.NombreEmpresaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.DireccionDestinatario       = drFac.IsDireccionNull() ? "" : drFac.Direccion;
                dr.LocalidadDestinatario       = drFac.IsLocalidadNull() ? "" : drFac.Localidad;
                dr.TelefonoDestinatario        = drFac.IsTelefonoNull() ? "" : drFac.Telefono;
                dr.NroCuitAgentePago           = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CantidadBultosTotal         = System.Convert.ToInt32(drFac.IsCantidadBultosTotalNull() ? 0 : drFac.CantidadBultosTotal);
                dr.VolumenTotal                = drFac.IsVolumenTotalNull() ? 0.00 : drFac.VolumenTotal;
                dr.ValorDeclaradoTotal         = drFac.ValorDeclaradoTotal;
                dr.ValorDeclaradoBulto         = drFac.IsValorDeclaradoBultoNull() ? 0.00 : drFac.ValorDeclaradoBulto;
                dr.PesoTotal                   = drFac.IsPesoTotalNull() ? 0.00 : drFac.PesoTotal;
                dr.ImporteFleteNacional        = drFac.IsImporteFleteNacionalNull() ? 0.00 : drFac.ImporteFleteNacional;
                dr.ImporteSeguro               = drFac.IsImporteSeguroNull() ? 0.00 : drFac.ImporteSeguro;
                dr.ImporteRetiro               = drFac.IsImporteRetiroNull() ? 0.00 : drFac.ImporteRetiro;
                dr.ImporteEntrega              = drFac.IsImporteEntregaNull() ? 0.00 : drFac.ImporteEntrega;
                dr.ImporteComisContraReembolso = drFac.IsImporteComisContraReembolsoNull() ? 0.00 : drFac.ImporteComisContraReembolso;
                dr.ImporteServicioAdicional    = drFac.IsImporteServicioAdicionalNull() ? 0.00 : drFac.ImporteServicioAdicional;
                dr.ImporteNetoTotal            = drFac.IsImporteNetoNull() ? "" : drFac.ImporteNeto;
                dr.IVAInscriptoTotal           = drFac.IsIVAInscriptoTotalNull() ? "" : drFac.IVAInscriptoTotal.ToString("#,###0.00");
                dr.ImporteTotalGuia            = drFac.IsImporteTotalNull() ? 0.00 : drFac.ImporteTotal;
                dr.EsContado                   = drFac.IsEsContadoNull() ? false : drFac.EsContado;
                dr.EsCtaCte                    = drFac.IsEsCtaCteNull() ? false : drFac.EsCtaCte;
                dr.FechaInicioActividades      = drFac.IsFechaInicioActividadesNull() ? new DateTime(1, 1, 1) : drFac.FechaInicioActividades;
                dr.NombreAgenciaOrigen         = drFac.IsNombreAgenciaOrigenNull() ? "" : drFac.NombreAgenciaOrigen;
                dr.DireccionAgenciaOrigen      = drFac.IsDireccionAgenciaDestinoNull() ? "" : drFac.DireccionAgenciaDestino;
                dr.TelefonoAgenciaOrigen       = drFac.IsTelefonoAgenciaDestinoNull() ? "" : drFac.TelefonoAgenciaDestino;
                dr.NumeroCAI                   = drFac.NumeroCAI;
                dr.Observaciones               = drFac.Observaciones;
                dr.FechaVencimientoCAI         = drFac.IsFechaVencimientoCAINull() ? new DateTime(1, 1, 1) : drFac.FechaVencimientoCAI;
                dr.TextoDorso                  = drFac.TextoDorso;
                dr.LocalidadAgenciaOrigen      = drFac.IsLocalidadAgenciaDestinoNull() ? "" : drFac.LocalidadAgenciaDestino;
                dr.ProvinciaAgenciaOrigen      = drFac.IsProvinciaAgenciaDestinoNull() ? "" : drFac.ProvinciaAgenciaDestino;
                //Se agregó porque sino EmpresaFacturacionID era 0. FQuiroga 26/05/2015
                dr.EmpresaFacturacionID = drFac.IsEmpresaFacturacionIDNull() ? 0 : drFac.EmpresaFacturacionID;

                IAgencia datosAgencia = AgenciaFactory.GetAgencia();
                //datosAgencia.AgenciaID = AgenciaConectadaID;
                IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = Utiles.Validaciones.obtieneEntero(Session["GuiaID"].ToString());
                guia.Consultar();
                datosAgencia.AgenciaID = guia.AgenciaDestinoID;

                datosAgencia.Consultar();
                datosAgencia.Empresa.Consultar();
                dr.CUITEmpresa = datosAgencia.Empresa.NroCUIT;

                dr.FacturaAsociada = "Guía Nº: " + Validaciones.obtieneEntero(guia.NroSucursalGuia).ToString("0000") + "-" + guia.NroGuia.ToString("00000000") + "-" + NegociosSisPackInterface.SisPack.CodigoTipoGuia.R;
                dr.EsFacturaRemito = true;
                dr.PesoTotal       = drFac.IsPesoTotalNull() ? 0 : drFac.PesoTotal;
                dr.PesoBulto       = 0;
                ds.Datos.AddDatosRow(dr);
                break;
            }
            // Devuelvo la conversión del dataset
            return(ds);
        }
        private DsGuiaFacturaImpresion ToDsGuiaFacturaImpresion(int agenciaEmisoraComprobID, DsFacturaImpresion dsFac)
        {
            DsGuiaFacturaImpresion ds = new DsGuiaFacturaImpresion();

            DsGuiaFacturaImpresion.DatosRow dr = ds.Datos.NewDatosRow();

            foreach (DsFacturaImpresion.DatosRow drFac in dsFac.Datos.Rows)
            {
                dr.GuiaID                      = drFac.GuiaID;
                dr.TipoGuia                    = drFac.IsTipoGuiaNull() ? "" : drFac.TipoGuia;
                dr.NroSucursalGuia             = drFac.IsNroSucursalGuiaNull() ? "" : drFac.NroSucursalGuia;
                dr.NroGuia                     = drFac.IsNroGuiaNull() ? 0 : drFac.NroGuia;
                dr.CUITAgentePago              = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CondicionIvaAgentePago      = drFac.IsCondicionIvaAgentePagoNull() ? 0 : drFac.CondicionIvaAgentePago;
                dr.NombreAgenciaDestino        = drFac.IsNombreAgenciaDestinoNull() ? "" : drFac.NombreAgenciaDestino;
                dr.FechaEmision                = drFac.IsFechaEmisionNull() ? "" : drFac.FechaEmision;
                dr.NombrePersonaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.NombreEmpresaDestinatario   = drFac.IsNombreNull() ? "" : drFac.Nombre;
                dr.DireccionDestinatario       = drFac.IsDireccionNull() ? "" : drFac.Direccion;
                dr.LocalidadDestinatario       = drFac.IsLocalidadNull() ? "" : drFac.Localidad;
                dr.TelefonoDestinatario        = drFac.IsTelefonoNull() ? "" : drFac.Telefono;
                dr.NroCuitAgentePago           = drFac.IsNroCuitAgentePagoNull() ? "" : drFac.NroCuitAgentePago;
                dr.CantidadBultosTotal         = System.Convert.ToInt32(drFac.IsCantidadBultosTotalNull() ? 0 : drFac.CantidadBultosTotal);
                dr.VolumenTotal                = drFac.IsVolumenTotalNull() ? 0.00 : drFac.VolumenTotal;
                dr.ValorDeclaradoTotal         = drFac.ValorDeclaradoTotal;
                dr.ValorDeclaradoBulto         = drFac.IsValorDeclaradoBultoNull() ? 0.00 : drFac.ValorDeclaradoBulto;
                dr.PesoTotal                   = drFac.IsPesoTotalNull() ? 0.00 : drFac.PesoTotal;
                dr.ImporteFleteNacional        = drFac.IsImporteFleteNacionalNull() ? 0.00 : drFac.ImporteFleteNacional;
                dr.ImporteSeguro               = drFac.IsImporteSeguroNull() ? 0.00 : drFac.ImporteSeguro;
                dr.ImporteRetiro               = drFac.IsImporteRetiroNull() ? 0.00 : drFac.ImporteRetiro;
                dr.ImporteEntrega              = drFac.IsImporteEntregaNull() ? 0.00 : drFac.ImporteEntrega;
                dr.ImporteComisContraReembolso = drFac.IsImporteComisContraReembolsoNull() ? 0.00 : drFac.ImporteComisContraReembolso;
                dr.ImporteNetoTotal            = drFac.IsImporteNetoNull() ? "" : drFac.ImporteNeto;
                dr.IVAInscriptoTotal           = drFac.IsIVAInscriptoTotalNull() ? "" : drFac.IVAInscriptoTotal.ToString("#,###0.00");
                dr.ImporteTotalGuia            = drFac.IsImporteTotalNull() ? 0.00 : drFac.ImporteTotal;
                dr.EsContado                   = drFac.IsEsContadoNull() ? false : drFac.EsContado;
                dr.EsCtaCte                    = drFac.IsEsCtaCteNull() ? false : drFac.EsCtaCte;
                dr.FechaInicioActividades      = drFac.IsFechaInicioActividadesNull() ? new DateTime(1, 1, 1) : drFac.FechaInicioActividades;
                dr.NombreAgenciaOrigen         = drFac.IsNombreAgenciaOrigenNull() ? "" : drFac.NombreAgenciaOrigen;
                dr.DireccionAgenciaOrigen      = drFac.IsDireccionAgenciaDestinoNull() ? "" : drFac.DireccionAgenciaDestino;
                dr.TelefonoAgenciaOrigen       = drFac.IsTelefonoAgenciaDestinoNull() ? "" : drFac.TelefonoAgenciaDestino;
                dr.NumeroCAI                   = drFac.NumeroCAI;
                dr.Observaciones               = drFac.Observaciones;
                dr.FechaVencimientoCAI         = drFac.IsFechaVencimientoCAINull() ? new DateTime(1, 1, 1) : drFac.FechaVencimientoCAI;
                dr.TextoDorso                  = drFac.TextoDorso;
                dr.LocalidadAgenciaOrigen      = drFac.IsLocalidadAgenciaDestinoNull() ? "" : drFac.LocalidadAgenciaDestino;
                dr.ProvinciaAgenciaOrigen      = drFac.IsProvinciaAgenciaDestinoNull() ? "" : drFac.ProvinciaAgenciaDestino;
                dr.EmpresaFacturacionID        = drFac.IsEmpresaFacturacionIDNull() ? 0 : drFac.EmpresaFacturacionID;
                IAgencia datosAgencia = AgenciaFactory.GetAgencia();
                datosAgencia.AgenciaID = agenciaEmisoraComprobID; /* Agencia que emitió el comprobante */
                datosAgencia.Consultar();
                datosAgencia.Empresa.Consultar();
                dr.CUITEmpresa = datosAgencia.Empresa.NroCUIT;

                //dr.FacturaAsociada = "Guía Nº: " + Validaciones.obtieneEntero(txtNroSucursal.Text).ToString("0000") + "-" + Validaciones.obtieneEntero(txtNroGuia.Text).ToString("00000000") + "-" + ddlTipoGuia.SelectedValue;
                dr.EsFacturaRemito = true;
                dr.PesoTotal       = drFac.IsPesoTotalNull() ? 0 : drFac.PesoTotal;
                dr.PesoBulto       = 0;
                ds.Datos.AddDatosRow(dr);

                break;
            }
            // Devuelvo la conversión del dataset
            return(ds);
        }
        private string ExportarPDF(DsFacturaImpresion dsFac)
        {
            ReportDocument             oRD = new ReportDocument();
            ExportOptions              oExO;
            DiskFileDestinationOptions oExDo  = new DiskFileDestinationOptions();
            IGuiaPasajeACtaCte         oDatos = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte();
            string nombrePDf = string.Empty;

            foreach (DsFacturaImpresion.DatosRow drFac in dsFac.Datos.Rows)
            {
                try
                {
                    int GuiaID = Utiles.Validaciones.obtieneEntero(Session["GuiaID"].ToString());
                    nombrePDf = "NotaAutDebACtaCte_" + GuiaID + "_" + this.AgenciaConectadaID + ".pdf";

                    string sNombrePDF = Server.MapPath(".") + "/ReportesPDF/" + nombrePDf;
                    if (System.IO.File.Exists(sNombrePDF))
                    {
                        System.IO.File.Delete(sNombrePDF);
                    }

                    //Cargar plantilla
                    oRD.Load(Server.MapPath("." + "/Reportes/NotaAutDebACtaCte.rpt"));

                    DsGuiaFacturaImpresion          ds     = (DsGuiaFacturaImpresion)Session["DatosGuia"];
                    DsGuiaFacturaImpresion.DatosRow drComp = (DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0];
                    oRD.SetParameterValue("ClienteNombre", drFac.IsNombreEmpresaDestinatarioNull() ? (drFac.IsNombrePersonaDestinatarioNull() ? "" : drFac.NombrePersonaDestinatario) : drFac.NombreEmpresaDestinatario);
                    oRD.SetParameterValue("ClienteCodigo", drFac.IsCodigoDestinatarioNull() ? "0" : drFac.CodigoDestinatario);
                    oRD.SetParameterValue("NroGuia", drFac.NroSucursalGuia.ToString() + "-" + drFac.NroGuia.ToString());
                    oRD.SetParameterValue("ImporteGuia", drFac.IsImporteTotalNull() ? "0.00" : drFac.ImporteTotal.ToString());

                    /* VSA: Obtener los datos del pasaje para emitir la autorización. */
                    oDatos.GuiaID = GuiaID;
                    oDatos.Consultar();

                    oRD.SetParameterValue("PersonaSolicitante", oDatos.PersonaSolicitante);
                    oRD.SetParameterValue("Observaciones", oDatos.Observaciones.Equals("") ? "-" : oDatos.Observaciones);
                    //Exportar a PDF
                    oExDo.DiskFileName = sNombrePDF;
                    oExO = oRD.ExportOptions;
                    oExO.ExportDestinationType = ExportDestinationType.DiskFile;
                    oExO.ExportFormatType      = ExportFormatType.PortableDocFormat;
                    oExO.DestinationOptions    = oExDo;
                    oRD.Export();
                    oRD.Close();
                    oRD.Dispose();
                    return(nombrePDf);
                }
                catch (Exception ex)
                {
                    string mensaje = "Error al generar la nota para autorizar el débito a la cuenta corriente del cliente. " + ex.Message;

                    ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje(mensaje);
                    return("");
                }
                finally
                {
                    oRD.Close();
                    oRD.Dispose();
                }
            }
            return("");
        }