Exemple #1
0
        private void CargarDatosCliente()
        {
            // Cargo los datos del destinatario, que son los datos que inicialmente se van a utilizar para cargar la factura
            IAdministrarClientes datosDest             = AdministrarClientesFactory.GetAdministrarClientes();
            IDatosDomicilio      DomicilioDestinatario = (IDatosDomicilio)DatosDestinatario.FindControl("Domicilio" + DatosDestinatario.ID);

            DsDatosGenerarFactura dsDatosGenFactura;

            // Reviso si hay datos de facturas en memoria
            if (Session[NombreClaveObjSession] != null)
            {
                dsDatosGenFactura = (DsDatosGenerarFactura)Session[NombreClaveObjSession];
            }
            else
            {
                dsDatosGenFactura = new DsDatosGenerarFactura();
            }
            // Reviso si ya se ingresaron los datos para el remito
            DsDatosGenerarFactura.DatosRow datosFacCargados;
            if (Validaciones.obtieneEntero(dsDatosGenFactura.Datos.Compute("count(guiaid)", "GuiaID = " + GuiaID.ToString()).ToString()) > 0)
            {
                // Ya se ingresaron los datos para el remito. recupero los datos ingresados y los cargo
                datosFacCargados = (DsDatosGenerarFactura.DatosRow)dsDatosGenFactura.Datos.Select("GuiaID = " + GuiaID.ToString())[0];

                // Cargo los datos del destinatario
                DatosDestinatario.ClienteID            = datosFacCargados.IsClienteIDNull()? 0  : Convert.ToInt32(datosFacCargados.ClienteID);
                DatosDestinatario.EsClienteCorporativo = datosFacCargados.TipoDeCliente == (int)NegociosSisPackInterface.SisPack.TipoCliente.Corporativo ? true : false;
                DatosDestinatario.Nombre        = datosFacCargados.IsNombreNull()? "" : datosFacCargados.Nombre;
                DatosDestinatario.Apellido      = datosFacCargados.IsApellidoNull()?"":datosFacCargados.Apellido;
                DatosDestinatario.TipoDoc       = datosFacCargados.IsTipoDocumentoNull() ? NegociosSisPackInterface.SisPack.TipoDocumento.Ninguno : (NegociosSisPackInterface.SisPack.TipoDocumento)datosFacCargados.TipoDocumento;
                DatosDestinatario.ClienteNumero = datosFacCargados.IsNumeroClienteNull() ? "" : datosFacCargados.NumeroCliente.ToString();
                DatosDestinatario.NroCuit       = datosFacCargados.IsCUITNull()? "" : datosFacCargados.CUIT.Trim();
                DatosDestinatario.CondicionIVA  = datosFacCargados.IsCondicionIVAIDNull() ? NegociosSisPackInterface.SisPack.CondicionIva.ConsumidorFinal : (NegociosSisPackInterface.SisPack.CondicionIva)datosFacCargados.CondicionIVAID;

                int DomicilioID = datosFacCargados.IsDomicilioIDNull()?0:datosFacCargados.DomicilioID;

                if (datosFacCargados.IsDomicilioIDNull() == false)
                {
                    DomicilioDestinatario.DomicilioID = datosFacCargados.DomicilioID;
                }
                DomicilioDestinatario.Calle    = datosFacCargados.IsCalleNull()?"" : datosFacCargados.Calle;
                DomicilioDestinatario.CalleNro = datosFacCargados.IsCalleNroNull()?"" : datosFacCargados.CalleNro.ToString();
                DomicilioDestinatario.Depto    = datosFacCargados.IsDepartamentoNull()? "" :datosFacCargados.Departamento;
                DomicilioDestinatario.Fax      = datosFacCargados.IsFaxNull()?"": datosFacCargados.Fax;
                DomicilioDestinatario.Telefono = datosFacCargados.IsTelefonoNull()?"": datosFacCargados.Telefono;

                if (!datosFacCargados.IsLocalidadIDNull())
                {
                    DomicilioDestinatario.LocalidadID = datosFacCargados.LocalidadID;

                    ILocalidad localidad = LocalidadFactory.GetLocalidad();
                    localidad.LocalidadID = datosFacCargados.LocalidadID;

                    localidad.Consultar();

                    DomicilioDestinatario.ProvinciaID = localidad.Provincia.ProvinciaID;
                }

                this.txtEsPasajeACtaCte.Text = datosFacCargados.IsEsPasajeACtaCteNull()? "0": (datosFacCargados.EsPasajeACtaCte ?"1":"0");
            }
            else
            {
                // No se  han ingresado los datos para el remito
                DsClientesGuia dsDest;
                /* VSA: Controlar si el remito original se pasó a cuenta corriente -> Imprimir un nuevo remito no factura. */
                IGuiaPasajeACtaCte oDatos = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte();
                oDatos.GuiaID = GuiaID;
                oDatos.Consultar();
                if (oDatos.ClienteIDNuevo != 0 && oDatos.ClienteIDAnt == 0)
                {
                    /* Imprimir remito a cliente corporativo */
                    this.txtEsPasajeACtaCte.Text = oDatos.ClienteIDNuevo.ToString();
                    dsDest = datosDest.GetDestinatarioByClienteID(Convert.ToInt32(oDatos.ClienteIDNuevo.ToString()));
                }
                else
                {
                    this.txtEsPasajeACtaCte.Text = "0";
                    // Obtengo los datos del destinatario y reviso si se encontraron
                    dsDest = datosDest.GetDestinatarioByGuiaID(GuiaID);
                }

                if (dsDest == null || dsDest.Datos.Rows.Count == 0)
                {
                    // Los datos no se encontraron. Salgo del procedimiento
                    return;
                }

                DsClientesGuia.DatosRow drDest = (DsClientesGuia.DatosRow)dsDest.Datos.Rows[0];
                if (drDest == null)
                {
                    return;
                }

                // Cargo los datos del destinatario
                DatosDestinatario.ClienteID            = drDest.IsClienteIDNull()? 0  : Convert.ToInt32(drDest.ClienteID);
                DatosDestinatario.EsClienteCorporativo = drDest.TipoCliente;
                DatosDestinatario.Nombre        = drDest.IsNombreNull()? "" : drDest.Nombre;
                DatosDestinatario.Apellido      = drDest.IsApellidoNull()?"":drDest.Apellido;
                DatosDestinatario.TipoDoc       = drDest.IsTipoDocNull() ? NegociosSisPackInterface.SisPack.TipoDocumento.Ninguno : (NegociosSisPackInterface.SisPack.TipoDocumento)drDest.TipoDoc;
                DatosDestinatario.ClienteNumero = drDest.IsCodigoNull()? "" : drDest.Codigo.ToString();
                DatosDestinatario.NroCuit       = drDest.IsNroCUITNull()? "" : drDest.NroCUIT.Trim();
                DatosDestinatario.CondicionIVA  = drDest.IsCondicionIvaIDNull() ? NegociosSisPackInterface.SisPack.CondicionIva.ConsumidorFinal : (NegociosSisPackInterface.SisPack.CondicionIva)drDest.CondicionIvaID;

                int DomicilioID = drDest.IsDomicilioIDNull()?0:drDest.DomicilioID;

                DomicilioDestinatario.DomicilioID = drDest.IsDomicilioRetiroEntregaNull() ? DomicilioID : drDest.DomicilioRetiroEntrega;
                DomicilioDestinatario.Calle       = drDest.IsCalleNull()?"" : drDest.Calle;
                DomicilioDestinatario.CalleNro    = drDest.IsCalleNroNull()?"" : drDest.CalleNro.ToString();
                DomicilioDestinatario.Depto       = drDest.IsDeptoNull()? "" :drDest.Depto;
                DomicilioDestinatario.Fax         = drDest.IsFaxNull()?"": drDest.Fax;
                DomicilioDestinatario.Telefono    = drDest.IsTelefonoNull()?"": drDest.Telefono;
                if (!drDest.IsProvinciaIDNull())
                {
                    DomicilioDestinatario.ProvinciaID = drDest.ProvinciaID;
                }
                if (!drDest.IsLocalidadIDNull())
                {
                    DomicilioDestinatario.LocalidadID = drDest.LocalidadID;
                }
            }

            // Reviso si el destinatario es un cliente registrado
            if (DatosDestinatario.ClienteID != 0)
            {
                // Es un cliente registrado. Bloqueo los contoles para que no se pueda modificar los datos sin hacer click en el boton limpiar
                bool esPasaje = (this.txtEsPasajeACtaCte.Text.Equals("0") || this.txtEsPasajeACtaCte.Text.Equals("")) ? false : true;

                DatosDestinatario.BloquearCtrsCuandoSeleccionaClienteEventual = false;

                StringBuilder scriptBloquear = new StringBuilder();
                scriptBloquear.Append("<Script>");
                scriptBloquear.Append("try {");
                scriptBloquear.Append("DeshabilitarCtrlDatos" + DatosDestinatario.ClientID + "();");
                if (esPasaje)
                {
                    scriptBloquear.Append("DeshabilitarModDatos" + DatosDestinatario.ClientID + "();");
                }
                scriptBloquear.Append("}");
                scriptBloquear.Append("catch (ex) { }");
                scriptBloquear.Append("</script>");

                Page.RegisterStartupScript("ScriptBloquearControlesCliente", scriptBloquear.ToString());
            }
        }
        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("");
        }