private void BindGrid(int currentPage)
        {
            try
            {
                IGuiaPasajeACtaCte solicitud = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte();
                AdministrarGrillas.Configurar(dtgPasaje, "GuiaPasajeACtaCteID", CantidadOpciones, true, false);
                dtgPasaje.CurrentPageIndex = currentPage;
                if (busqCliente.RazonSocial != "")
                {
                    solicitud.ClienteIDNuevo = Utiles.Validaciones.obtieneEntero(busqCliente.ClienteID);
                }
                else
                {
                    solicitud.ClienteIDNuevo = 0;
                }
                solicitud.AgenciaID = usuario.AgenciaID; //la agencia conectada

                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);
                dtgPasaje.DataSource = solicitud.GetPasajesPendientes(chSinImprimir.Checked, fDesde, fHasta);
                dtgPasaje.DataBind();
                //Session["DsSolicitudRetiro"] = dtgPasaje.DataSource;
            }
            catch (Exception ex)
            {
                ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
예제 #2
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("");
        }
        private void dtgSolicitudRetiro_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Imprimir")
            {
                try
                {
                    Session["GuiaPasajeACtaCteID"] = e.Item.Cells[0].Text;
                    Session["GuiaID"] = e.Item.Cells[1].Text;

                    //controlar que no haya  sido ya impresa
                    //if (true)
                    //{
                    #region ImpresionDeComprobantes
                    // Reviso si se registro una factura por un remito
                    IFactura factura = FacturaFactory.GetFactura();
                    factura.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                    factura.ClasificacionFacturaID = (int)NegociosSisPackInterface.SisPack.ClasificacionFactura.Remito;
                    DsFactura ds = factura.ObtenerFacturaDeRemitoByGuiaID();
                    if (ds.Datos.Rows.Count > 0)
                    {
                        factura.FacturaID = (int)ds.Datos.Rows[0]["FacturaID"];
                    }
                    // Reviso si se genero la factura
                    if (factura.FacturaID != 0)
                    {
                        // Si se genero
                        //VSA: Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByGuiaID());
                        Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByFacturaID());

                        // Seteo la página con la cual se va a imprimir la factura
                        IAgencia agOrigen = AgenciaFactory.GetAgencia();
                        //agOrigen.AgenciaID = AgenciaConectadaID;
                        IGuia guia = GuiaFactory.GetGuia();
                        guia.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                        guia.Consultar();
                        agOrigen.AgenciaID = guia.AgenciaDestinoID;
                        agOrigen.ConsultarBasico();
                        string pagina = ObtienePaginaImpresion(agOrigen.TipoImpresionGuiaId);
                        agOrigen = null;
                        /* VSA: Controlar si el remito original se pasó a cuenta corriente -> Imprimir un nuevo remito no factura. */
                        string nombreListado = ExportarPDF(factura.GetFacturaImpresionByFacturaID());
                        factura = null;

                        // Cargo el script para imprimir el nuevo remito y la nota que se le entregará al cliente
                        string script = "<script language='javascript'>\n";
                        script += "			window.showModalDialog('"+ pagina + "','Imprimiendo Remito...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";

                        if (nombreListado != "")
                        {
                            script += "window.open('VerPlanilla.aspx?id=" + nombreListado + "', '', 'width=0,height=0,status=no,scrollbars=yes,resizable=yes');\n";
                        }
                        script += "		</script>\n";

                        ClientScript.RegisterStartupScript(GetType(), "scriptImprimirNuevoRemito", script);
                    }

                    #endregion

                    /*Actualizar la autorizacion como impresa.*/
                    IGuiaPasajeACtaCte pasaje = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte();
                    pasaje.GuiaPasajeACtaCteID = Utiles.Validaciones.obtieneEntero(Session["GuiaPasajeACtaCteID"].ToString());
                    pasaje.GuardarPasajeImpreso();

                    BindGrid(0);
                    //}
                    //else
                    //{
                    //    throw new Exception("El pasaje ya ha sido impreso.");
                    //}
                }
                catch (Exception ex)
                {
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
        }