Example #1
0
        private bool Anular()
        {
            try
            {
                IAgencia oAgencia = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = this.AgenciaConectadaID;

                IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
                param.UnidadNegocioID = this.UnidadNegocioID;
                param.Consultar();
                int agAdm = Utiles.Validaciones.obtieneEntero(param.ValorString);


                /* Verónica: La anulación la debe realizar la agencia de origen */
                /*SFE: 12/04/2011. Anulacion de Facturas a Terminal desde Administracion. Se agrega la condicion de controlar si la agencia Conectada es Administracion*/
                if (this.AgenciaConectadaID == Convert.ToInt32(this.txtAgenciaID.Text) || this.AgenciaConectadaID == agAdm)
                {
                    bool bOk = false;

                    IFactura factura = FacturaFactory.GetFactura();
                    factura.FacturaID              = Convert.ToInt32(this.txtFacturaID.Text.Trim());
                    factura.TipoGuia               = this.txtTipoGuia.Text.Trim();
                    factura.TipoImpresionGuiaID    = Convert.ToInt32(this.txtTipoImpresionGuiaID.Text.Trim());
                    factura.AgenciaID              = Convert.ToInt32(this.txtAgenciaID.Text.Trim());
                    factura.ClasificacionFacturaID = Convert.ToInt32(this.txtClasificacionFacturaID.Text.Trim());
                    factura.GuiaID                      = Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim());
                    factura.FechaEmision                = Convert.ToDateTime(Utiles.Validaciones.obtieneFecha(txtFecha.Text));
                    factura.ObservacionIDGuia           = Convert.ToInt32(Observacion1.ObservacionID);
                    factura.UnidadNegocioID             = UnidadNegocioID;
                    factura.EliminarEstadosConformacion = true;


                    bOk = factura.Anular(this.txtObservaciones.Text, this.usuario, this.AgenciaConectadaID);

                    //esto es porque si se anula la factura y esta factura esta asociada a una guia que es subia a una HRR
                    //se conforma y se agrega una observacion en la HRR
                    if (factura.CambiarHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim()))) == 1)
                    {
                        factura.CambiaEstadoHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim())));
                    }

                    //////////**********************************************************************************************************************//////////
                    DsFactura ds;

                    if (this.radioTipo.Checked)
                    {
                        ds = BuscarPorTipo();
                    }
                    else
                    {
                        ds = BuscarPorCodigo();
                    }

                    IClienteEventual ev = ClienteEventualFactory.GetClienteEventual();
                    if (ds.Tables[0].Rows[0]["ClienteEventualID"] != null)
                    {
                        ev.ClienteEventualID = int.Parse(ds.Tables[0].Rows[0]["ClienteEventualID"].ToString());
                        ev.Consultar();
                    }

                    if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A" || ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "B")
                    {
                        try
                        {
                            // La validación del número de guía debe realizarse sólo si el modo de impresión no es "Autoimpresor"
                            IAgencia agencia = AgenciaFactory.GetAgencia();
                            agencia.AgenciaID = this.AgenciaConectadaID;
                            agencia.Consultar();

                            //ws = Session["WSFactElect"] as SisPack.WSFEL.FEService;

                            //if (ws == null)
                            //{
                            //    // create the proxy
                            //    //MyService = new localhost.MyDemo();
                            //    ws = new SisPack.WSFEL.FEService();

                            //    // create a container for the SessionID cookie
                            //    ws.CookieContainer = new CookieContainer();

                            //    ws.Inicializar(long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente);
                            //    //ws.Inicializar(long.Parse(CUITCargas), NombreCertificadoCargas, Ambiente);

                            //    // store it in Session for next usage
                            //    Session["WSFactElect"] = ws;
                            //}
                            string referencia = string.Empty;
                            try
                            {
                                //string sError = string.Empty;
                                //DateTime sVencimientoCae = new DateTime();
                                //Detalles detalle = new Detalles();
                                int    puntoVta        = int.Parse(ds.Tables[0].Rows[0]["NroSucursalGuia"].ToString());
                                int    tipoCbe         = 6;
                                int    tipoDocumento   = 96;
                                long   numeroDocumento = 30414121;
                                int    tipoConcepto    = 2;
                                double totalConcepto   = 0;
                                double neto            = double.Parse(ds.Tables[0].Rows[0]["ImporteNeto"].ToString());
                                double exento          = 0;
                                double totalTributos   = 0;
                                double totalIva        = double.Parse(ds.Tables[0].Rows[0]["ImporteIVA"].ToString());
                                double total           = neto + totalIva;
                                int    tipoIva         = 5;
                                long   nroFactura      = 0;

                                if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A")
                                {
                                    tipoCbe         = 3; //Nota de Crédito A
                                    numeroDocumento = long.Parse(ev.NroCuit);

                                    if ((int)ev.TipoDocumentoCuit == 5)
                                    {
                                        tipoDocumento = 80; //CUIT
                                    }
                                    else if ((int)ev.TipoDocumentoCuit == 6)
                                    {
                                        tipoDocumento = 86; //CUIL
                                    }
                                    else
                                    {
                                        tipoDocumento = 91; //91
                                    }
                                }
                                else
                                {
                                    tipoCbe         = 8; //Nota de Crédito B
                                    numeroDocumento = long.Parse(ev.NroDocumento.ToString());
                                    if ((int)ev.TipoDocumento == 1)
                                    {
                                        tipoDocumento = 96; //DNI
                                    }
                                    else if ((int)ev.TipoDocumento == 2)
                                    {
                                        tipoDocumento = 90; //LC
                                    }
                                    else if ((int)ev.TipoDocumento == 3)
                                    {
                                        tipoDocumento = 89; //LE
                                    }
                                    else if ((int)ev.TipoDocumento == 4)
                                    {
                                        tipoDocumento = 94; //Pasaporte
                                    }
                                    else if ((int)ev.TipoDocumento == 6)
                                    {
                                        tipoDocumento = 86; //CUIL
                                    }
                                    else
                                    {
                                        tipoDocumento = 91; //91
                                    }
                                }

                                if (totalIva == 0)
                                {
                                    tipoIva = 3; //Iva 0
                                }
                                IAFIP  afip    = AFIPFactory.GetAFIP();
                                string fechaFE = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00");
                                //detalle.Ivas.AddIvasRow(tipoIva, neto, totalIva);
                                string NumeroCAE = string.Empty;

                                if (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1")
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                    //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITExpress));
                                    if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente))
                                    {
                                        nroFactura = afip.NumeroFactura;

                                        if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos,
                                                            totalIva, tipoIva))
                                        {
                                            NumeroCAE = afip.NumeroCAE;
                                        }
                                    }
                                }
                                else
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                    //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITCargas));
                                }

                                //if (sError.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar."))
                                if (afip.errorCAE.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar."))
                                {
                                    //verifico nuevamente por si alguien estaba usando ese numero
                                    if (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1")
                                    {
                                        //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                        //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                        //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITExpress));
                                        if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente))
                                        {
                                            nroFactura = afip.NumeroFactura;

                                            if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos,
                                                                totalIva, tipoIva))
                                            {
                                                NumeroCAE = afip.NumeroCAE;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                        //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                        //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITCargas));
                                    }
                                }
                                else if (afip.errorCAE != string.Empty)
                                {
                                    using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log"))
                                    {
                                        archivo.WriteLine("AnularFactura.aspx.cs linea 753-------------------------------------------------------------------------------------");
                                        archivo.WriteLine("--------------------------------------------------------------------------------------");
                                    }
                                }

                                if (NumeroCAE != null && NumeroCAE != string.Empty)
                                {
                                    ComprobanteElectronico ce = new ComprobanteElectronico();
                                    ce.PuntoVenta          = puntoVta.ToString();
                                    ce.TipoComprobanteFEID = tipoCbe;
                                    ce.TipoConceptoFEID    = tipoConcepto;
                                    ce.TipoDocumentoFEID   = tipoDocumento;
                                    ce.NumeroDocumento     = numeroDocumento.ToString();
                                    ce.NumeroFactura       = nroFactura.ToString();
                                    ce.FechaFE             = DateTime.Now;
                                    ce.Total                = total;
                                    ce.TotalConcepto        = totalConcepto;
                                    ce.Neto                 = neto;
                                    ce.Exento               = exento;
                                    ce.TotalTributos        = totalTributos;
                                    ce.TotalIVA             = totalIva;
                                    ce.FechaVencimientoCae  = afip.fechaCAE;
                                    ce.NumeroCae            = NumeroCAE;
                                    ce.EmpresaFacturacionID = int.Parse(ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString());
                                    IoC.GetObjectDominio <IComprobanteElectronicoDominio>().Guardar(ce);
                                }

                                //datet.FechaCae = sVencimientoCae;
                                //admGuiaO.FechaVencimientoCAI = sVencimientoCae;
                                //admGuiaO.NroGuia = int.Parse(nroFactura.ToString());
                            }
                            catch (Exception ex)
                            {
                                using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log"))
                                {
                                    archivo.WriteLine("AnularFactura.aspx.cs linea 786-------------------------------------------------------------------------------------");
                                    archivo.WriteLine(ex.Message);
                                    archivo.WriteLine("--------------------------------------------------------------------------------------");
                                }
                                ex = new Exception("Error al crear la nota de credito para asociar a la factura. " + ex.Message);
                                throw ex;
                            }

                            //Session["AdmGuia"] = admGuiaO;

                            //this.txtNroGuia.Text = admGuiaO.NroGuia.ToString();
                            // GuardarFactura(agencia.TipoImpresionGuiaId, (int)NegociosSisPackInterface.SisPack.TipoValidacionEmision.CAE);
                        }
                        catch (Exception ex)
                        {
                            oAgencia = null;
                            ex       = new Exception("Error al crear la nota de credito para asociar a la factura. No se puede conectar con el WS de la AFIP" + ex.Message);
                            throw ex;
                        }
                    }

                    /////////************************************************************************************************************************//////
                    factura  = null;
                    oAgencia = null;
                    return(bOk);
                }
                else
                {
                    oAgencia = null;
                    Exception ex = new Exception("Solo la agencia emisora puede anular la factura.");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        private IFactura CargarDatosFactura(int GuiaID)
        {
            try
            {
                DsDatosGenerarFactura dsDatosFacturasAGenerar;
                if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
                {
                    dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
                }
                else
                {
                    dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
                }

                // Genero la factura
                IFactura oFactura = FacturaFactory.GetFactura();

                // Busco los datos para registrar la factura
                DsDatosGenerarFactura.DatosRow drDatosFac = ((DsDatosGenerarFactura.DatosRow[])dsDatosFacturasAGenerar.Datos.Select("guiaid = " + GuiaID.ToString()))[0];

                // Cargo los datos de la factura a registrar

                // Reviso cual es el tipo de cliente al cual se le va a facturar el remito
                if (drDatosFac.TipoDeCliente == (int)NegociosSisPackInterface.SisPack.TipoCliente.Corporativo)
                {
                    // Se le va a facturar a un cliente coorporativo
                    oFactura.ClienteID         = drDatosFac.ClienteID;
                    oFactura.ClienteEventualID = 0;
                }
                else
                {
                    // Se le va a facturar a un cliente eventual. Reviso si el cliente esta registrado.
                    //					if (drDatosFac.ClienteID == 0)
                    //					{
                    // El cliente no esta registrado. Lo registro
                    IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual();
                    datosClienteEventual.Nombre        = drDatosFac.Nombre;
                    datosClienteEventual.Apellido      = drDatosFac.Apellido;
                    datosClienteEventual.CondicionIva  = (NegociosSisPackInterface.SisPack.CondicionIva)drDatosFac.CondicionIVAID;
                    datosClienteEventual.NroCuit       = drDatosFac.CUIT;
                    datosClienteEventual.TipoDocumento = (NegociosSisPackInterface.SisPack.TipoDocumento)drDatosFac.TipoDocumento;
                    datosClienteEventual.NroDocumento  = Utiles.Validaciones.obtieneEntero(drDatosFac.NumeroCliente);

                    // Indico que el cliente eventual tiene cargado un domicilio
                    datosClienteEventual.TieneDomicilio = true;
                    // Cargo los datos del domicilio
                    datosClienteEventual.Domicilio.DomicilioID           = drDatosFac.DomicilioID;
                    datosClienteEventual.Domicilio.Calle                 = drDatosFac.Calle;
                    datosClienteEventual.Domicilio.CalleNro              = drDatosFac.CalleNro;
                    datosClienteEventual.Domicilio.Depto                 = drDatosFac.Departamento;
                    datosClienteEventual.Domicilio.Telefono              = drDatosFac.Telefono;
                    datosClienteEventual.Domicilio.Fax                   = drDatosFac.Fax;
                    datosClienteEventual.Domicilio.Localidad.LocalidadID = drDatosFac.LocalidadID;
                    datosClienteEventual.Domicilio.EsEventual            = "1";

                    // Reviso si tengo que guardar el domicilio del cliente
                    if (datosClienteEventual.Domicilio.DomicilioID == 0 && datosClienteEventual.Domicilio.Calle != "")
                    {
                        // Tengo que guardarlo
                        datosClienteEventual.Domicilio.Guardar();
                    }

                    oFactura.ClienteID         = 0;
                    oFactura.ClienteEventualID = drDatosFac.ClienteID;
                    oFactura.ClienteEventual   = datosClienteEventual;

                    //						datosClienteEventual.Guardar();
                    //						drDatosFac.ClienteID = datosClienteEventual.ClienteEventualID;
                    //					}
                }

                // Reviso si el cliente de la factura es un cliente coorporativo
                if (oFactura.ClienteID != 0)
                {
                    // Es un cliente coorporativo. Busco sus datos fiscales
                    ICliente datosCliente = ClienteFactory.GetCliente();
                    datosCliente.ClienteID = oFactura.ClienteID;
                    datosCliente.Consultar();
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)datosCliente.CondicionIva;
                    oFactura.NroCUITAgentePago      = datosCliente.NroCuit;
                }
                // Reviso si el cliente de la factura es un cliente eventual registrado
                else if (oFactura.ClienteEventualID != 0)
                {
                    // Se trata de un cliente eventual registrado. Busco sus datos fiscales
                    IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual();
                    datosClienteEventual.ClienteEventualID = oFactura.ClienteEventualID;
                    datosClienteEventual.Consultar();
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)datosClienteEventual.CondicionIva;
                    oFactura.NroCUITAgentePago      = datosClienteEventual.NroCuit;
                }
                else
                {
                    // Se trata de un cliente eventual
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)oFactura.ClienteEventual.CondicionIva;
                    oFactura.NroCUITAgentePago      = oFactura.ClienteEventual.NroCuit;
                }

                // Devuelvo los datos
                return(oFactura);
            }
            catch (Exception ex)
            {
                // Reviso cual es el motivo de la excepción
                if (ex.Message.IndexOf(" ya esta facturado", 0) > 0 || ex.Message.IndexOf("información del CAI para el tipo de guía") > 0)
                {
                    // La exepción fue por que el remito ya estaba facturado
                    throw ex;
                }
                else
                {
                    throw new Exception("Error al generar las facturas de los remitos");
                }
            }
        }
        private void dtgClientes_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                /*int indice = e.Item.DataSetIndex;
                 * if(this.txtAgenciaID.Text!="")
                 *      this.BindGridPorAgencia();
                 * else
                 *      BindGrid();
                 *
                 * DsClientesGuia.DatosRow[] drLista  = (DsClientesGuia.DatosRow[]) dtgClientes.DataSource;
                 * if (drLista == null)
                 *      return;
                 *
                 * if (drLista.Length == 0)
                 *      return;
                 *
                 * //AQUI VER el tema del INDICE!! si es el indice de la coleccion o del dataset!!
                 * DsClientesGuia.DatosRow dr = drLista[indice];
                 * if (dr == null)
                 *      return;
                 */

                int    clienteID;
                string tipoDoc;
                string codigo;
                //string nombreCompleto = dr.NombreCompleto;
                string nombre;
                string apellido;
                string calle;
                string calleNro;
                string telefono;
                string telCodArea;
                string fax;
                string localidadID;
                string provinciaID;
                //VSA: Modificación desarrollo Código postales
                int    codigoPostalID;
                string localidadDescrip;
                string provinciaDescrip;
                string strLocalidades;
                string codPostal;
                string depto;
                string condicionIVA;
                string cuit;
                string tipoCliente;
                string condicionPago;
                string strProducto;
                string strTEntrega;
                string strServicio;
                string strModEntrega;
                int    domicilioID;

                //VSA: Modificación desarrollo Código postales
                if (this.txtTipoCliConsul.Text == "0" || this.txtTipoCliConsul.Text == "")                // || this.tipoCliConsul == "")
                {
                    IClienteEventual clienteEven = ClienteEventualFactory.GetClienteEventual();
                    clienteEven.ClienteEventualID = Utiles.Validaciones.obtieneEntero(dtgClientes.DataKeys[(int)e.Item.ItemIndex].ToString());
                    clienteEven.Consultar();

                    clienteID = clienteEven.ClienteEventualID;
                    tipoDoc   = ((int)clienteEven.TipoDocumento).ToString();
                    codigo    = clienteEven.NroDocumento.ToString();
                    //string nombreCompleto = dr.NombreCompleto;
                    nombre      = clienteEven.Nombre;
                    apellido    = clienteEven.Apellido;
                    calle       = clienteEven.Domicilio.Calle;
                    calleNro    = clienteEven.Domicilio.CalleNro;
                    telefono    = clienteEven.Domicilio.Telefono;
                    telCodArea  = clienteEven.Domicilio.TelCodArea;
                    fax         = clienteEven.Domicilio.Fax;
                    localidadID = clienteEven.Domicilio.Localidad.LocalidadID.ToString();
                    domicilioID = clienteEven.Domicilio.DomicilioID;

                    ILocalidad localidad = LocalidadFactory.GetLocalidad();
                    localidad.LocalidadID = Utiles.Validaciones.obtieneEntero(localidadID);
                    localidad.Consultar();
                    provinciaID      = localidad.Provincia.ProvinciaID.ToString();
                    provinciaDescrip = localidad.Provincia.ProvinciaDescrip;
                    localidadDescrip = localidad.LocalidadDescrip;

                    codigoPostalID = clienteEven.Domicilio.OCodigoPostal.CodigoPostalID;
                    if (codigoPostalID > 0)
                    {
                        codPostal = clienteEven.Domicilio.OCodigoPostal.CodigoPostalNro;
                    }
                    else
                    {
                        codPostal = localidad.CodigoPostal;
                    }

                    /*
                     * int clienteID = dr.ClienteID;
                     * string tipoDoc= dr.IsTipoDocNull()?"":dr.TipoDoc.ToString();
                     * string codigo = dr.IsCodigoNull() ? "" : dr.Codigo;
                     * //string nombreCompleto = dr.NombreCompleto;
                     * string nombre=dr.IsNombreNull()? "" : dr.Nombre;
                     * string apellido=dr.IsApellidoNull()? "":dr.Apellido;
                     * string calle =dr.IsCalleNull()? "":dr.Calle;
                     * string calleNro =dr.IsCalleNroNull()? "":dr.CalleNro;
                     * string telefono=dr.IsTelefonoNull()? "":dr.Telefono;
                     * string fax=dr.IsFaxNull()? "":dr.Fax;
                     * string provinciaID =dr.IsProvinciaIDNull()?"":dr.ProvinciaID.ToString();
                     * string localidadID =dr.IsLocalidadIDNull()?"":dr.LocalidadID.ToString();
                     */

                    //EXTRA
                    //string localidadDescrip = dr.IsLocalidadNull()?"":dr.Localidad;
                    strLocalidades = "";
                    if (this.txtTipoCliConsul.Text == "1")
                    {
                        strLocalidades = localidadID + "," + localidadDescrip + ";";
                    }
                    else
                    {
                        strLocalidades = string.Empty;
                        // SFE: Desarrollo de Codigos Postales. se comenta la carga de estas localidades
                        //strLocalidades = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(provinciaID));
                    }
                    //EXTRA

                    depto         = clienteEven.Domicilio.Depto;
                    condicionIVA  = ((int)clienteEven.CondicionIva).ToString();
                    cuit          = clienteEven.NroCuit;
                    tipoCliente   = "False";                  // si es eventual!!!
                    condicionPago = "Contado";
                    strProducto   = "";
                    strTEntrega   = "";
                    strServicio   = "";
                    strModEntrega = "";
                }
                else                 //corporativos
                {
                    ICliente cliente = ClienteFactory.GetCliente();
                    cliente.ClienteID = Utiles.Validaciones.obtieneEntero(dtgClientes.DataKeys[(int)e.Item.ItemIndex].ToString());
                    cliente.Consultar();

                    Session["ClienteCorp.ClienteID"] = cliente.ClienteID;
                    clienteID = cliente.ClienteID;
                    tipoDoc   = ((int)cliente.TipoDocumento).ToString();
                    codigo    = cliente.Codigo;
                    //string nombreCompleto = dr.NombreCompleto;
                    nombre   = cliente.RazonSocial;
                    apellido = cliente.RazonSocial;

                    /*SFE: Implementacion Codigos Postales. Buscar el domicilio del cliente en la tabla GuiaFacturaCorporativo.*/
                    DsClientesGuia       dsC      = new DsClientesGuia();
                    DsClientesGuia       dsD      = new DsClientesGuia();
                    IAdministrarClientes clientes = AdministrarClientesFactory.GetAdministrarClientes();
                    string agenciaID            = Request.QueryString["AgenciaID"];
                    DsClientesGuia.DatosRow drC = null;
                    DsClientesGuia.DatosRow drD = null;
                    if (agenciaID != null && agenciaID.Length > 0)
                    {
                        /*Es para remitente. Tiene como paramentro agenciaID*/
                        dsC = clientes.GetClientesCorpDomicilio(cliente.ClienteID, AgenciaConectadaID, (int)NegociosSisPackInterface.SisPack.TipoAgenteGuia.Remitente);
                        if (dsC.Datos.Count > 0)
                        {
                            drC            = (DsClientesGuia.DatosRow)dsC.Tables[0].Rows[0];
                            calle          = drC.IsCalleNull() ? "" : drC.Calle;
                            calleNro       = drC.IsCalleNroNull() ? "" : drC.CalleNro;
                            telefono       = drC.IsTelefonoNull() ? "" : drC.Telefono;
                            telCodArea     = drC.IsTelCodAreaNull() ? "" : drC.TelCodArea;
                            localidadID    = drC.LocalidadID.ToString();
                            depto          = drC.IsDeptoNull() ? "" : drC.Depto;
                            fax            = drC.IsFaxNull() ? "" : drC.Fax;
                            domicilioID    = drC.IsDomicilioIDNull() ? 0 : drC.DomicilioID;
                            codigoPostalID = drC.IsCodigoPostalIDNull() ? 0 : drC.CodigoPostalID;
                            codPostal      = drC.IsCodPostalNull() ? "" : drC.CodPostal;
                            Session["DsClientesGuiaRem"] = drC;
                        }
                        /*SFE: Implementacion Codigos Postales. Buscar el domicilio del cliente en la tabla GuiaFacturaCorporativo.*/
                        else
                        {
                            calle       = cliente.DomicilioComercial.Calle;
                            calleNro    = cliente.DomicilioComercial.CalleNro;
                            telefono    = cliente.DomicilioComercial.Telefono;
                            telCodArea  = cliente.DomicilioComercial.TelCodArea;
                            fax         = cliente.DomicilioComercial.Fax;
                            localidadID = cliente.DomicilioComercial.Localidad.LocalidadID.ToString();
                            depto       = cliente.DomicilioComercial.Depto;
                            domicilioID = cliente.DomicilioComercial.DomicilioID;
                            //VSA: Modificación desarrollo Código postales
                            codigoPostalID = cliente.DomicilioComercial.OCodigoPostal.CodigoPostalID;
                            if (cliente.DomicilioComercial.OCodigoPostal.CodigoPostalID > 0)
                            {
                                codPostal = cliente.DomicilioComercial.OCodigoPostal.CodigoPostalNro;
                            }
                            else
                            {
                                codPostal = cliente.DomicilioComercial.Localidad.CodigoPostal;
                            }
                        }

                        ILocalidad localidad = LocalidadFactory.GetLocalidad();
                        localidad.LocalidadID = Utiles.Validaciones.obtieneEntero(localidadID);
                        localidad.Consultar();
                        provinciaID      = localidad.Provincia.ProvinciaID.ToString();
                        localidadDescrip = localidad.LocalidadDescrip;
                        provinciaDescrip = localidad.Provincia.ProvinciaDescrip;
                    }
                    else
                    {
                        /*Si no es para remitente. No tiene como paramentro agenciaID*/
                        dsD = clientes.GetClientesCorpDomicilio(cliente.ClienteID, AgenciaConectadaID, (int)NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario);
                        if (dsD.Datos.Count > 0)
                        {
                            drD            = (DsClientesGuia.DatosRow)dsD.Tables[0].Rows[0];
                            calle          = drD.IsCalleNull() ? "" : drD.Calle;
                            calleNro       = drD.IsCalleNroNull() ? "" : drD.CalleNro;
                            telefono       = drD.IsTelefonoNull() ? "" : drD.Telefono;
                            telCodArea     = drD.IsTelCodAreaNull() ? "" : drD.TelCodArea;
                            localidadID    = drD.LocalidadID.ToString();
                            depto          = drD.IsDeptoNull() ? "" : drD.Depto;
                            fax            = drD.IsFaxNull() ? "" : drD.Fax;
                            domicilioID    = drD.IsDomicilioIDNull() ? 0 : drD.DomicilioID;
                            codigoPostalID = drD.IsCodigoPostalIDNull() ? 0 : drD.CodigoPostalID;
                            codPostal      = drD.IsCodPostalNull() ? "" : drD.CodPostal;
                            Session["DsClientesGuiaDes"] = drD;
                        }
                        /*SFE: Implementacion Codigos Postales. Buscar el domicilio del cliente en la tabla GuiaFacturaCorporativo.*/
                        else
                        {
                            calle       = cliente.DomicilioComercial.Calle;
                            calleNro    = cliente.DomicilioComercial.CalleNro;
                            telefono    = cliente.DomicilioComercial.Telefono;
                            telCodArea  = cliente.DomicilioComercial.TelCodArea;
                            fax         = cliente.DomicilioComercial.Fax;
                            localidadID = cliente.DomicilioComercial.Localidad.LocalidadID.ToString();
                            depto       = cliente.DomicilioComercial.Depto;
                            domicilioID = cliente.DomicilioComercial.DomicilioID;
                            //VSA: Modificación desarrollo Código postales
                            codigoPostalID = cliente.DomicilioComercial.OCodigoPostal.CodigoPostalID;
                            if (cliente.DomicilioComercial.OCodigoPostal.CodigoPostalID > 0)
                            {
                                codPostal = cliente.DomicilioComercial.OCodigoPostal.CodigoPostalNro;
                            }
                            else
                            {
                                codPostal = cliente.DomicilioComercial.Localidad.CodigoPostal;
                            }
                        }

                        ILocalidad localidad = LocalidadFactory.GetLocalidad();
                        localidad.LocalidadID = Utiles.Validaciones.obtieneEntero(localidadID);
                        localidad.Consultar();
                        provinciaID      = localidad.Provincia.ProvinciaID.ToString();
                        localidadDescrip = localidad.LocalidadDescrip;
                        provinciaDescrip = localidad.Provincia.ProvinciaDescrip;
                    }
                    //codPostal = localidad.CodigoPostal;

                    //EXTRA
                    //string localidadDescrip = dr.IsLocalidadNull()?"":dr.Localidad;
                    strLocalidades = "";
                    if (this.txtTipoCliConsul.Text == "1")
                    {
                        strLocalidades = localidadID + "," + localidadDescrip + ";";
                    }
                    else
                    {
                        // SFE: Desarrollo de codigos postales, se comenta el llenado de este txt
                        //strLocalidades = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(provinciaID));
                        strLocalidades = string.Empty;
                    }
                    //EXTRA

                    condicionIVA  = ((int)cliente.CondicionIva).ToString();
                    cuit          = cliente.NroCuit;
                    tipoCliente   = "True";                  // es corporativo
                    condicionPago = cliente.CondicionPago.ToString();
                    strProducto   = "";
                    strTEntrega   = "";
                    strServicio   = "";
                    strModEntrega = "";
                }

                /*
                 * string depto=dr.IsDeptoNull()? "":dr.Depto.ToString();
                 * string condicionIVA= dr.IsCondicionIvaIDNull()?"":dr.CondicionIvaID.ToString();
                 * string cuit=dr.IsNroCUITNull()?"":dr.NroCUIT;
                 * string tipoCliente=dr.TipoCliente.ToString();
                 * string condicionPago=dr.IsCondicionPagoDescripNull()?"":dr.CondicionPagoDescrip;
                 * string strProducto = "";
                 * string strTEntrega = "";
                 * string strServicio = "";
                 * string strModEntrega = "";*/

                if (this.txtAgenciaID.Text != "" && this.txtTipoCliConsul.Text == "1")               //Se trata de un cliente corporativo
                {
                    string agenciaID = this.txtAgenciaID.Text;
                    agenciaFiltro           = AgenciaFactory.GetAgencia();
                    agenciaFiltro.AgenciaID = Convert.ToInt32(agenciaID);
                    agenciaFiltro.ConsultarBasico();

                    this.ObtenerUVentaOrigenByCliente(clienteID, ref strProducto, ref strTEntrega, ref strServicio, ref strModEntrega);
                }

                StringBuilder scriptString = new StringBuilder();
                scriptString.Append("<script language='javascript'>\n");
                scriptString.Append("window.dialogArguments.ClienteID = '" + clienteID.ToString() + "';\n");
                scriptString.Append("window.dialogArguments.TipoDoc = '" + tipoDoc + "';\n");
                scriptString.Append("window.dialogArguments.Codigo = '" + codigo + "';\n");
                scriptString.Append("window.dialogArguments.Nombre = '" + nombre + "';\n");
                scriptString.Append("window.dialogArguments.Apellido = '" + apellido + "';\n");
                scriptString.Append("window.dialogArguments.Calle = '" + calle + "';\n");
                scriptString.Append("window.dialogArguments.CalleNro = '" + calleNro + "';\n");
                scriptString.Append("window.dialogArguments.Telefono = '" + telefono + "';\n");
                scriptString.Append("window.dialogArguments.Fax = '" + fax + "';\n");
                scriptString.Append("window.dialogArguments.Localidad = '" + localidadDescrip + "';\n");
                scriptString.Append("window.dialogArguments.LocalidadID = '" + localidadID + "';\n");
                scriptString.Append("window.dialogArguments.StrLocalidades = '" + strLocalidades + "';\n");
                scriptString.Append("window.dialogArguments.Provincia = '" + provinciaDescrip + "';\n");
                scriptString.Append("window.dialogArguments.ProvinciaID = '" + provinciaID + "';\n");
                scriptString.Append("window.dialogArguments.CodPostal = '" + codPostal + "';\n");
                scriptString.Append("window.dialogArguments.Depto = '" + depto + "';\n");
                scriptString.Append("window.dialogArguments.CondicionIVA = '" + condicionIVA + "';\n");
                scriptString.Append("window.dialogArguments.CondicionPago = '" + condicionPago + "';\n");
                scriptString.Append("window.dialogArguments.Cuit = '" + cuit + "';\n");
                scriptString.Append("window.dialogArguments.TipoCliente = '" + tipoCliente + "';\n");
                scriptString.Append("window.dialogArguments.Producto = '" + strProducto + "';\n");
                scriptString.Append("window.dialogArguments.TEntrega = '" + strTEntrega + "';\n");
                scriptString.Append("window.dialogArguments.Servicio = '" + strServicio + "';\n");
                scriptString.Append("window.dialogArguments.ModEntrega = '" + strModEntrega + "';\n");
                scriptString.Append("window.dialogArguments.TelCodArea = '" + telCodArea + "';\n");
                scriptString.Append("window.dialogArguments.DomicilioID = '" + domicilioID + "';\n");
                scriptString.Append("window.dialogArguments.CodigoPostalID = '" + codigoPostalID.ToString() + "';\n");
                scriptString.Append("window.returnValue = true;\n");
                scriptString.Append("window.close();\n");
                scriptString.Append("</script>");

                Page.RegisterClientScriptBlock("scriptModalCliente", scriptString.ToString());
            }
        }