private void BindGrid()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasOriginal, "GuiaID", this.CantidadOpciones);
            SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasNuevas, "GuiaID", this.CantidadOpciones);

            DsGuias ds = new DsGuias();

            if (Session["DsGuiasConsul"] == null)
            {
                fechaDesde = this.txtFechaDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaDesde.Text) : Utiles.Fechas.FormatFechaDDMMYYYY("01/01/1900");
                fechaHasta = this.txtFechaHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaHasta.Text) : DateTime.Today;

                IGuia guia = GuiaFactory.GetGuia();
                guia.AgenciaDestinoID = this.AgenciaConectadaID;
                guia.TipoGuia         = this.rbtGuiaA.Checked ? "A" : this.rbtGuiaB.Checked ? "B" : "";
                guia.NroGuia          = this.txtGuiaNro.Text != "" ? Convert.ToInt32(this.txtGuiaNro.Text) : 0;
                guia.NroSucursalGuia  = this.txtSucGuia.Text != "" ? this.txtSucGuia.Text : string.Empty;

                ds = guia.GetGuiasADevolver(fechaDesde, fechaHasta);

                Session["DsGuiasConsul"] = ds;
            }
            else
            {
                ds = (DsGuias)Session["DsGuiasConsul"];
            }

            this.dtgGuiasOriginal.DataSource = (DsGuias.DatosRow[])ds.Datos.Select("GuiaOriginal = 'True'");
            this.dtgGuiasOriginal.DataBind();

            this.dtgGuiasNuevas.DataSource = (DsGuias.DatosRow[])ds.Datos.Select("GuiaOriginal = 'False'");
            this.dtgGuiasNuevas.DataBind();
        }
Ejemplo n.º 2
0
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string guiaConf = string.Empty;

            IGuiaServicioConfirmacion guiaServ = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion();

            guiaServ.Fecha = DateTime.Now;
            DsGuias ds = (DsGuias)Session["GuiaConfirmacion"];

            foreach (DsGuias.DatosRow dr in ds.Datos.Rows)
            {
                guiaServ.GuiaID = dr.GuiaID;
                //guiaConf = dr.TipoGuia + "-" + dr.NroSucursalGuia.ToString().PadLeft(4, '0') + "-" + dr.NroGuia.ToString().PadLeft(8, '0');
            }
            guiaConf           = ddlTipoGuia.SelectedValue + "-" + txtNroSucursal.Text + "-" + txtNroGuia.Text;
            guiaServ.NroRemito = txtNroRemito.Text;
            guiaServ.UsuarioID = this.usuario.UsuarioID;
            guiaServ.AgenciaID = this.AgenciaConectadaID;
            guiaServ.Guardar();

            // Cargo los datos para imprimir
            IAgencia agencia = AgenciaFactory.GetAgencia();

            hdnPaginaImpresion.Value = "ImprimirConfirmacion.aspx";

            Session["GuiaConfirmacion"]   = guiaConf;
            Session["RemitoConfirmacion"] = txtNroRemito.Text;
            hdnGuiaID.Value     = guiaServ.GuiaID.ToString();
            lblMensaje.Text     = string.Empty;
            butImprimir.Enabled = false;
            btnGuardar.Enabled  = false;
        }
Ejemplo n.º 3
0
        private void Consultar()
        {
            IConsolidado consolidado = ConsolidadoFactory.GetConsolidado();

            consolidado.AgenciaID = AgenciaConectadaID;
            consolidado.DestinoID = Utiles.Validaciones.obtieneEntero(ddlDestino.SelectedValue) == 0 ? Utiles.Validaciones.obtieneEntero(txtDestinoID.Text) : Utiles.Validaciones.obtieneEntero(ddlDestino.SelectedValue);
            int     tipoDestinoID = rbtCasoA.Checked ? 6 : 1;
            DsGuias ds            = consolidado.GetGuiasConsolidadoDataSet(tipoDestinoID, txtNroSucursal.Text, Utiles.Validaciones.obtieneEntero(txtNroGuia.Text));

            SisPackController.AdministrarGrillas.Configurar(this.dtgGuias, "GuiaID", this.CantidadOpciones);
            this.dtgGuias.CurrentPageIndex = Utiles.Validaciones.obtieneEntero(txtPaginaPendientes.Text);
            this.dtgGuias.DataSource       = ds.Datos;
            this.dtgGuias.DataBind();
            this.cantGuiasPendientes = this.dtgGuias.Items.Count;
            if (this.dtgGuias.Items.Count == 0 && this.dtgGuiasAsignadas.Items.Count == 0)
            {
                this.butAceptar.Enabled = false;
            }
            else
            {
                this.butAceptar.Enabled = true;
            }
            if (this.txtNroFactura.Text != "")
            {
                this.butAceptar.Enabled = false;
            }
        }
Ejemplo n.º 4
0
 private void dtgGuias_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
         DsGuias ds = new DsGuias();
         if (Session["DsGuias"] != null)
         {
             try
             {
                 ds = (DsGuias)Session["DsGuias"];
             }
             catch (Exception)
             {
                 ds = new DsGuias();
             }
         }
         if (ds.Datos.Count > 0)
         {
             foreach (DsGuias.DatosRow dr in ds.Datos)
             {
                 if (Convert.ToInt32(dtgGuias.DataKeys[(int)e.Item.ItemIndex]) == dr.GuiaID)
                 {
                     ((CheckBox)e.Item.FindControl("chkGuia")).Checked = true;
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
        public void BinGrilla(Boolean ConfigurarGrid)
        {
            // Reviso si tengo que configurar el grid
            if (ConfigurarGrid == true)
            {
                // Tengo que configurarla.
                SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasRendicion, "GuiaID", this.CantidadOpciones);
            }
            if (Session["dtgGuiasRendicionSession"] == null)          //si no tiene nada cargado en la session
            {
                IGuia guia = GuiaFactory.GetGuia();
                guia.AgenciaDestinoID = this.AgenciaConectadaID;
                ds = guia.GetGuiasPendAsignarGuiaRendicion();
            }
            else
            {
                ds = (DsGuias)Session ["dtgGuiasRendicionSession"];
                foreach (DataGridItem item in dtgGuiasRendicion.Items)
                {
                    DsGuias.DatosRow dr = (DsGuias.DatosRow) this.ds.Datos.Rows[item.DataSetIndex];

                    CheckBox chk = (CheckBox)item.FindControl("chkGuia");
                    dr.Asignado = chk.Checked;
                }
            }
            Session ["dtgGuiasRendicionSession"] = ds;
            this.dtgGuiasRendicion.DataSource    = ds;
            this.dtgGuiasRendicion.DataBind();
            if (this.dtgGuiasRendicion.Items.Count == 0)
            {
                this.butAceptar.Enabled = false;
            }
        }
Ejemplo n.º 6
0
 public DsGuias IngresarGuiaCodigo(int tipoDestinoID, int agenciaReferenciaID, string tipoGuia, string nroSucursalGuia, int nroGuia)
 {
     try
     {
         DsGuias      ds                   = new DsGuias();
         SqlParameter pTipoDestinoID       = new SqlParameter("@TipoDestinoID", tipoDestinoID);
         SqlParameter pDestinoID           = new SqlParameter("@DestinoID", DestinoID);
         SqlParameter pAgenciaReferenciaID = new SqlParameter("@AgenciaReferenciaID", agenciaReferenciaID);
         SqlParameter pTipoGuia            = new SqlParameter("@TipoGuia", tipoGuia);
         SqlParameter pNroSucursalGuia     = new SqlParameter("@NroSucursalGuia", nroSucursalGuia);
         SqlParameter pNroGuia             = new SqlParameter("@NroGuia", nroGuia);
         Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "GetGuiasPendientesAsignarConsolidadoCodigoALL",
                                           pTipoDestinoID, pDestinoID, pAgenciaReferenciaID, pTipoGuia, pNroSucursalGuia, pNroGuia);
         if (ds.Datos.Count == 1)
         {
             return(ds);
         }
         else
         {
             Exception ex = new Exception("La guía no puede ser asignada al consolidado");
             throw ex;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 7
0
        public DsGuias GetGuiasAsignadaGuiaRendicionByGuiaID()
        {
            DsGuias      ds      = new DsGuias();
            SqlParameter pGuiaID = new SqlParameter("@GuiaID", base.GuiaID);

            Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure,
                                              "GuiasAsignadasGuiaRendicionByGuiaID", pGuiaID);
            return(ds);
        }
        private void BindGrid()
        {
            DsGuias ds = (DsGuias)Session["DsGuias"];

            AdministrarGrillas.Configurar(dtgGuias, "GuiaID", CantidadOpciones);
            dtgGuias.CurrentPageIndex = Utiles.Validaciones.obtieneEntero(txtPagina.Text);
            dtgGuias.DataSource       = ds.Datos;
            dtgGuias.DataBind();
        }
        private void butAgregar_Click(object sender, System.EventArgs e)
        {
            try
            {
                BaseValidator bv;
                bv         = (BaseValidator)phGuiaValid.FindControl("guiaEntero");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return;
                }
                DsGuias ds = new DsGuias();
                if ((DsGuias)Session["DsGuias"] != null)
                {
                    ds = (DsGuias)Session["DsGuias"];
                }
                string cadena = txtGuia.Text;
                if (cadena.Length == 10)
                {
                    string tipo = cadena.Substring(0, 1);
//					tipo = tipo == "3" ? "A" : "B";
                    tipo = NegociosSisPackInterface.SisPack.TipoGuia(tipo);
                    string       sucursal    = cadena.Substring(1, 4);
                    string       guia        = cadena.Substring(5, cadena.Length - 5);
                    IConsolidado consolidado = ConsolidadoFactory.GetConsolidado();
                    consolidado.DestinoID = Utiles.Validaciones.obtieneEntero(txtDestinoID.Text);
                    DsGuias dsNuevo = consolidado.IngresarGuiaCodigo(Utiles.Validaciones.obtieneEntero(txtTipoDestinoID.Text), AgenciaConectadaID, tipo, sucursal, Utiles.Validaciones.obtieneEntero(guia));
                    if (dsNuevo.Datos.Count == 1)
                    {
                        foreach (DsGuias.DatosRow drNuevo in dsNuevo.Datos)
                        {
                            DsGuias.DatosRow dr = ds.Datos.NewDatosRow();
                            dr.GuiaID          = drNuevo.GuiaID;
                            dr.TipoGuia        = drNuevo.TipoGuia;
                            dr.NroSucursalGuia = drNuevo.NroSucursalGuia;
                            dr.NroGuia         = drNuevo.NroGuia;
                            dr.ClienteDescrip  = drNuevo.ClienteDescrip;
                            dr.Destino         = drNuevo.Destino;
                            ds.Datos.Rows.Add(dr);
                        }
                    }
                    Session["DsGuias"] = ds;
                    BindGrid();
                    txtGuia.Text = "";
                }
                else
                {
                    Exception ex = new Exception("Debe ingresar el código de la guía");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void BindGrilla()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasAsociadas, "GuiaID", this.CantidadOpciones);
            IGuiaRendicion guiaRend = GuiaRendicionFactory.GetGuiaRendicion();

            ((IGuia)guiaRend).GuiaID = this.txtGuiaID.Text == "" ? 0 : Convert.ToInt32(this.txtGuiaID.Text);
            DsGuias ds = guiaRend.GetGuiasAsignadaGuiaRendicionByGuiaID();

            this.dtgGuiasAsociadas.DataSource = ds;
            this.dtgGuiasAsociadas.DataBind();
        }
Ejemplo n.º 11
0
        private void Consultar()
        {
            int          guiaID = Convert.ToInt32(this.Request.QueryString["GuiaID"]);
            IGuiaFactura guia   = GuiaFacturaFactory.GetGuiaFactura();

            ((IGuia)guia).GuiaID = guiaID;
            DsGuiasFacturas ds = guia.GetGuiasRendicionDataSet(new DateTime(1900, 1, 1), DateTime.Now);

            DsGuiasFacturas.DatosRow[] dr = (DsGuiasFacturas.DatosRow[])ds.Datos.Select("GuiaID =" + guiaID);
            if (dr.Length > 0)
            {
                char[]   separador = { ',' };
                string[] nombre    = /*dr[0].IsRemitenteClienteNull() ? {''} :*/ dr[0].RemitenteCliente.Split(separador);
                if (!dr[0].RemitenteCliente.Equals(""))
                {
                    this.txtNombre.Text   = nombre[1].ToString().Trim();
                    this.txtApellido.Text = nombre[0].ToString().Trim();
                }

                nombre = /*dr[0].IsDestinatarioClienteNull() ? {''} :*/ dr[0].DestinatarioCliente.Split(separador);
                if (!dr[0].DestinatarioCliente.Equals(""))
                {
                    this.txtNombreDesti.Text   = nombre[1].ToString().Trim();
                    this.txtApellidoDesti.Text = nombre[0].ToString().Trim();
                }

                this.txtObservaciones.Text = dr[0].IsObservacionesNull() ? "" : dr[0].Observaciones;
                this.butAceptar.Attributes.Add("style", "display:none");
                this.txtApellido.Enabled      = false;
                this.txtApellidoDesti.Enabled = false;
                this.txtNombre.Enabled        = false;
                this.txtNombreDesti.Enabled   = false;
                this.txtObservaciones.Enabled = false;
                this.chkTodos.Enabled         = false;

                oGuiaRen = GuiaRendicionFactory.GetGuiaRendicion();
                ((IGuia)oGuiaRen).GuiaID = guiaID;
                DsGuias dsGuiasRendidas = oGuiaRen.GetGuiasAsignadaGuiaRendicionByGuiaID();
                SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasRendicion, "GuiaID", this.CantidadOpciones);
                this.dtgGuiasRendicion.DataSource = dsGuiasRendidas;
                this.dtgGuiasRendicion.DataBind();
                this.dtgGuiasRendicion.Enabled = false;
                this.butVolver.Attributes.Add("style", "display:inline");
            }
        }
Ejemplo n.º 12
0
 public DsGuias GetGuiasConsolidadoDataSet(int tipoDestinoID, string sucursal, int nroguia)
 {
     try
     {
         DsGuias      ds                   = new DsGuias();
         SqlParameter pTipoDestinoID       = new SqlParameter("@TipoDestinoID", Utiles.BaseDatos.IntToSql(tipoDestinoID));
         SqlParameter pDestinoID           = new SqlParameter("@DestinoID", Utiles.BaseDatos.IntToSql(DestinoID));
         SqlParameter pAgenciaReferenciaID = new SqlParameter("@AgenciaReferenciaID", Utiles.BaseDatos.IntToSql(AgenciaID));
         SqlParameter pSucursal            = new SqlParameter("@Sucursal", Utiles.BaseDatos.StrToSql(sucursal));
         SqlParameter pNroGuia             = new SqlParameter("@NroGuia", Utiles.BaseDatos.IntToSql(nroguia));
         Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "GetGuiasPendientesAsignarConsolidadoALL", pTipoDestinoID, pDestinoID, pAgenciaReferenciaID, pSucursal, pNroGuia);
         return(ds);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 13
0
        private bool EsGuiaDePuntoRecepcionReferenciado(int guiaID)
        {
            IGuia oGuia = GuiaFactory.GetGuia();

            oGuia.GuiaID = guiaID;
            DsGuias ds = oGuia.GetGuiaOneDataSet();

            DsGuias.DatosRow[] dr = (DsGuias.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID);
            if (dr.Length > 0)
            {
                oGuia.PuntoRecepcionID = dr[0].IsPuntoRecepcionIDNull() ? 0 : dr[0].PuntoRecepcionID;
            }
            else
            {
                oGuia.PuntoRecepcionID = 0;
            }
            return(oGuia.EsGuiaDePuntoRecepcionReferenciado(this.AgenciaConectadaID));
        }
Ejemplo n.º 14
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            #region IsAuthenticated
            if (Session["Usuario"] != null)
            {
                usuario = (IUsuarios)Session["Usuario"];
            }


//			if (User.Identity.IsAuthenticated)
//			{
//				string sOpcion = "Poner nombre de la opción";
//				Menu oMenu = (Menu) this.FindControl("Menu1");
//				this.ValidarSeguridad(oMenu, sOpcion);
//
//			}
            #endregion

            // Reviso si se paso un id de guía
            if (GuiaID > 0)
            {
                // Si se paso
                // Genero los scripts necesarios
                GenerarScriptCargarDatos();
            }
            else
            {
                // No se paso. reviso si se paso un código de barras
                if (CodigoBarra != "")
                {
                    // Si se paso un código de barras. Busco la guía a la cual esta asociada
                    IGuia   guia = GuiaFactory.GetGuia();
                    DsGuias ds   = guia.GetGuiasOneByCodigoBarra(CodigoBarra);
                    if (ds.Datos.Count > 0)
                    {
                        Response.Redirect("IngresarInfoFacRemito.aspx?&GuiaID=" + ds.Datos[0].GuiaID + "&NombreClaveObjSession=DatosFacturasARealizarConformacionMasivaCB");
                    }
                }
            }
            // Configuro los controles
            ConfigurarControles();
        }
        private void dtgGuias_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "Delete")
                {
                    /* Obtengo las guías. */
                    DsGuias ds = new DsGuias();
                    ds = (DsGuias)Session["DsGuias"];

                    /* Elimino la guía seleccionada. */
                    ds.Datos.RemoveDatosRow(ds.Datos[e.Item.ItemIndex]);

                    /* Actualizo la variable de sesión y recargo la grilla. */
                    Session["DsGuias"] = ds;
                    this.BindGrid();
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
 private void dtgGuias_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         try
         {
             int     guiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
             DsGuias ds     = new DsGuias();
             if (Session["DsGuias"] != null)
             {
                 ds = (DsGuias)Session["DsGuias"];
             }
             DsGuias.DatosRow [] dr = (DsGuias.DatosRow[])ds.Datos.Select("GuiaID = " + e.Item.Cells[0].Text);
             ds.Datos.RemoveDatosRow(dr[0]);
             Session["DsGuias"] = ds;
             BindGrid();
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
Ejemplo n.º 17
0
        private bool BindGrilla()
        {
            //levanto todas las guias que tenga el servicio de flete pago o de acuse y que hayan sido conformadas
            //por la agencia ingresada

            SisPackController.AdministrarGrillas.Configurar(this.dtgGuiasAsociadas, "GuiaID", this.CantidadOpciones);
            IGuia guia = GuiaFactory.GetGuia();

            IAgencia agencia = AgenciaFactory.GetAgencia();

            agencia.SucursalDGI = this.txtNroSucursal.Text;
            agencia.ConsultarBySucursal();

            if (agencia.AgenciaID == 0)
            {
                this.txtSucursalAgenciaOrigen.Text = "";
                this.txtAgenciaOrigenDescrip.Text  = "";
                this.txtAgenciaOrigenID.Text       = "";

                throw new Exception("La agencia ingresada no es válida.");
            }
            else
            {
                this.txtSucursalAgenciaOrigen.Text = this.txtNroSucursal.Text;
                this.txtAgenciaOrigenDescrip.Text  = agencia.Nombre;
                this.txtAgenciaOrigenID.Text       = agencia.AgenciaID.ToString();
            }

            guia.AgenciaDestinoID = agencia.AgenciaID;             //le pasa el parametro en agencia destino, pero es la de origen.....
            DsGuias ds = guia.GetGuiasPendAsignarGuiaRendicionNoAutomatizadas();

            this.dtgGuiasAsociadas.DataSource = ds;
            this.dtgGuiasAsociadas.DataBind();

            return(ds.Datos.Count > 0);
        }
Ejemplo n.º 18
0
        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                IGuia oGuia = GuiaFactory.GetGuia();
                IGuiaServicioConfirmacion oGuiaServ = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion();
                DsGuias ds = new DsGuias();
                DsGuiaServicioConfirmacion dsGuiaServ = new DsGuiaServicioConfirmacion();

                if (this.rbCodigo.Checked)
                {
                    try
                    {
                        oGuia.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia(this.txtCodigoBarra.Text.Substring(0, 1).Trim()).Trim();

                        if (oGuia.TipoGuia.Equals(""))
                        {
                            throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                        }

                        oGuia.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4);
                        oGuia.NroGuia         = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5));
                        ds = oGuia.GetGuiaOneServicio();
                    }
                    catch (Exception)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado un nro. de guía correcto.");
                        return;
                    }
                }
                else if (this.rbTipo.Checked)
                {
                    oGuia.TipoGuia        = this.ddlTipoGuia.SelectedValue;
                    oGuia.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("") ? "0" : this.txtNroSucursal.Text.Trim();
                    oGuia.NroGuia         = this.txtNroGuia.Text.Trim().Equals("") ? 0 : Convert.ToInt32(this.txtNroGuia.Text.Trim());
                    ds = oGuia.GetGuiaOneServicio();
                }
                else if (rbRemito.Checked)
                {
                    ds = oGuia.GetGuiaByRemitoDataSet(txtNroRemito.Text);
                    if (ds.Datos.Count > 0)
                    {
                        oGuia.GuiaID          = Convert.ToInt32(ds.Datos.Rows[0]["GuiaID"].ToString());
                        oGuia.NroGuia         = Convert.ToInt32(ds.Datos.Rows[0]["NroGuia"].ToString());
                        oGuia.NroSucursalGuia = ds.Datos.Rows[0]["NroSucursalGuia"].ToString();
                        oGuia.TipoGuia        = ds.Datos.Rows[0]["TipoGuia"].ToString();
                    }
                }
                else
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado el nro. de guía .");
                    return;
                }

                if (ds.Datos.Count == 0)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("El nro. de guía no es correcto o no tiene asociado un servicio a confirmar.");
                    return;
                }

                oGuiaServ.GuiaID = oGuia.GuiaID;
                dsGuiaServ       = oGuiaServ.Consultar();

                if (dsGuiaServ.Datos.Count > 0)
                {
                    lblMensaje.Text     = "La guia ya ha sido confirmada";
                    butImprimir.Enabled = true;
                    btnGuardar.Enabled  = false;
                    return;
                }
                else
                {
                    hdnRemito.Value     = ds.Datos.Rows[0]["Observaciones"].ToString(); // en Observaciones viene guardado el numero de remito
                    lblMensaje.Text     = "La guia se encuentra en condiciones de confirmar su servicio";
                    butImprimir.Enabled = false;
                    btnGuardar.Enabled  = true;
                }

                txtNroGuia.Text           = oGuia.NroGuia.ToString();
                txtNroSucursal.Text       = oGuia.NroSucursalGuia;
                ddlTipoGuia.SelectedValue = oGuia.TipoGuia;

                txtCodigoBarra.Text = (oGuia.TipoGuia == "R" ? "9" : (oGuia.TipoGuia == "A" ? "3" : "4")) + oGuia.NroSucursalGuia + oGuia.NroGuia.ToString();

                Session["GuiaConfirmacion"] = ds;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        protected void DevolverGuia(object sender, DataGridCommandEventArgs e)
        {
            try
            {
                bool hayError = false;
                GuiaOriginalID = Convert.ToInt32(this.dtgGuiasNuevas.DataKeys[e.Item.ItemIndex]);
                DsGuias            ds = (DsGuias)Session["DsGuiasConsul"];
                DsGuias.DatosRow[] dr = (DsGuias.DatosRow[])ds.Datos.Select("GuiaID = " + GuiaOriginalID);

                if (dr.Length > 0)
                {
                    DsGuiasFacturas dsGuiasDet;
                    //recupera todas las guías y sus correspondientes detalles
                    if (Session["DsGuiasDetalles"] == null)
                    {
                        IGuiaFactura guiaFact = GuiaFacturaFactory.GetGuiaFactura();
                        ((IGuia)guiaFact).AgenciaDestinoID = this.AgenciaConectadaID;
                        ((IGuia)guiaFact).TipoGuia         = this.rbtGuiaA.Checked ? "A" : this.rbtGuiaB.Checked ? "B" : "";
                        dsGuiasDet = guiaFact.GetGuiasFacturasAgDestinoDataSet(fechaDesde, fechaHasta);

                        Session["DsGuiasDetalles"] = dsGuiasDet;
                    }
                    else
                    {
                        dsGuiasDet = (DsGuiasFacturas)Session["DsGuiasDetalles"];
                    }

                    if (Session["AgenciaConectada"] == null)
                    {
                        oAgencia           = AgenciaFactory.GetAgencia();
                        oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
                        oAgencia.ConsultarBasico();
                    }
                    else
                    {
                        oAgencia = (IAgencia)Session["AgenciaConectada"];
                    }



                    //CARGO DATOS DE LA CABEZA DE LA FACTURA
                    DsGuiasFacturas.DatosRow[] drFactCab = (DsGuiasFacturas.DatosRow[])dsGuiasDet.Datos.Select("GuiaID = " + GuiaOriginalID + " AND PesoTotal > 0");
                    if (drFactCab.Length > 0)
                    {
                        //Parámetro: ID de cliente correspondiente a ANDESMAR
                        IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                        param.UnidadNegocioID = this.UnidadNegocioID;
                        param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ClienteDeAdministracion;
                        param.Consultar();

                        // obtengo los datos de la agencia destino, para guardar el número correcto de la guía
                        // que se devuelve

                        IAgencia agDestino = AgenciaFactory.GetAgencia();
                        agDestino.AgenciaID = drFactCab[0].AgenciaOrigenID;
                        agDestino.ConsultarBasico();

                        guiaNueva = AdministrarGuiasFactory.GetAdministrarGuias();
                        guiaNueva.AgenciaDestinoID = drFactCab[0].AgenciaOrigenID;
                        guiaNueva.AgenciaOrigenID  = drFactCab[0].AgenciaDestinoID;
                        //si la unidad de venta tiene servicio flete pago en destino,
                        //la condición de pago siempre es contado.
                        guiaNueva.CondicionPagoID                = (NegociosSisPackInterface.SisPack.CondicionPago)drFactCab[0].CondicionPagoID;
                        guiaNueva.AgenteGuiaPagoID               = NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario;
                        guiaNueva.AgentePagoCondicionIVA         = (NegociosSisPackInterface.SisPack.CondicionIva)drFactCab[0].CondicionIvaAgentePago;
                        guiaNueva.AgentePagoEsClienteCorporativo = true;
                        guiaNueva.ClienteCorp.ClienteID          = drFactCab[0].RemitenteClienteID;
                        guiaNueva.CantBultos = drFactCab[0].CantidadBultosTotal;
                        guiaNueva.ClienteCorpRemitente.ClienteID = Convert.ToInt32(param.ValorString);
                        guiaNueva.ClienteCorpRemitente.Consultar();
                        guiaNueva.ClienteCorpDestinatario.ClienteID = drFactCab[0].RemitenteClienteID;
                        guiaNueva.ClienteCorpDestinatario.Consultar();

                        guiaNueva.NroCUITAgentePago = drFactCab[0].CUITAgentePago;
                        guiaNueva.NroGuia           = drFactCab[0].NroGuia;
                        guiaNueva.NroSucursalGuia   = oAgencia.SucursalDGI;
                        guiaNueva.Observaciones     = "Devolución guía número " + Utiles.Formatos.CerosIzq(Convert.ToInt32(agDestino.SucursalDGI), 4) + "-" + Utiles.Formatos.CerosIzq(drFactCab[0].NroGuia, 8) + "-" + drFactCab[0].TipoGuia;
                        //guiaNueva.Observaciones = "Devolución guía número " + Utiles.Formatos.CerosIzq(Convert.ToInt32(oAgencia.SucursalDGI), 4) + "-" + Utiles.Formatos.CerosIzq(drFactCab[0].NroGuia, 8) + "-" + drFactCab[0].TipoGuia;
                        guiaNueva.PesoTotal        = drFactCab[0].PesoTotal;
                        guiaNueva.PesoKgReal       = drFactCab[0].PesoTotal;
                        guiaNueva.UnidadNegocioID  = drFactCab[0].UnidadNegocioID;
                        guiaNueva.ValorDeclarado   = drFactCab[0].ValorDeclaradoTotal;
                        guiaNueva.VolumenTotal     = drFactCab[0].VolumenTotal;
                        guiaNueva.RemitoClienteNro = drFactCab[0].RemitoClienteNro.ToString();

                        //CARGO DATOS DEL DETALLE DE LA FACTURA
                        DsGuiasFacturas.DatosDetalleRow[] drFactDet = (DsGuiasFacturas.DatosDetalleRow[])dsGuiasDet.DatosDetalle.Select("GuiaID = " + GuiaOriginalID);
                        if (drFactDet.Length > 0)
                        {
                            guiaNueva.TipoBultoID = (NegociosSisPackInterface.SisPack.TipoBulto)drFactDet[0].TipoBultoID;

                            //el try se usa en caso de que el seguro venga con DBNull
                            //en cuyo caso se le coloca en cero.
                            try
                            {
                                guiaNueva.SeguroTantoPorMil = Convert.ToDouble(drFactDet[0].SeguroTantoPorMil);
                            }
                            catch (Exception)
                            {
                                guiaNueva.SeguroTantoPorMil = 0;
                            }
                            guiaNueva.GuiaDevueltaID = drFactDet[0].GuiaID;


                            //Si la u. de vta de la guía a devolver tiene servicio ContraReembolso, o Acuse de recibo
                            //regresa como encomienda estándar sin servicio adicional.
                            IUnidadVenta uVta = UnidadVentaFactory.GetUnidadVenta();
                            DsUnidadVentaTEntregaProductoServicio            dsUV  = uVta.GetServiciosDisponiblesByProductoTEntregaAgenciaDataSet();
                            DsUnidadVentaTEntregaProductoServicio.DatosRow[] drsUV = (DsUnidadVentaTEntregaProductoServicio.DatosRow[])dsUV.Datos.Select("UnidadVentaID = " + drFactDet[0].UnidadVentaID
                                                                                                                                                         + " AND (ServicioID = " + (int)NegociosSisPackInterface.SisPack.Servicio.ContraReembolso + " OR ServicioID = " + (int)NegociosSisPackInterface.SisPack.Servicio.AcuseRecibo + ")");
                            if (drsUV.Length > 0)
                            {
                                //Parámetro: ID Unidad de venta correspondiente a Encomienda estándar sin servicio adicional
                                param.Parametro = NegociosSisPackInterface.SisPack.Parametro.EncomiendaEstandarSinServAdicional;
                                param.Consultar();
                                guiaNueva.UnidadVentaID = Convert.ToInt32(param.ValorString);
                            }
                            else
                            {
                                guiaNueva.UnidadVentaID = drFactDet[0].UnidadVentaID;
                            }


                            //la guia debe devolverse con la modalidad de entrega inversa a la original
                            // siempre y cuando esa modalidad estè contemplada en el convenio del cliente
                            // para la unidad de venta con la que sale la guia nueva
                            IAdministrarGuias guiaOriginal = AdministrarGuiasFactory.GetAdministrarGuias();
                            guiaOriginal.GuiaID = drFactCab[0].GuiaID;
                            guiaOriginal.ClienteCorp.ClienteID = drFactCab[0].RemitenteClienteID;
                            guiaOriginal.UnidadVentaID         = guiaNueva.UnidadVentaID;
                            guiaOriginal.ModalidadEntregaID    = guiaOriginal.GetModalidadEntrega();
                            guiaOriginal.AgenciaOrigenID       = drFactCab[0].AgenciaOrigenID;

                            /*if(guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta) && guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta))
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta;
                             * if(guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta))
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta;
                             * else if (guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta))
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta;
                             * else
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal;*/

                            //para que vuelva con entrega a domicilio hay 1 condicion:
                            // - que el cliente tenga en el convenio la modalidad de entrega a domic para
                            //	la UV con la que sale la guia para el destino de la guia q vuelve
                            // nota: en ultima instancia vuelve Ter-Ter indptemente de que esté o no en el convenio del cliente

                            if (guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaTerminal) || guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta))
                            {
                                guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta;
                            }
                            else
                            {
                                guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal;
                            }

                            /*if(guiaOriginal.ModalidadEntregaID == (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaTerminal && guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta))
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta;
                             * else if (guiaOriginal.ModalidadEntregaID == (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta && guiaOriginal.GetTieneModalidad((int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta))
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.PuertaPuerta;
                             * else if (guiaOriginal.ModalidadEntregaID == (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalPuerta)
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal;
                             * else if (guiaOriginal.ModalidadEntregaID == (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal)
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal;
                             * else
                             *      guiaNueva.ModalidadEntregaID = (int)NegociosSisPackInterface.SisPack.ModalidadEntrega.TerminalTerminal;*/


                            //CARGO DATOS DE LOS SUBCONCEPTOS FACTURADOS
                            DsGuiasFacturas.DatosDetalleSubconceptoFacturableRow[] drFactSCF = (DsGuiasFacturas.DatosDetalleSubconceptoFacturableRow[])dsGuiasDet.DatosDetalleSubconceptoFacturable.Select("GuiaID = " + drFactDet[0].GuiaID
                                                                                                                                                                                                           + " AND GuiaFacturaDetalleID = " + drFactDet[0].GuiaFacturaDetalleID + " AND (SubConceptoFacturableID = " + (int)NegociosSisPackInterface.SisPack.SubConceptoFacturable.FleteNacional + " OR SubConceptoFacturableID = " + (int)NegociosSisPackInterface.SisPack.SubConceptoFacturable.Seguro + ")");
                            if (drFactSCF.Length > 0)
                            {
                                foreach (DsGuiasFacturas.DatosDetalleSubconceptoFacturableRow drSubConcepto in drFactSCF)
                                {
                                    if (drSubConcepto.SubConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.SubConceptoFacturable.FleteNacional)
                                    {
                                        guiaNueva.ImporteFlete = drSubConcepto.Importe;
                                    }
                                    else
                                    {
                                        guiaNueva.ImporteSeguro = drSubConcepto.Importe;
                                    }
                                }

                                guiaNueva.CalcularImportes();
                                Session["guiaNueva"] = guiaNueva;
                                this.ObtenerNroGuia(dr[0].TipoGuia);
                            }
                            else
                            {
                                hayError = true;
                            }
                        }
                        else
                        {
                            hayError = true;
                        }
                    }
                    else
                    {
                        hayError = true;
                    }
                }
                if (hayError)
                {
                    ((ErrorWeb)phErrores.FindControl("Error")).setMensaje(this.TraducirTexto("Errores.Invalidos.GuiaIncompleta"));
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
        private void butAgregar_Click(object sender, System.EventArgs e)
        {
            try
            {
                BaseValidator bv;
                bv         = (BaseValidator)phGuiaValid.FindControl("guiaEntero");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return;
                }

                DsGuias ds = new DsGuias();

                if (Session["DsGuias"] != null)
                {
                    ds = (DsGuias)Session["DsGuias"];
                }

                string cadena = txtGuia.Text;
                if (cadena.Length >= 10)
                {
                    string tipo = "";
//					tipo = tipo == "3" ? "A" : "B";
                    tipo = NegociosSisPackInterface.SisPack.TipoGuia(cadena.Substring(0, 1));

                    string sucursal = cadena.Substring(1, 4);
                    string guia     = cadena.Substring(5);
                    int    guiaID   = SisPackController.LlenarCombos.GuiaID(tipo, sucursal, Utiles.Validaciones.obtieneEntero(guia));

                    // Verificamos que la guía tenga al menos como remitente o destinatario un cliente.
                    IGuia     guiaIngresada         = GuiaFactory.GetGuia();
                    string    remitenteDestinatario = guiaIngresada.ObtenerRemitenteDestinatario(guiaID);
                    string [] remDes = remitenteDestinatario.Split('-');


                    if (remDes[0].Equals("0") && remDes[1].Equals("0"))
                    {
                        Exception ex = new Exception("La guía ingresada no es válida.");
                        throw ex;
                    }

                    if (guiaID > 0)
                    {
                        // Verificamos que el dato no exista o no se haya ingresado.
                        DsGuias.DatosRow[] unaGuia = (DsGuias.DatosRow[])ds.Datos.Select("GuiaID = " + guiaID);
                        if (unaGuia.Length == 0)
                        {
                            DsGuias.DatosRow dr = ds.Datos.NewDatosRow();
                            dr.GuiaID          = guiaID;
                            dr.TipoGuia        = tipo;
                            dr.NroSucursalGuia = Convert.ToInt32(sucursal);
                            dr.NroGuia         = Convert.ToInt32(guia);
                            ds.Datos.AddDatosRow(dr);
                        }
                        else
                        {
                            this.txtGuia.Text = "";
//							Exception ex = new Exception("La guía ya ha sido ingresada.");
//							throw ex;
                        }

                        Session["DsGuias"] = ds;
                        BindGrid();
                        // Limpiamos número de guía para seguir ingresando.
                        this.txtGuia.Text = "";
                    }
                    else
                    {
                        Exception ex = new Exception("La guía ingresada no existe.");
                        throw ex;
                    }
                }
                else if (cadena.Length == 0)
                {
                    Exception ex = new Exception("Debe ingresar el código de la guía");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void butImprimir_Click(object sender, System.EventArgs e)
        {
            try
            {
                IGuia     oGuia      = GuiaFactory.GetGuia();
                IFactura  oFactura   = FacturaFactory.GetFactura();
                DsGuias   ds         = new DsGuias();
                DsFactura dsFacturas = null;
                DsGuiaFacturaImpresion dsFacturaImpresion;
                IAgencia agencia             = null;
                int      tipoImpresionGuiaID = 0;
                int      puedeReimprimir     = 0;

                /*if(this.rbCodigo.Checked)
                 *  ds = oGuia.GetGuiasOneByCodigoBarra(this.txtCodigoBarra.Text.Trim());
                 */

                if (this.rbCodigo.Checked)
                {
                    try
                    {
                        oGuia.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia(this.txtCodigoBarra.Text.Substring(0, 1).Trim()).Trim();

                        if (oGuia.TipoGuia.Equals(""))
                        {
                            throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                        }

                        oGuia.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4);
                        oGuia.NroGuia         = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5));
                    }
                    catch (Exception)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado un nro. de guía correcto.");
                        return;
                    }
                }
                else if (this.rbTipo.Checked)
                {
                    oGuia.TipoGuia        = this.ddlTipoGuia.SelectedValue;
                    oGuia.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("") ? "0" : this.txtNroSucursal.Text.Trim();
                    oGuia.NroGuia         = this.txtNroGuia.Text.Trim().Equals("") ? 0 : Convert.ToInt32(this.txtNroGuia.Text.Trim());
                }
                else
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado el nro. de guía ha reimprimir.");
                    return;
                }

                ds = oGuia.GetGuiaOneDataSet();


                if (ds.Datos.Count == 0)
                {
                    oFactura.TipoGuia        = oGuia.TipoGuia;
                    oFactura.NroSucursalGuia = oGuia.NroSucursalGuia;
                    oFactura.NroGuia         = oGuia.NroGuia;
                    dsFacturas = oFactura.GetByNroFactura();
                }

                if (ds.Datos.Count > 0)
                {
                    DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0];
                    this.txtGuiaID.Text = dr.GuiaID.ToString();
                    puedeReimprimir     = oGuia.VerificarReImpresion(dr.GuiaID, this.usuario.AgenciaID);
                    if (puedeReimprimir == 1)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guia FPD en el destino.");
                        return;
                    }
                    else if (puedeReimprimir == 2)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guia ya que no esta en la agencia.");
                        return;
                    }
                    else
                    {
                        oGuia.RegistrarReImpresion(this.usuario.UsuarioID, this.usuario.AgenciaID, dr.GuiaID);
                    }

                    /* Traer datos de impresión. */
                    agencia           = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = dr.AgenciaOrigenID;
                    agencia.ConsultarBasico();
                    dr = null;

                    /* Traer los datos de la guía para la impresión. */
                    IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    oAdminGuia.GuiaID  = Convert.ToInt32(this.txtGuiaID.Text.Trim());
                    dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID();
                    oAdminGuia         = null;

                    // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion
                    tipoImpresionGuiaID = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;

                    Session["DatosGuia"] = dsFacturaImpresion;
                    /*************************************************/
                }
                else if (ds.Datos.Count == 0)
                {
                    if (dsFacturas.Datos.Count > 0)
                    {
                        DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0];
                        //this.txtGuiaID.Text = drFac.GuiaID.ToString();

                        /* Traer datos de impresión. */
                        agencia           = AgenciaFactory.GetAgencia();
                        agencia.AgenciaID = drFac.AgenciaID;
                        agencia.ConsultarBasico();

                        /* Traer los datos de la factura para la impresión. */
                        oFactura.FacturaID = drFac.FacturaID;
                        // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente
                        if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion)
                        {
                            // Se trata de una factura de concepto de facturación
                            dsFacturaImpresion   = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID());
                            tipoImpresionGuiaID  = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        else
                        {
                            // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte
                            dsFacturaImpresion = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID());
                            // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion
                            tipoImpresionGuiaID  = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        drFac = null;
                        /*************************************************/
                    }
                    else
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se encuentra la guía / factura ingresada.");
                        return;
                    }
                }

                // Se comenta la siguiente linea para el desarrollo de integracion de SisPack-Delfos. El tipo de impresion depende de la empresa y la agencia. Esto estaba al 20/12/2013
                //int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId;

                // Si es Unidad de Logistica, imprimir el comprobante como Autoimpresor_EnBlanco
                if (oGuia.TipoGuia == "X")
                {
                    tipoImpresionGuiaID = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                }

                if (tipoImpresionGuiaID == 0)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. El tipo de impresión no está definido.");
                    return;
                }
                if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guía pre-impresa.");
                    return;
                }

                string implementacion  = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString();
                string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion);

                if (paginaImpresion.Trim().Equals(""))
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. La página de impresión no está definida.");
                    return;
                }
                agencia = null;
                /*****************************/

                string scriptString = "<script language='javascript'>\n";
                scriptString += "		window.showModalDialog('"+ paginaImpresion + "?CantCopias=" + this.txtCantCopias.Text.Trim() + "','Reimprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                scriptString += "		window.location.href = 'ReImprimirGuiaDestino.aspx';\n";
                scriptString += "	  </script>\n";

                Page.RegisterStartupScript("scriptImpresion", scriptString);

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds         = null;
                dsFacturas = null;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                IAgencia ag = AgenciaFactory.GetAgencia();
                ag.AgenciaID = usuario.AgenciaID;
                ag.Consultar();

                int    NroDesde = Convert.ToInt32(txtFechaDesde.Text);
                int    NroHasta = Convert.ToInt32(txtFechaHasta.Text);
                string tipoguia = ddlTipoGuia.SelectedValue;

                int cantidad = NroHasta - NroDesde;


                if (cantidad >= 51 || cantidad < 0)
                {
                    throw new Exception("Solamente se permite un rango de 50 guías a imprimir .");
                }

                if (txtCantidad.Text == "")
                {
                    throw new Exception("Falta ingresar la cantidad de hojas a imprimir.");
                }

                if (txtFechaDesde.Text == "" && txtFechaHasta.Text == "")
                {
                    throw new Exception("Falta ingresar Rango");
                }

                if (txtFechaDesde.Text != "" && txtFechaHasta.Text == "")
                {
                    throw new Exception("Falta ingresar ");
                }

                if (txtFechaDesde.Text == "" && txtFechaHasta.Text != "")
                {
                    throw new Exception("Falta ingresar Rango");
                }

                string nrosucursal = ag.SucursalDGI.Trim();

                if (ddlEmpresa.SelectedValue == "Cargas")
                {
                    string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3);
                    nrosucursal = 5 + SucursalFinal;
                    //5
                }
                else if (ddlEmpresa.SelectedValue == "Express")
                {
                    nrosucursal = ag.SucursalDGI.Trim();
                    //4
                }
                else
                {
                    nrosucursal = "";
                }
                IGuia    oGuia    = GuiaFactory.GetGuia();
                IFactura oFactura = FacturaFactory.GetFactura();
                DsGuias  ds       = new DsGuias();

                IAgencia agencia = null;

                ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucursal, tipoguia, usuario.AgenciaID);

                if (ds.Datos.Count == 0)
                {
                    throw new Exception("No existen guias en el rango ingresado");
                }

                if (ds.Datos.Count > 0)
                {
                    for (int i = 0; i < ds.Datos.Count(); i++)
                    {
                        DsGuias.DatosRow dr     = (DsGuias.DatosRow)ds.Datos.Rows[i];
                        string           guiaid = dr.GuiaID.ToString();

                        /* Traer datos de impresión. */
                        agencia           = AgenciaFactory.GetAgencia();
                        agencia.AgenciaID = dr.AgenciaOrigenID;
                        agencia.ConsultarBasico();
                        dr = null;

                        IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                        oAdminGuia.GuiaID = Convert.ToInt32(guiaid.Trim());
                        drGuia            = (DsGuiaFacturaImpresion.DatosRow)(oAdminGuia.GetDataSetImpresionByGuiaID()).Datos.Rows[0];

                        drGuia.CantidadCopiasImprimir = 1;
                        dsFacturaImpresion.Datos.ImportRow(drGuia);
                        oAdminGuia = null;


                        Session["DatosGuia"] = dsFacturaImpresion;
                        dsFacturaImpresion   = (DsGuiaFacturaImpresion)Session["DatosGuia"];
                    }
                }
                string paginaImpresion = agencia.GetPaginaImpresion(3, "Andesmar");

                if (paginaImpresion.Trim().Equals(""))
                {
                    throw new Exception("No se puede reimprimir la guía ingresada. La página de impresión no está definida.");
                }
                agencia = null;
                /*****************************/

                string scriptString = "<script language='javascript'>\n";
                scriptString += "		window.showModalDialog('"+ paginaImpresion + "?CantCopias=" + txtCantidad.Text + "','Reimprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                scriptString += "		window.location.href = 'ReimprimirGuia.aspx';\n";
                scriptString += "	  </script>\n";

                Page.RegisterStartupScript("scriptImpresion", scriptString);

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds = null;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
        private void ImprimirGuia(int GuiaID, NegociosSisPackInterface.SisPack.ClasificacionGuia ClasificacionGuia)
        {
            try
            {
                IGuia     oGuia      = GuiaFactory.GetGuia();
                IFactura  oFactura   = FacturaFactory.GetFactura();
                DsGuias   ds         = new DsGuias();
                DsFactura dsFacturas = null;
                DsGuiaFacturaImpresion dsFacturaImpresion;
                IAgencia agencia = null;
                oGuia.GuiaID = GuiaID;

                if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito)
                {
                    ds = oGuia.GetGuiaOneDataSet();
                }
                else if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                {
                    oFactura.FacturaID = GuiaID;
                    dsFacturas         = oFactura.GetFacturaByFacturaID(GuiaID);
                }

                if (ds.Datos.Count > 0)
                {
                    DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0];

                    /* Traer datos de impresión. */
                    agencia           = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = dr.AgenciaOrigenID;
                    agencia.ConsultarBasico();
                    dr = null;

                    /* Traer los datos de la guía para la impresión. */
                    IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    oAdminGuia.GuiaID  = GuiaID;
                    dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID();
                    oAdminGuia         = null;

                    Session["DatosGuia"] = dsFacturaImpresion;
                    /*************************************************/
                }
                else if (ds.Datos.Count == 0)
                {
                    if (dsFacturas.Datos.Count > 0)
                    {
                        DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0];
                        //this.txtGuiaID.Text = drFac.GuiaID.ToString();

                        /* Traer datos de impresión. */
                        agencia           = AgenciaFactory.GetAgencia();
                        agencia.AgenciaID = drFac.AgenciaID;
                        agencia.ConsultarBasico();

                        /* Traer los datos de la factura para la impresión. */
                        oFactura.FacturaID = drFac.FacturaID;

                        // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente
                        if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion)
                        {
                            // Se trata de una factura de concepto de facturación
                            Session["DatosGuia"] = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID());
                        }
                        else
                        {
                            // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte
                            dsFacturaImpresion   = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID());
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        drFac = null;
                        /*************************************************/
                    }
                    else
                    {
                        return;
                    }
                }

                int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId;

                if (tipoImpresionGuiaID == 0)
                {
                    return;
                }
                if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    return;
                }

                string implementacion  = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString();
                string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion);

                if (paginaImpresion.Trim().Equals(""))
                {
                    return;
                }
                agencia = null;
                /*****************************/

                ImprimirGuiaBlanco();

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds         = null;
                dsFacturas = null;
            }
            catch (Exception ex)
            {
            }
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();


            try
            {
                if (txtRangoDesde.Text == "")
                {
                    throw new Exception("Falta ingresar rango");
                }

                if (txtRangoHasta.Text == "")
                {
                    throw new Exception("Falta ingresar rango");
                }
                if (ddlTipoGuia.SelectedValue == "")
                {
                    throw new Exception("Falta seleccionar tipo de guia");
                }


                //if (cantidad >= 51 || cantidad < 0)
                //{
                //    throw new Exception("Solamente se permite un rango de 50 CB a imprimir .");

                //}
                IAgencia ag = AgenciaFactory.GetAgencia();
                ag.AgenciaID = usuario.AgenciaID;
                ag.Consultar();

                IGuia    oGuia    = GuiaFactory.GetGuia();
                IFactura oFactura = FacturaFactory.GetFactura();
                DsGuias  ds       = new DsGuias();

                if (ddlEmpresa.SelectedValue == "Cargas")
                {
                    string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3);
                    nrosucrusal = 5 + SucursalFinal;
                    //5
                }
                else if (ddlEmpresa.SelectedValue == "Express")
                {
                    nrosucrusal = ag.SucursalDGI.Trim();
                    //4
                }
                else
                {
                    nrosucrusal = "";
                }

                int NroDesde = Convert.ToInt32(txtRangoDesde.Text);
                int NroHasta = Convert.ToInt32(txtRangoHasta.Text);

                string tipoguia = ddlTipoGuia.SelectedValue;

                ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucrusal, tipoguia, usuario.AgenciaID);

                if (ds.Datos.Count == 0)
                {
                    throw new Exception("No existen guias en el rango ingresado");
                }

                if (ds.Datos.Count > 0)
                {
                    for (int i = 0; i < ds.Datos.Count(); i++)
                    {
                        DsGuias.DatosRow dr     = (DsGuias.DatosRow)ds.Datos.Rows[i];
                        string           guiaid = dr.GuiaID.ToString();
                        admGuiaO.GuiaID = Convert.ToInt32(guiaid);
                        try
                        {
                            dataImpresion = admGuiaO.GetDataSetImpresionByGuiaID();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        origen  = dataImpresion.Datos.Rows[0][60].ToString();
                        destino = dataImpresion.Datos.Rows[0]["LocalidadDestinatario"].ToString();

                        admGuiaO.TipoGuia        = dataImpresion.Datos.Rows[0][1].ToString();
                        admGuiaO.NroSucursalGuia = dataImpresion.Datos.Rows[0][2].ToString();
                        admGuiaO.NroGuia         = Convert.ToInt32(dataImpresion.Datos.Rows[0][3].ToString());
                        admGuiaO.CantBultos      = Convert.ToInt32(dataImpresion.Datos.Rows[0][29].ToString());

                        NegociosSisPack.ImpresionCajon IC = new NegociosSisPack.ImpresionCajon();
                        try
                        {
                            Session["ImpresoraUsuario"].ToString();

                            //para el caso en el que quieran imprimir solamente un CB
                            //por ejemplo una guia que tenga 50 bultos.
                            //Si presionan el check solamente se imprime 1 etiqueta. FQuiroga 22/12/2016

                            if (chkCantidad.Checked == true)
                            {
                                admGuiaO.CantBultos = 1;
                            }

                            string cb = (admGuiaO.TipoGuia == "R" ? "9" : (admGuiaO.TipoGuia == "A" ? "3" : "4")) + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString();
                            try
                            {
                                for (int i2 = 1; i2 <= admGuiaO.CantBultos; i2++)
                                {
                                    IC.Imprimir(admGuiaO.TipoGuia + " " + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString().ToString(), i2 + "/" + admGuiaO.CantBultos.ToString("000"), cb + i2.ToString("000"), CINT("1", 1), Session["ImpresoraUsuario"].ToString(), origen, destino);
                                }
                            }
                            catch (Exception ex)
                            {
                                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora."));
                            }
                        }
                        catch (Exception ex)
                        {
                            ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora."));
                        }
                        //descanso de codigos para que no salgan tan rapido y se trabe
                        Thread.Sleep(Utiles.Validaciones.obtieneEntero("500"));
                    }
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
            Limpiar();
        }
        private void HGDataBind()
        {
            DataSet ds = new DataSet();

            SisPackController.AdministrarGrillas.Configurar(this.hgAgencias, "AgenciaID", this.CantidadOpciones);

            if (Session["DsGuiasPendientesConsul"] == null)
            {
                string tipoGuia        = this.rbtGuiaA.Checked ? "A" : this.rbtGuiaB.Checked ? "B" : "",
                       sucGuia         = this.txtSucGuia.Text != "" ? this.txtSucGuia.Text : string.Empty;
                DateTime fechaEmiDesde = this.txtFechaEmisionDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaEmisionDesde.Text) : Utiles.Fechas.FormatFechaDDMMYYYY("01/01/1900"),
                         fechaEmiHasta = this.txtFechaEmisionHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaEmisionHasta.Text) : DateTime.Today,
                         fechaRcpDesde = this.txtFechaRecepcionDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaRecepcionDesde.Text) : Utiles.Fechas.FormatFechaDDMMYYYY("01/01/1900"),
                         fechaRcpHasta = this.txtFechaRecepcionHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaRecepcionHasta.Text) : DateTime.Today;
                int valorEstadia       = this.txtDiasEstadia.Text != "" ? Convert.ToInt32(this.txtDiasEstadia.Text) : 0,
                    nroGuia            = this.txtNroGuia.Text != "" ? Convert.ToInt32(this.txtNroGuia.Text) : 0;

                IAgencia   agencia    = AgenciaFactory.GetAgencia();
                DsAgencias dsAgencias = agencia.GetAgenciasConGuiasPendDataSet(fechaEmiDesde, fechaEmiHasta, fechaRcpDesde, fechaRcpHasta, tipoGuia, valorEstadia, nroGuia, sucGuia);

                DsAgencias.DatosRow[] drAgencias;
                if (!this.txtSucursalDGI.Text.Equals(""))
                {
                    drAgencias = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("SucursalDGI = '" + this.txtSucursalDGI.Text + "'");
                }
                else
                {
                    drAgencias = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("", "SucursalDGI");
                }

                ds.Tables.Add(dsAgencias.Tables[0].Clone());
                ds.Tables[0].TableName = "Agencias";
                foreach (System.Data.DataRow row in drAgencias)
                {
                    ds.Tables["Agencias"].ImportRow(row);
                }

                IGuia guia = GuiaFactory.GetGuia();
                guia.TipoGuia        = tipoGuia;
                guia.NroGuia         = nroGuia;
                guia.NroSucursalGuia = sucGuia;
                DsGuias dsGuias = guia.GetGuiasPendientesDataSet(fechaEmiDesde, fechaEmiHasta, fechaRcpDesde, fechaRcpHasta, valorEstadia);

                DsGuias dsGuiasAux = new DsGuias();
                if (!this.txtSucursalDGI.Text.Equals(""))
                {
                    agencia.SucursalDGI = this.txtSucursalDGI.Text;
                    agencia.ConsultarBySucursal();
                    DsGuias.DatosRow[] drGuias = (DsGuias.DatosRow[])dsGuias.Datos.Select("AgenciaDestinoID = " + agencia.AgenciaID);
                    foreach (System.Data.DataRow row in drGuias)
                    {
                        dsGuiasAux.Datos.ImportRow(row);
                    }
                }
                else
                {
                    dsGuiasAux = dsGuias;
                }

                ds.Tables.Add(dsGuiasAux.Tables[0].Clone());
                ds.Tables[1].TableName = "Guias";
                //foreach(System.Data.DataRow row in drGuias)
                //    ds.Tables["Guias"].ImportRow(row);

                DataColumn colSel = ds.Tables[1].Columns.Add();
                colSel.ColumnName   = "Selec";
                colSel.DataType     = typeof(bool);
                colSel.DefaultValue = true;

                DataColumn colGuiaOrig = ds.Tables[1].Columns.Add();
                colGuiaOrig.ColumnName   = "GuiaOriginal1";
                colGuiaOrig.DataType     = typeof(bool);
                colGuiaOrig.DefaultValue = true;

                DataColumn colAAdmin = ds.Tables[1].Columns.Add();
                colAAdmin.ColumnName   = "AAdmin1";
                colAAdmin.DataType     = typeof(bool);
                colAAdmin.DefaultValue = true;


                int index = 0;
                foreach (System.Data.DataRow row in dsGuiasAux.Datos.Rows)
                {
                    ds.Tables["Guias"].ImportRow(row);

                    /*SFE: Modificacion para marcar como devueltas las primeras 50 guias de la lista. Solicitado por Fabian.*/
                    index = ds.Tables["Guias"].Rows.Count;
                    if (index > 50)
                    {
                        ds.Tables["Guias"].Rows[index - 1]["Selec"] = false;
                    }
                }

                DataColumn dc1  = ds.Tables["Agencias"].Columns["AgenciaID"],
                           dc2  = ds.Tables["Guias"].Columns["AgenciaDestinoID"];
                DataRelation dr = new DataRelation("GuiasAgencia", dc1, dc2, false);
                ds.Relations.Add(dr);

                Session["DsGuiasPendientesConsul"] = ds;
            }
            else
            {
                ds = (DataSet)Session["DsGuiasPendientesConsul"];
            }

            this.hgAgencias.DataSource = ds;
            this.hgAgencias.DataMember = "Agencias";
            this.hgAgencias.DataBind();
        }