Exemplo n.º 1
0
        public List <ModalidadEntrega> LLenarModalidadEntrega(string unidadVentaID, string clienteID)
        {
            IAdministrarGuias guia = AdministrarGuiasFactory.GetAdministrarGuias();

            guia.ClienteCorp.ClienteID = Utiles.Validaciones.obtieneEntero(clienteID);
            guia.UnidadVentaID         = Utiles.Validaciones.obtieneEntero(unidadVentaID);

            DsUnidadVentaTEntregaProductoServicio dsProd = guia.GetCotizacionClienteUVentaModalidadByClienteID();

            if (dsProd == null)
            {
                return(null);
            }

            List <ModalidadEntrega> modalidades = new List <ModalidadEntrega>();

            foreach (DsUnidadVentaTEntregaProductoServicio.DatosRow dr in dsProd.Datos.Rows)
            {
                ModalidadEntrega m = new ModalidadEntrega();
                m.ModalidadEntregaDescrip = dr.ModalidadEntregaDescrip;
                m.ModalidadEntregaID      = dr.ModalidadEntregaID;

                if ((from c in modalidades
                     where c.ModalidadEntregaID == dr.ModalidadEntregaID
                     select c).FirstOrDefault() == null)
                {
                    modalidades.Add(m);
                }
            }

            return(modalidades);
        }
Exemplo n.º 2
0
        public List <UnidadVenta> LlenarUnidadesVentaCorporativo(string clienteID, string localidadOrigenID, string localidadDestinoID)
        {
            IAdministrarGuias oAdmGuia = AdministrarGuiasFactory.GetAdministrarGuias();

            oAdmGuia.ClienteCorp.ClienteID = Utiles.Validaciones.obtieneEntero(clienteID);
            oAdmGuia.ClienteCorpRemitente.DomicilioGuia.Localidad.LocalidadID    = Utiles.Validaciones.obtieneEntero(localidadOrigenID);
            oAdmGuia.ClienteCorpDestinatario.DomicilioGuia.Localidad.LocalidadID = Utiles.Validaciones.obtieneEntero(localidadDestinoID);
            DsUnidadVentaTEntregaProductoServicio dsProd = oAdmGuia.GetUVentaServTEntregaModOrigenCotizadasByClienteLocalidadDataSet();

            if (dsProd == null)
            {
                return(null);
            }


            List <UnidadVenta> unidades = new List <UnidadVenta>();

            foreach (DsUnidadVentaTEntregaProductoServicio.DatosRow dr in dsProd.Datos.Rows)
            {
                UnidadVenta m = new UnidadVenta();
                m.UnidadVentaDescrip = dr.UnidadVentaDescrip;
                m.UnidadVentaID      = dr.UnidadVentaID;

                if ((from c in unidades
                     where c.UnidadVentaID == dr.UnidadVentaID
                     select c).FirstOrDefault() == null)
                {
                    unidades.Add(m);
                }
            }

            return(unidades);
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            if (Session["Usuario"] != null)
            {
                this.usuario = (IUsuarios)Session["Usuario"];
            }

            if (User.Identity.IsAuthenticated)
            {
                //this.SetCultura();
                string       sOpcion = "emisionGuiasUnidades";
                SisPacK.Menu oMenu   = (SisPacK.Menu) this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }

            //reviso que el crédito actual de la agencia no esté por debajo del porcentaje parámetro
            //definido, si es así, muestro el mensaje de aviso
            IAgencia agencia = AgenciaFactory.GetAgencia();

            agencia.AgenciaID = this.AgenciaConectadaID;

            this.lblFechaActual.Text = DateTime.Today.ToString("dd/MM/yyyy");

            if (!IsPostBack)
            {
                txtCantidad.Attributes.Add("onkeypress", "javascript:return ValidNum(event);");
                //Mostrar Agencia Conectada
                IAgencia oAgencia = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
                oAgencia.ConsultarBasico();
                this.lblAgenciaConectadaDescrip.Text = oAgencia.RazonSocial;

                Session["AdmGuia"]      = null;
                Session["UnidadesAsig"] = null;
                CargarCombos();
            }

            this.txtAgenciaConcetadaID.Text = this.AgenciaConectadaID.ToString();

            this.txtNroGuia.Attributes.Add("style", "display:none");

            if (Session["AdmGuia"] != null)
            {
                admGuiaO = (IAdministrarGuias)Session["AdmGuia"];
            }
            else
            {
                admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();
            }
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            if (Session["Usuario"] != null)
            {
                this.usuario = (IUsuarios)Session["Usuario"];
            }

            if (User.Identity.IsAuthenticated)
            {
                //this.SetCultura();
                string sOpcion = "devolucionGuias";
                Menu   oMenu   = (Menu)this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }
            Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtFechaDesde.ClientID));
            this.SetearValidadores();
            this.RestablecerControles();
            if (!IsPostBack)
            {
                this.lblFechaActual.Text = DateTime.Today.ToString("dd/MM/yyyy");

                oAgencia           = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
                oAgencia.ConsultarBasico();
                this.lblAgenciaConectada.Text = oAgencia.RazonSocial;

                Session["DsGuiasConsul"] = null;
                Session["guiaNueva"]     = null;
                this.BindGrid();
            }
            if (Session["AgenciaConectada"] == null)
            {
                Session["AgenciaConectada"] = oAgencia;
            }

            this.chkDevolverTodas.Attributes.Add("onclick", "SelecTodas()");
            this.RegistrarScriptsDevolverTodas();

            if (Session["guiaNueva"] != null)
            {
                guiaNueva = (IAdministrarGuias)Session["guiaNueva"];
            }
            else
            {
                guiaNueva = AdministrarGuiasFactory.GetAdministrarGuias();
            }
        }
        private Int32 EmitirGuiaRendicion(Int32 AgenciaID, Int32 UnidadNegocioID, IUsuarios Usuario, Int32 RendicionHojaRutaID)
        {
            using (System.Data.SqlClient.SqlConnection conexion = new System.Data.SqlClient.SqlConnection())
            {
                conexion.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
                conexion.Open();
                System.Data.SqlClient.SqlTransaction transaccion = conexion.BeginTransaction();

                IGuiaRendicion    GuiaRendicion = GuiaRendicionFactory.GetGuiaRendicion();
                IAdministrarGuias admGuiaO      = AdministrarGuiasFactory.GetAdministrarGuias();

                IAgencia agOrigen = AgenciaFactory.GetAgencia();
                agOrigen.AgenciaID = AgenciaID;
                agOrigen.ConsultarBasico();

                admGuiaO.AgenciaOrigenID        = AgenciaID;
                admGuiaO.AgentePagoCondicionIVA = NegociosSisPackInterface.SisPack.CondicionIva.Ninguno;
                admGuiaO.CondicionPagoID        = NegociosSisPackInterface.SisPack.CondicionPago.CuentaCorriente; // Para que genere tipo guía R
                //admGuiaO.GetNroGuia();
                admGuiaO.CargarInfoComprobante((int)NegociosSisPackInterface.SisPack.TipoValidacionEmision.CAI);

                if (agOrigen.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    throw new DatosInvalidosException("No se puede generar la guía debido a que es preimpresa");
                }
                else
                {
                    // La agencia es autoimpresora. Reviso si el CAI esta vencido o no
                    if (DateTime.Today > admGuiaO.FechaVencimientoCAI)
                    {
                        // El CAI esta vencido. Reviso si se puede emitir con el CAI vencido
                        IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                        param.UnidadNegocioID = UnidadNegocioID;
                        param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.PermiteEmitirConCAIVencido;
                        param.Consultar();
                        bool permite = param.ValorString == "1" ? true : false;
                        if (permite == false)
                        {
                            // No se puede emitir con el CAI vencido.
                            throw new DatosInvalidosException("No se puede emitir la guía debido a que la fecha de vencimiento de CAI es superior a la fecha actual.");
                        }
                    }

                    // El CAI no esta vencido o se permite emitir con CAE vencido. Cargo los datos de la guía
                    ((IGuia)GuiaRendicion).NumeroCAI       = admGuiaO.NumeroCAI;
                    ((IGuia)GuiaRendicion).NroGuia         = admGuiaO.NroGuia;
                    ((IGuia)GuiaRendicion).TipoGuia        = admGuiaO.TipoGuia;
                    ((IGuia)GuiaRendicion).NroSucursalGuia = admGuiaO.NroSucursalGuia;
                }

                GuiaRendicion.AgenciaOrigenID = AgenciaID;
                GuiaRendicion.UnidadNegocioID = UnidadNegocioID;

                IParametroUNegocio parametro = ParametroUNegocioFactory.GetParametroUNegocio();
                parametro.UnidadNegocioID = UnidadNegocioID;
                parametro.Parametro       = SisPack.Parametro.AgenciaDestinoGuiaRendicion;
                parametro.Consultar();
                if (parametro.ValorString == null)
                {
                    throw new DatosInvalidosException("No hay cargado una agencia de destino para la guía de rendición");
                }

                GuiaRendicion.AgenciaDestinoID                 = Convert.ToInt32(parametro.ValorString);
                ((IGuia)GuiaRendicion).ClasificacionGuiaID     = NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion;
                ((IGuia)GuiaRendicion).FechaEmision            = DateTime.Now;
                ((IGuia)GuiaRendicion).UsuarioID               = Usuario.UsuarioID;
                ((IGuiaFactura)GuiaRendicion).ImporteTotalGuia = 0;

                parametro.Parametro = SisPack.Parametro.ClienteGuiaRendicionHR;
                parametro.Consultar();
                if (parametro.ValorString == null)
                {
                    throw new DatosInvalidosException("No hay configurado un cliente destinatario para la guía de rendición");
                }

                ((IGuiaFactura)GuiaRendicion).DestinatarioCliente = Convert.ToInt32(parametro.ValorString);
                admGuiaO.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia("9");
                ((IGuiaFactura)GuiaRendicion).EmpresaFacturacionID = admGuiaO.ObtieneEmpresaFacturacion();

                if (GuiaRendicion.GuiasRendidas.getCount() == 0)
                {
                    IGuiaRendicionDetalle guiaConServARendir = GuiaRendicion.GuiasRendidas.AddGuiaRendicionDetalle();
                    guiaConServARendir.RendicionAgenciaID = RendicionHojaRutaID;
                }

                if (GuiaRendicion.EmitirGuiaRendicion(transaccion, Usuario) == false)
                {
                    transaccion.Rollback();
                    throw new Exception("Error al emitir guía de rendición");
                }

                IGuiaFacturaDetalle detalle = GuiaFacturaDetalleFactory.GetGuiaFacturaDetalle();
                detalle.AgenciaOrigenID = AgenciaID;
                detalle.CantidadBultos  = 0;
                detalle.GuiaID          = ((IGuia)GuiaRendicion).GuiaID;

                parametro.Parametro = SisPack.Parametro.UnidadVentaGuiaRendicionHR;
                parametro.Consultar();
                if (parametro.ValorString == null)
                {
                    transaccion.Rollback();
                    throw new DatosInvalidosException("No hay configurada una unidad de venta para la guía de rendición");
                }
                detalle.UnidadVentaID = Convert.ToInt32(parametro.ValorString);
                if (detalle.Guardar(transaccion) == false)
                {
                    transaccion.Rollback();
                    throw new Exception("Error al guardar el detalle de la guía de rendición");
                }

                transaccion.Commit();

                return(((IGuia)GuiaRendicion).GuiaID);
            }
        }
        protected void btnReimprimeOKCliente_Click1(object sender, EventArgs e)


        {
            string pagina = "";
            //  DsEmisionMasivaClienteFin.DatosDataTable dse = (DsEmisionMasivaClienteFin.DatosDataTable)Session["dsDatosRemiprimir"];
            DsEmisionMasivaClienteDLFin ds = (DsEmisionMasivaClienteDLFin)Session["dsDatosRemiprimir"];

            // foreach (DsEmisionMasivaClienteFin.DatosRow drr in dse)
            foreach (DsEmisionMasivaClienteDLFin.DatosRow drr in ds.Datos.Rows)
            {
                if (drr.Imprimir == true && drr.Emitida != "")
                {
                    int cant = drr.Emitida.Length;
                    // string Valo = "";
                    string cadena = Convert.ToString(drr.Emitida);
                    string tguia  = cadena.Substring(0, 1);
                    string nroSuc = cadena.Substring(2, 4);
                    int    numero = cant - 7;
                    string nro    = cadena.Substring(7, numero);

                    IGuia guia = GuiaFactory.GetGuia();
                    guia.TipoGuia        = tguia;
                    guia.NroSucursalGuia = nroSuc;
                    guia.NroGuia         = Convert.ToInt32(nro);
                    guia.ConsultarByNroGuia();

                    IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    oAdminGuia.GuiaID = guia.GuiaID;
                    drGuia            = (DsGuiaFacturaImpresion.DatosRow)(oAdminGuia.GetDataSetImpresionByGuiaID()).Datos.Rows[0];

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


                    DsGuiaFacturaImpresion dataSrc = admGuiaO.GetDataSetImpresion();


                    // Seteo la página con la cual se van ha imprimir las facturas de entrega
                    IAgencia agOrigen = AgenciaFactory.GetAgencia();
                    agOrigen.AgenciaID = AgenciaConectadaID;
                    agOrigen.ConsultarBasico();
                    pagina   = ObtienePaginaImpresion(agOrigen.TipoImpresionGuiaId);
                    agOrigen = null;

                    Session["DatosGuia"] = dsFacturaImpresion;
                    dsFacturaImpresion   = (DsGuiaFacturaImpresion)Session["DatosGuia"];
                }
            }


            DsAgencias dsa = new DsAgencias();
            IAgencia   ag  = AgenciaFactory.GetAgencia();

            ag.AgenciaID = AgenciaConectadaID;

            dsa = ag.GetAgenciasConsultaDataSet();
            string filtro = "AgenciaID =" + AgenciaConectadaID + "";


            DsAgencias.DatosRow[] drLista = (DsAgencias.DatosRow[])dsa.Datos.Select(filtro);

            DsGuiaFacturaImpresion dsFactura = (DsGuiaFacturaImpresion)Session["DatosGuia"];

            //DsEmisionMasiva.DatosDataTable ds = (DsEmisionMasiva.DatosDataTable)Session["dsEmisionMasiva"];

            if (dsFactura.Datos.Count() > 0)
            {
                string script = "";
                System.Web.HttpBrowserCapabilities browser = Request.Browser;
                string name    = browser.Browser;
                float  version = (float)(browser.MajorVersion + browser.MinorVersion);
                if ((name == "IE" && (version == 8)))
                {
                    // script += "window.showModalDialog('" + pagina + "','Imprimiendo Factura...','Height: 934px;Width: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');\n";
                    //   script += "		window.showModalDialog('"+pagina+"','','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    script += "		window.open('"+ pagina + "','','Height: 934px;Width: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "scriptOpen",
                                                            script,
                                                            true);
                }
                else
                {
                    // script += "window.open('" + pagina + "','Imprimiendo Factura...','left=400, top=100, height=500, width= 800, status=no, resizable=no, scrollbars=no, toolbar=yes,location= no, menubar=yes')";
                    script += "		window.open('"+ pagina + "','','Height: 934px;Width: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "scriptOpen",
                                                            script,
                                                            true);
                }
            }
        }
        protected void butGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                int cantidad = 0;

                if (busqAgencia.AgenciaID == "" && busqAgencia.RazonSocial == "")
                // Consultar con Diego!!!
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar una agencia.");
                    return;
                }
                if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "")
                {
                    cantidad = ++cantidad;
                }
                if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "")
                {
                    cantidad = ++cantidad;
                }
                else if (chkAgregarProveedor.Checked && txtDocumento.Text.Trim() != string.Empty && txtRazonSocial.Text.Trim() != string.Empty)
                {
                    cantidad = ++cantidad;
                }

                if (cantidad > 1)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar  un cliente o un Proveedor");
                    // Consultar con Diego!!!
                    return;
                }
                else
                {
                    IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion();
                    unidad.Fecha = DateTime.Now;
                    if (busqAgencia.AgenciaID != "" && busqAgencia.RazonSocial != "")
                    {
                        unidad.AgenciaID = int.Parse(busqAgencia.AgenciaID);
                    }
                    else
                    {
                        unidad.AgenciaID = 0;
                    }

                    if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "")
                    {
                        unidad.ClienteID = int.Parse(busqCliente.ClienteID);
                    }
                    else
                    {
                        unidad.ClienteID = 0;
                    }

                    if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "")
                    {
                        unidad.ProveedorID = int.Parse(busqProveedor1.ProveedorID);
                    }
                    else
                    {
                        unidad.ProveedorID = 0;
                    }

                    if (busqProveedor1.ProveedorID == "" && chkAgregarProveedor.Checked)
                    {
                        unidad.Documento        = txtDocumento.Text;
                        unidad.RazonSocial      = txtRazonSocial.Text;
                        unidad.AgregarProveedor = true;
                    }

                    if (busqObservacion.ObservacionID != "" && busqObservacion.ObsDescrip != "")
                    {
                        unidad.ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID);
                    }
                    else
                    {
                        unidad.ObservacionID = 0;
                    }
                    IList <IGuiaUnidadLogisticaDetalle> lista;

                    unidad.UnidadesLogisticasID = int.Parse(ddlUnidades.SelectedItem.Value);
                    unidad.UsuarioID            = ((IUsuarios)Session["Usuario"]).UsuarioID;
                    unidad.Cantidad             = ddlTipoAccion.SelectedItem.Value == "1" ? int.Parse(txtCantidad.Text) : (-1 * int.Parse(txtCantidad.Text));


                    if (Session["UnidadesAsigAut"] != null)
                    {
                        lista = (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"];
                    }
                    else
                    {
                        lista = new List <IGuiaUnidadLogisticaDetalle>();
                    }
                    lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle()
                    {
                        Cantidad          = int.Parse(txtCantidad.Text),
                        UnidadLogisticaId = int.Parse(ddlUnidades.SelectedItem.Value),
                        Descripcion       = ddlUnidades.SelectedItem.Text,
                        ClienteId         = unidad.ClienteID,
                        RazonCliente      = unidad.RazonSocial,
                        ProveedorId       = unidad.ProveedorID,
                        RazonProv         = unidad.RazonSocial,
                        UsuarioID         = this.usuario.UsuarioID,
                        AgenciaID         = AgenciaConectadaID
                    });
                    Session["UnidadesAsigAut"] = lista;

                    #region ArmarGuiaUnidadLogistica
                    cantidad = 0;
                    /*Cargo datos para la emision de la guia de Unidad de Logistica*/
                    IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                    this.ObtenerNroGuia();
                    ((IGuia)guiaUnidad).NumeroCAI       = this.numeroCAI;
                    ((IGuia)guiaUnidad).TipoGuia        = this.tipoGuiaUnidadLogistica;
                    ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica;
                    ((IGuia)guiaUnidad).NroGuia         = this.nroGuiaUnidadLogistica;
                    /**/
                    ((IGuia)guiaUnidad).AgenciaOrigenID     = this.AgenciaConectadaID;
                    ((IGuia)guiaUnidad).UnidadNegocioID     = this.UnidadNegocioID;
                    ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica;
                    ((IGuia)guiaUnidad).AgenciaDestinoID    = Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID);



                    foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"])
                    {
                        cantidad = cantidad + guiaUL.Cantidad;
                        guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL);
                    }
                    ((IGuiaFactura)guiaUnidad).EmpresaFacturacionID = 1;

                    ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = Utiles.Validaciones.obtieneEntero(txtCantidad.Text);
                    guiaUnidad.TipoOperacionUnidadLogistica        = (ddlTipoAccion.SelectedItem.Value == "1" ? NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Ingreso : NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso);
                    ((IGuia)guiaUnidad).ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID);
                    #endregion

                    /*Guardo la asignacion y la guia de unidad de logistica*/
                    if (unidad.Guardar(guiaUnidad, null))
                    {
                        BindGrid();
                        #region ImpresionGuiaUnidadLogistica
                        Session["UnidadesAsigAut"] = null;
                        IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                        admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID;
                        DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                        Session["DatosGuia"] = dataSrc;
                        IAgencia agOrigen = AgenciaFactory.GetAgencia();
                        agOrigen.AgenciaID = AgenciaConectadaID;
                        agOrigen.ConsultarBasico();
                        if (agOrigen.TipoImpresionGuiaId == 0)
                        {
                            ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido.");
                            return;
                        }
                        // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno.
                        agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                        txtPaginaImpresion.Value     = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);
                        txtGuiaUnidadID.Value        = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString();
                        string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);
                        string script = "<script language='javascript'>\n";
                        script += "			window.showModalDialog('"+ pagina +
                                  "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                        script += "		</script>\n";
                        Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);

                        #endregion
                        txtCantidad.Text              = string.Empty;
                        ddlUnidades.SelectedIndex     = 0;
                        ddlTipoAccion.SelectedIndex   = 0;
                        txtDocumento.Text             = string.Empty;
                        txtRazonSocial.Text           = string.Empty;
                        busqObservacion.ObservacionID = string.Empty;
                        busqObservacion.ObsDescrip    = string.Empty;
                        busqObservacion.ObservacionID = string.Empty;
                        busqObservacion.Codigo        = string.Empty;

                        Session["UnidadesAsigAut"] = null;
                        string mensaje = "Los datos se guardaron correctamente.";

                        string script1 = "<script language='javascript'>\n";
                        script1 += "alert('" + mensaje + "');";
                        script1 += "</script>";

                        Page.RegisterStartupScript("scriptOk", script1);
                    }
                }
            }
            catch (Exception ex)
            {
                Session["UnidadesAsigAut"] = null;
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se pudo realizar la operación: " + 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);
            }
        }
Exemplo n.º 9
0
        private bool EmitirUnidadLogistica()
        {
            int cantidad = 0;

            IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();

            this.ObtenerNroGuia();
            ((IGuia)guiaUnidad).NumeroCAI       = this.numeroCAI;
            ((IGuia)guiaUnidad).TipoGuia        = this.tipoGuiaUnidadLogistica;
            ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica;
            ((IGuia)guiaUnidad).NroGuia         = this.nroGuiaUnidadLogistica;
            /**/
            ((IGuia)guiaUnidad).AgenciaOrigenID     = this.AgenciaConectadaID;
            ((IGuia)guiaUnidad).UnidadNegocioID     = this.UnidadNegocioID;
            ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica;

            NegociosSisPack.ParametroUNegocio parametro = new NegociosSisPack.ParametroUNegocio();
            parametro.UnidadNegocioID = 1;
            parametro.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
            parametro.Consultar();

            ((IGuia)guiaUnidad).AgenciaDestinoID = Utiles.Validaciones.obtieneEntero(parametro.ValorString);

            foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigDev"])
            {
                cantidad = cantidad + guiaUL.Cantidad;
                guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL);
            }

            ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = cantidad;

            guiaUnidad.TipoOperacionUnidadLogistica = NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso;

            /**/
            guiaUnidad.EsPedidoDevolucion = true;
            ((IGuia)guiaUnidad).NoRegistrarEstadoEmitida = true;

            if (guiaUnidad.EmitirGuiaUnidadLogistica(null, this.usuario, false))  // validar stock cuando emite la guia asociada
            {
                //limpiarCarga();
                //dtgUnidades.DataSource = null;
                //dtgUnidades.DataBind();
                Session["UnidadesAsigDev"] = null;
                IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID;
                DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                Session["DatosGuia"] = dataSrc;

                IAgencia agOrigen = AgenciaFactory.GetAgencia();
                agOrigen.AgenciaID = AgenciaConectadaID;
                agOrigen.ConsultarBasico();
                if (agOrigen.TipoImpresionGuiaId == 0)
                {
                    ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido.");
                    return(false);
                }
                // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno.
                agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                txtPaginaImpresion.Value     = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                txtGuiaUnidadID.Value = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString();


                string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                string script = "window.showModalDialog('" + pagina +
                                "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";

                //Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);

                ScriptManager.RegisterClientScriptBlock(this.UpdatePanel2, UpdatePanel2.GetType(), "scriptImprimirGuiaUnidad", script, true);

                return(true);
            }
            else
            {
                return(false);
            }
        }
        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)
            {
            }
        }
        private void GuardarFactura()
        {
            admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();
            admGuiaO.AgenciaOrigenID                   = this.AgenciaConectadaID;
            admGuiaO.AgenciaDestinoID                  = Convert.ToInt32(this.txtAgenciaSelec.Text);
            admGuiaO.NroGuia                           = Convert.ToInt32(this.txtNroGuia.Text);
            admGuiaO.Observaciones                     = this.txtObservaciones.Text;
            admGuiaO.UnidadNegocioID                   = this.UnidadNegocioID;
            admGuiaO.ClienteEventRemitente.Nombre      = this.txtNombre.Text;
            admGuiaO.ClienteEventRemitente.Apellido    = this.txtApellido.Text;
            admGuiaO.ClienteEventDestinatario.Nombre   = this.txtNombreDesti.Text;
            admGuiaO.ClienteEventDestinatario.Apellido = this.txtApellidoDesti.Text;
            admGuiaO.Usuario                           = this.usuario;

            this.txtNroGuia.Text = "";
            Session["AdmGuia"]   = admGuiaO;
            try
            {
                if (admGuiaO.GuardarGuiaAgenciaAgencia())
                {
                    //aqui mando a imprimir con el ID de la guia, primero que se arme el DataSet
                    //admGuiaO.Imprimir();
                    //IMPRIMIR GUIA

                    if (this.ExportarPDF())
                    {
                        Session["AdmGuia"] = null;

                        // Obtengo los datos de la agencia
                        IAgencia oAgencia = AgenciaFactory.GetAgencia();
                        oAgencia.AgenciaID = this.AgenciaConectadaID;
                        oAgencia.Consultar();
                        // Reviso si la agencia es autoimpresor o no
                        if (oAgencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                        {
                            // La agencia no es autoimpresor.
                            string scriptString = "<script language='javascript'>\n";
                            scriptString += "window.open('VerGuia.aspx?id=Guia_" + this.admGuiaO.GuiaID + "_" + this.AgenciaConectadaID + ".pdf', '', 'width=0,height=0,status=no,scrollbars=yes,resizable=yes');\n";
                            scriptString += "window.location.href = 'GuiaAgenciaaAgencia.aspx';\n";
                            scriptString += "</script>\n";
                            Page.RegisterStartupScript("scriptOpen", scriptString);
                        }
                        else
                        {
                            // La agencia es autoimpresor
                            // Armo el script para abrir la página que corresponde para imprimir la guía
                            string pagina       = ObtienePaginaImpresion(oAgencia.TipoImpresionGuiaId);
                            string scriptString = "<script language='javascript'>\n";
                            //scriptString += "window.location.href = '" + pagina + "';\n";
                            scriptString += "window.showModalDialog('" + pagina + "','Imprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                            scriptString += "window.location.href = 'GuiaAgenciaaAgencia.aspx';\n";
                            scriptString += "</script>\n";
                            Page.RegisterStartupScript("scriptOpen", scriptString);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.FindControl("Error")).setMensaje(TraducirTexto(ex.Message));
            }
        }
Exemplo n.º 12
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            try
            {
                string modalidadEntregaID = this.ddlModalidadEntrega.SelectedValue;
                string productoID         = this.ddlProducto.SelectedValue;
                string tiempoEntregaID    = this.ddlTiempoEntrega.SelectedValue;

                string servicioID           = this.ddlServicio.SelectedValue;       //this.txtServicioIDSel.Text;
                string codigoBarras         = this.txtCodigoBarrasTotal.Text;
                string valorDeclarado       = this.txtValorDeclarado.Text;
                string estadoCodigoBarrasID = this.txtPrevendido.Text;
                string importeCR            = this.txtImporteCR.Text;

                // obtengo la unidad de venta que se forma con todo lo seleccionado en los combos
                IUnidadVenta unidadVenta   = UnidadVentaFactory.GetUnidadVenta();
                int          uvID          = unidadVenta.GetUnidadVentaByProdTEServicio(Utiles.Validaciones.obtieneEntero(productoID), Utiles.Validaciones.obtieneEntero(tiempoEntregaID), servicioID.Replace(";", ","));
                string       unidadVentaID = Convert.ToString(uvID);

                // verifico que la agencia contenga los servicios que tiene la unidad de venta seleccionada
                // ya que si NO los tiene, no podrá emitir dicha unidad de venta
                if (!this.AgenciaContieneServicio(uvID, 0, this.AgenciaConectadaID))
                {
                    throw new Exception("Errores.Invalidos.AgenciaServiciosUVenta");
                }

                //------------ Controlo que el código de barras utilizado se haya prevendido
                // al mismo cliente que abona la guía
                if (estadoCodigoBarrasID == "1")                 //prevendido
                {
                    // devuelve 'true' si el codigo de barras fue prevendido a un cliente (o agencia)
                    // y este es igual al remitente de la guia, o bien, si el código no
                    // fue prevendido a un cliente (o agencia), o si fue asignado
                    IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();
                    admGuiaO.ClienteCorp.ClienteID = Session["ClienteCorp.ClienteID"] != null?Convert.ToInt32(Session["ClienteCorp.ClienteID"]) : 0;                       //obtener de la session

                    admGuiaO.AgenciaConectadaID = this.AgenciaConectadaID;
                    int valido = admGuiaO.EsCodigoPrevendidoAcliente(codigoBarras);
                    if (valido == 1)
                    {
                        throw new Exception("ATENCIÓN: El código de barras ingresado fue prevendido a otro cliente.");
                        //Page.RegisterStartupScript("muestraMensaje",SisPackController.GenerarJavaScripts.MostrarMensaje("ATENCIÓN: El código de barras utilizado fue prevendido a otro cliente."));
                        //Session["AdmGuia"] = admGuiaO;
                    }
                    else if (valido == 2)
                    {
                        throw new Exception("ATENCIÓN: El código de barras ingresado fue prevendido a otra agencia.");
                        //Page.RegisterStartupScript("muestraMensaje",SisPackController.GenerarJavaScripts.MostrarMensaje("ATENCIÓN: El código de barras utilizado fue prevendido a otro agencia."));
                        //Session["AdmGuia"] = admGuiaO;
                    }
                }
                //------------------------


                //obtengo el valor declarado si el codigo de barra está asociado a una unidad de venta
                //y si el mismo fue prevendido
                //ICodigoBarras codigoBarras = CodigoBarrasFactory.GetCodigoBarras();
                //codigoBarras

                StringBuilder scriptString = new StringBuilder();
                scriptString.Append("<script language='javascript'>\n");
                scriptString.Append("window.dialogArguments.UnidadVentaID = '" + unidadVentaID + "';\n");
                scriptString.Append("window.dialogArguments.ModalidadEntregaID = '" + modalidadEntregaID + "';\n");
                scriptString.Append("window.dialogArguments.ProductoID = '" + productoID + "';\n");
                scriptString.Append("window.dialogArguments.TiempoEntregaID = '" + tiempoEntregaID + "';\n");
                scriptString.Append("window.dialogArguments.CodigoBarras = '" + codigoBarras + "';\n");
                scriptString.Append("window.dialogArguments.ServicioID = '" + servicioID + "';\n");
                scriptString.Append("window.dialogArguments.ValorDeclarado ='" + valorDeclarado + "';\n");
                scriptString.Append("window.dialogArguments.ImporteCR ='" + importeCR + "';\n");
                scriptString.Append("window.returnValue = true;\n");
                scriptString.Append("window.close();\n");
                scriptString.Append("</script>");
                Page.RegisterClientScriptBlock("scriptModalCliente", scriptString.ToString());
            }
            catch (Exception ex)
            {
                this.ManejaErrores(ex);
            }
        }
        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 Page_Load(object sender, System.EventArgs e)
        {
            string uVta                    = this.Request.QueryString["UVtaID"];
            string modEnt                  = this.Request.QueryString["ModEntrega"];
            string agConectada             = this.Request.QueryString["AgID"];
            string provID                  = this.Request.QueryString["ProvID"];
            string locID                   = this.Request.QueryString["LocID"];
            string localidadesAutorizacion = this.Request.QueryString["LocalidadesAutorizacion"];


            Hashtable hProv;

            if (CacheDataManager.GetCacheValue("hProv") != null)
            {
                hProv = (Hashtable)CacheDataManager.GetCacheValue("hProv");
            }
            else
            {
                hProv = new Hashtable();
            }

            //System.Console.Write("1, Mendoza;2, San Juan;");
            //Response.Write("1, Mendoza;2, San Juan;");
            //Response.ContentType = "text/plain";
            //Response.Write("1, Mendoza;2, San Juan;|");

            // probando....

            /* SFE
             * if (uVta != null && modEnt!=null)
             * {
             *
             *      string datos = "";//
             *
             *      if(uVta != null) //Quiere decir que son las solicitudes del control de Unidad de venta y destino
             *      {
             */
            IAdministrarGuias oAdminGuias = AdministrarGuiasFactory.GetAdministrarGuias();
            DsDestinosGuias   ds          = oAdminGuias.GetUVentaDestinosGuiasDataSet();
            string            datos       = "";

            if (provID == null && locID == null)            //Se quieren cargar las provincias
            {
                if (hProv.Contains(agConectada + "#" + uVta + "#" + modEnt))
                {
                    datos = hProv[agConectada + "#" + uVta + "#" + modEnt].ToString();
                }
                else
                {
                    DsDestinosGuias.DatosRow[] dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt, "ProvinciaDescrip");
                    datos = "0,Elija provincia;";

                    if (dRows != null)
                    {
                        foreach (DsDestinosGuias.DatosRow dr in dRows)
                        {
                            //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                            string nuevoDato = dr.ProvinciaID + "," + dr.ProvinciaDescrip + ";";
                            if (datos.IndexOf(nuevoDato) < 0)
                            {
                                datos += nuevoDato;
                            }
                        }
                    }
                    hProv.Add(agConectada + "#" + uVta + "#" + modEnt, datos);
                    CacheDataManager.SetCacheValue("hProv", hProv);
                }
            }
            //}
            datos += "#";
            Response.Write(datos);
            //}

            /*
             * else //Viene del control de domicilio
             * {
             *      string datos = "";
             *      datos = "0,Elija localidad;";
             *      if(provID != null)
             *      {
             *              datos = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(provID));
             *      }
             *      datos += "#";
             *      Response.Write(datos);
             * }*/
        }
        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();
        }
        /// <summary>
        /// Metodo que filtra los clientes por agencia, de acuerdo al origen que los clientes tienen en sus convenios.
        /// Solo busca entre los clientes CORPORATIVOS!!!!!!
        /// </summary>
        private void BuscarPorAgencia()
        {
            int total = 0;

            try
            {
                IAdministrarClientes clientes = AdministrarClientesFactory.GetAdministrarClientes();
                DsClientesGuia       ds       = new DsClientesGuia();
                //DsClientesGuia ds = clientes.GetClientesCorpOrigenSet(codigo,nombre,"",apellido,cuit);
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaID = Convert.ToInt32(this.agenciaID);
                //OJO!!!
                agencia.ConsultarBasico();
                int localidadID    = agencia.Domicilio.Localidad.LocalidadID;
                int codigoPostalID = agencia.Domicilio.OCodigoPostal.CodigoPostalID;

                /*SFE: Desarrollo de Codigos Postales. Veo si la localidad origen de la Agencia esta incluida en una agrupacion de codigos postales. Me traigo el ID de la agrupacion para ver si esta como origenflete en un convenio de cliente*/
                ICodigoPostalAgrupacion codigoPostalAgrupacion = CodigoPostalAgrupacionFactory.GetCodigoPostalAgrupacion();
                int agrupacionLocalidadOrigenID = codigoPostalAgrupacion.GetAgrupacionDeLocalidad(localidadID, codigoPostalID);

                int    provinciaID    = agencia.Domicilio.Localidad.Provincia.ProvinciaID;
                int    departamentoID = agencia.Domicilio.Localidad.Departamento.DepartamentoID;
                int    paisID         = agencia.Domicilio.Localidad.Provincia.Pais.PaisID;
                string filtroCorp     = "";
                int    totalPrueba;

                if (this.tipoCliConsul != null)
                {
                    if (tipoCliConsul == "1")
                    {
                        ds = clientes.GetClientesCorpOrigenSet(codigo, nombre, "", apellido, cuit, 0, out totalPrueba,
                                                               Utiles.Validaciones.obtieneEntero(agenciaID), localidadID, departamentoID, provinciaID, paisID, codigoPostalID);

                        /*filtroCorp = "Codigo LIKE '" + codigo + "%'AND Nombre LIKE '" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                         *      "%' AND TipoCliente = 1 AND NroCuit like '" + this.cuit + "%' AND ((TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID +") OR (TipoOrigenDestinoID=" +(int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad +" AND OrigenID="+ localidadID +
                         *      ")OR ( TipoOrigenDestinoID = "+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID +
                         *      ")OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                         *      ") OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID + ") OR (TipoOrigenDestinoID = 0 AND OrigenID = 0))";*/

                        //Utiles.DataSetHelper.RemoveEqualRows(ds.Datos,"ClienteID", ""); //filtroCorp
                        total = ds.Datos.Select("").Length;                         //filtroCorp
                    }
                    else
                    {
                        ds = clientes.GetClientesEvenOrigenSet(codigo, nombre, "", apellido, cuit, 0, out totalPrueba);

                        /*filtroCorp = "Codigo LIKE '" + codigo + "%'AND Nombre LIKE '" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                         *      "%' AND TipoCliente = 0 AND NroCuit like '" + this.cuit + "'";*/
                        total = ds.Datos.Rows.Count;
                    }
                }

                /*
                 * string filtro = "Codigo LIKE '" + codigo + "%' AND Nombre LIKE '%" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                 *                                                                      "%' AND (TipoCliente = 0 OR (TipoCliente = 1 AND ((TipoOrigenDestinoID="+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad + " AND OrigenID=" + localidadID +
                 *                                                                      ") OR ( TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                 *                                                                      " )OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID +" ))))";
                 *
                 * DsClientesGuia.DatosRow[] drLista = (DsClientesGuia.DatosRow[])ds.Datos.Select ("Codigo LIKE '" + codigo + "%' AND Nombre LIKE '%" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                 *                                                                      "%' AND ((TipoOrigenDestinoID="+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad + " AND OrigenID=" + localidadID +
                 *                                                                      ") OR ( TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                 *                                                                      " )OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID +" ))","ClienteID");
                 */
                //DsClientesGuia.DatosDataTable  tablaResul;
                //DataTable tablaResul;


                //tablaResul = Utiles.DataSetHelper.SelectDistinct("Datos", ds.Datos , "ClienteID",filtro);
                //tablaResul = Utiles.DataSetHelper.SelectDistinct("Datos", ds.Datos , "ClienteID",filtro);
                //Utiles.DataSetHelper.RemoveEquals((DataRowCollection)drLista,"ClienteID");
                //	System.Data.DataTable tablaResul = new DataTable();
                //	tablaResul = Utiles.DataSetHelper.SelectDistinct("Resul",ds.Datos,"ClienteID", filtro);

                /*
                 * DsClientesGuia.DatosRow[] drLista = (DsClientesGuia.DatosRow[])ds.Datos.Select ("Codigo LIKE '" + codigo + "%' AND Nombre LIKE '%" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                 *      "%' AND ((TipoOrigenDestinoID="+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad + " AND OrigenID=" + localidadID +
                 *      ") OR ( TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                 *      " )OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID +" ))","ClienteID");
                 */
                /*
                 * select * from #temp
                 * where Codigo LIKE '6%'
                 * AND Nombre LIKE '%%'
                 * AND Apellido LIKE'%'
                 * AND (TipoCliente = 0 OR (TipoCliente = 1 AND ((TipoOrigenDestinoID=1 AND OrigenID=1) OR (TipoOrigenDestinoID=2 AND OrigenID=1)
                 * OR ( TipoOrigenDestinoID = 3 AND OrigenID=1)
                 * OR (TipoOrigenDestinoID = 4 AND OrigenID=1 )
                 * OR (TipoOrigenDestinoID = 5 AND OrigenID=1 ))))
                 *
                 * string filtroCorp = "Codigo LIKE '" + codigo + "%'AND Nombre LIKE '%" + nombre + "%' AND Apellido LIKE'%"+ apellido +
                 * "%' AND TipoCliente = 1 AND ((TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID +") OR (TipoOrigenDestinoID=" +(int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad +" AND OrigenID="+ localidadID +
                 * ")OR ( TipoOrigenDestinoID = "+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID +
                 * ")OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                 * ") OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID + ") OR (TipoOrigenDestinoID = 0 AND OrigenID = 0))";
                 *
                 * Utiles.DataSetHelper.RemoveEqualRows(ds.Datos,"ClienteID", filtroCorp);*/
/*
 *                              string filtro  = "Codigo LIKE '" + codigo + "%'AND Nombre LIKE '%" + nombre + "%' AND Apellido LIKE'%"+ apellido +
 *                                      "%' AND (TipoCliente = 0 OR (TipoCliente = 1 AND ((TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID +") OR (TipoOrigenDestinoID=" +(int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad +" AND OrigenID="+ localidadID +
 *                                      ")OR ( TipoOrigenDestinoID = "+ (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID +
 *                                      ")OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
 *                                      ") OR (TipoOrigenDestinoID = " + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID + ") OR (TipoOrigenDestinoID = 0 AND OrigenID = 0))))";
 *                              Utiles.DataSetHelper.RemoveEqualRows(ds.Datos,"ClienteID", filtro);*///NATI
                //total = Utiles.DataSetHelper.DeleteCollectionEqualRows(drLista,"ClienteID");

                //if(tablaResul != null)
                //total = tablaResul.Rows.Count;
                //total = ds.Datos.Select(filtro).Length;// tablaResul.Rows.Count;
                ////total = ((DsClientesGuia.DatosRow[]) ds.Datos.Rows
                //total = ds.Datos.Select(filtro).Length;


                //total = ds.Datos.Select(filtroCorp).Length; --original



                //[0];
                //else
                //	total = 0;
                //total = drLista.Length;

                if (ds == null)
                {
                    total = 0;
                }

                if (total > 0)
                {
                    if (total == 1)
                    {
                        //DsClientesGuia.DatosRow dr = (DsClientesGuia.DatosRow) ((DsClientesGuia.DatosDataTable) ds.Datos).Rows[0]; //drLista[0];

                        //DsClientesGuia.DatosRow dr =(DsClientesGuia.DatosRow) ds.Datos.Rows[0];
                        //DataRow dr = tablaResul.Rows[0];
                        //DsClientesGuia.DatosRow dr =(DsClientesGuia.DatosRow) drLista[0];
                        //DsClientesGuia.DatosRow dr = (DsClientesGuia.DatosRow) ((DsClientesGuia.DatosDataTable)drLista).Rows[0]; //drLista[0];

                        /*
                         * this.txtClienteID.Text = dr["ClienteID"].ToString();
                         * this.txtTipoDoc.Text= dr["TipoDoc"] == null ? "" : dr["TipoDoc"].ToString();
                         * this.txtCodigo.Text = dr["Codigo"] == null ? "" : dr["Codigo"].ToString();
                         * this.txtNombre.Text = dr["Nombre"] == null ? "": dr["Nombre"].ToString();
                         * this.txtApellido.Text = dr["Apellido"] == null ? "" : dr["Apellido"].ToString();
                         * this.txtCalle.Text = dr["Calle"] == null ? "" : dr["Calle"].ToString();
                         * this.txtCalleNro.Text=dr["CalleNro"] == null ? "" : dr["CalleNro"].ToString();
                         * this.txtTelefono.Text=dr["Telefono"] == null ? "" : dr ["Telefono"].ToString();
                         * this.txtFax.Text=dr["Fax"] == null ? "" : dr["Fax"].ToString();
                         * this.txtLocalidadID.Text=dr["LocalidadID"] == null ? "" : dr["LocalidadID"].ToString();
                         * this.txtProvinciaID.Text=dr["ProvinciaID"] == null ? "" : dr["ProvinciaID"].ToString();
                         * this.txtDpto.Text=dr["Depto"] == null ? "" : dr["Depto"].ToString();
                         * this.txtCondicionIVA.Text=dr["CondicionIvaID"] == null ? "" : dr["CondicionIvaID"].ToString();
                         * this.txtCondicionPago.Text=dr["CondicionPagoDescrip"] == null ? "" : dr["CondicionPagoDescrip"].ToString();;
                         * this.txtCuit.Text=dr["NroCUIT"] == null ? "" : dr["NroCUIT"].ToString();
                         * this.txtTipoCliente.Text=dr["TipoCliente"].ToString();
                         */
                        //DsClientesGuia.DatosRow dr = (DsClientesGuia.DatosRow)((DsClientesGuia.DatosRow[]) ds.Datos.Select(filtro))[0];
                        DsClientesGuia.DatosRow dr = (DsClientesGuia.DatosRow)((DsClientesGuia.DatosRow[])ds.Datos.Select(filtroCorp))[0];
                        Session["ClienteCorp.ClienteID"] = dr.ClienteID;
                        this.txtClienteID.Text           = dr.ClienteID.ToString();
                        this.txtTipoDoc.Text             = dr.IsTipoDocNull()? "":dr.TipoDoc.ToString();
                        this.txtCodigo.Text   = dr.IsCodigoNull() ? "" : dr.Codigo;
                        this.txtNombre.Text   = dr.IsNombreNull()? "": dr.Nombre;
                        this.txtApellido.Text = dr.IsApellidoNull()? "": dr.Apellido;


                        if (tipoCliConsul == "1")
                        {
                            /*SFE: Implementacion Codigos Postales. Buscar el domicilio del cliente en la tabla GuiaFacturaCorporativo.*/
                            DsClientesGuia dsC = new DsClientesGuia();
                            dsC = clientes.GetClientesCorpDomicilio(dr.ClienteID, Utiles.Validaciones.obtieneEntero(agenciaID), (int)NegociosSisPackInterface.SisPack.TipoAgenteGuia.Remitente);
                            if (dsC.Datos.Count > 0)
                            {
                                DsClientesGuia.DatosRow drC = (DsClientesGuia.DatosRow)dsC.Tables[0].Rows[0];
                                dr.Calle       = drC.IsCalleNull() ? "" : drC.Calle;
                                dr.CalleNro    = drC.IsCalleNroNull() ? "" : drC.CalleNro;
                                dr.Telefono    = drC.IsTelefonoNull() ? "" : drC.Telefono;
                                dr.TelCodArea  = drC.IsTelCodAreaNull() ? "" : drC.TelCodArea;
                                dr.LocalidadID = drC.LocalidadID;
                                dr.ProvinciaID = drC.ProvinciaID;
                                dr.Depto       = drC.IsDeptoNull() ? "" : drC.Depto;
                                dr.Fax         = drC.IsFaxNull() ? "" : drC.Fax;
                                //VSA: Modificación desarrollo Código postales
                                dr.CodPostal                 = drC.IsCodPostalNull() ? "" : drC.CodPostal;
                                dr.CodigoPostalID            = drC.IsCodigoPostalIDNull() ? 0 : drC.CodigoPostalID;
                                dr.Localidad                 = drC.IsLocalidadNull() ? "" : drC.Localidad;
                                dr.DomicilioID               = drC.IsDomicilioIDNull() ? 0 : drC.DomicilioID;
                                dr.Provincia                 = drC.IsProvinciaNull() ? "" : drC.Provincia;
                                Session["DsClientesGuiaRem"] = drC;
                            }
                            /*SFE: Implementacion Codigos Postales. Buscar el domicilio del cliente en la tabla GuiaFacturaCorporativo.*/
                        }
                        this.txtCalle.Text           = dr.IsCalleNull()? "":dr.Calle;
                        this.txtCalleNro.Text        = dr.IsCalleNroNull()? "":dr.CalleNro;
                        this.txtTelefono.Text        = dr.IsTelefonoNull()? "":dr.Telefono;
                        this.txtTelefonoCodArea.Text = dr.IsTelCodAreaNull() ? "" : dr.TelCodArea;
                        this.txtFax.Text             = dr.IsFaxNull()? "":dr.Fax;
                        this.txtLocalidadID.Text     = dr.IsLocalidadIDNull()?"":dr.LocalidadID.ToString();
                        this.txtDomicilioID.Text     = dr.IsDomicilioIDNull() ? "" : dr.DomicilioID.ToString();
                        this.txtProvinciaID.Text     = dr.IsProvinciaIDNull()?"":dr.ProvinciaID.ToString();
                        this.txtDpto.Text            = dr.IsDeptoNull() ? "" : dr.Depto;
                        //VSA: Modificación desarrollo Código postales
                        this.txtCodPostal.Text      = dr.IsCodPostalNull() ? "" : dr.CodPostal;
                        this.txtCodigoPostalID.Text = dr.IsCodigoPostalIDNull() ? "" : dr.CodigoPostalID.ToString();
                        this.txtLocalidad.Text      = dr.IsLocalidadNull() ? "" : dr.Localidad;
                        this.txtProvincia.Text      = dr.IsProvinciaNull() ? "" : dr.Provincia;
                        if (this.tipoCliConsul == "1")
                        {
                            string locDescrip = dr.IsLocalidadNull()?"":dr.Localidad;
                            this.txtLocalidades.Text = this.txtLocalidadID.Text + "," + locDescrip + ";";
                        }
                        else
                        {
                            this.txtLocalidades.Text = string.Empty;
                            // SFE: Desarrollo de codigos postales, se comenta el llenado de este txt
                            //this.txtLocalidades.Text = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(this.txtProvinciaID.Text));
                        }


                        this.txtCondicionIVA.Text  = dr.IsCondicionIvaIDNull()? "":dr.CondicionIvaID.ToString();
                        this.txtCondicionPago.Text = dr.IsCondicionPagoDescripNull()?"":dr.CondicionPagoDescrip;
                        this.txtCuit.Text          = dr.IsNroCUITNull()? "": dr.NroCUIT;
                        this.txtTipoCliente.Text   = dr.TipoCliente.ToString();
                        this.txtErrorMsg.Text      = "";
                        this.txtOpen.Text          = "";


                        //Aqui se ejecuta el SP que busca por UVenta para un cliente, desde un origen.
                        //Sólo se ejecuta cuando se selecciona un cliente, y cuando se filtra por agencia.
                        this.txtProducto.Text   = "";
                        this.txtTEntrega.Text   = "";
                        this.txtServicio.Text   = "";
                        this.txtModEntrega.Text = "";


                        if (this.tipoCliConsul == "1")
                        {
                            IAdministrarGuias oAdmGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                            oAdmGuia.ClienteCorp.ClienteID = dr.ClienteID;
                            oAdmGuia.AgenciaOrigenID       = agencia.AgenciaID;
                            //ICotizacionCliente oCotiz = CotizacionClienteFactory.GetCotizacionCliente();
                            //oCotiz.ClienteID = dr.ClienteID;//Convert.ToInt32(dr["ClienteID"]);
                            //oCotiz.ClienteID = Convert.ToInt32(dr["ClienteID"]);
                            //DsUnidadVentaTEntregaProductoServicio dsProd = oCotiz.GetUVentaServTEntregaModOrigenCotizadasByClienteIDDataSet();
                            DsUnidadVentaTEntregaProductoServicio dsProd = oAdmGuia.GetUVentaServTEntregaModOrigenCotizadasByClienteAgenciaDataSet();

                            if (dsProd == null)
                            {
                                return;
                            }

                            DsUnidadVentaTEntregaProductoServicio.DatosRow[] drDatos = (DsUnidadVentaTEntregaProductoServicio.DatosRow[])dsProd.Datos.Select("((TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.AgrupacionLocalidad + " AND OrigenID=" + agrupacionLocalidadOrigenID +
                                                                                                                                                             ")  OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad + " AND OrigenID=" + localidadID +
                                                                                                                                                             ") OR ( TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                                                                                                                                                             " )OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID + " )OR (TipoOrigenDestinoID = 0 AND OrigenID = 0))");

                            //SortedList listaProd = new SortedList();


                            if (drDatos.Length > 0)
                            {
                                string datosProd       = "";
                                string datosTEntrega   = "";
                                string datosServ       = "";
                                string datosModEntrega = "";


                                /*	foreach(DsUnidadVentaTEntregaProductoServicio.DatosRow dr in ds.Datos.Rows)
                                 *              datos += dr.ProductoID + "," + dr.ProductoDescrip + "," + dr.TiempoEntregaID + "," + dr.TiempoEntregaDescrip + "," + (dr.IsServicioIDNull() ? 0 : Convert.ToInt32(dr.ServicioID)) + "," + (dr.IsServicioDescripNull() ? "Sin Servicio" : dr.ServicioDescrip) + "," + dr.ModalidadEntregaID + "," + dr.ModalidadEntregaDescrip + ";" ;
                                 */
                                foreach (DsUnidadVentaTEntregaProductoServicio.DatosRow drProd in dsProd.Datos.Rows)
                                {
                                    //if(!listaProd.Contains(dr.ProductoID))
                                    //listaProd.Add(dr.ProductoID,dr.ProductoDescrip);

                                    string nuevoProd = drProd.ProductoID + "," + drProd.ProductoDescrip + ";";
                                    if (datosProd.IndexOf(nuevoProd) < 0)
                                    {
                                        datosProd += nuevoProd;
                                    }

                                    string nuevoTEntrega = drProd.ProductoID + "," + drProd.TiempoEntregaID + "," + drProd.TiempoEntregaDescrip + ";";
                                    if (datosTEntrega.IndexOf(nuevoTEntrega) < 0)
                                    {
                                        datosTEntrega += nuevoTEntrega;
                                    }

                                    string nuevoServ = drProd.UnidadVentaID + "," + drProd.ProductoID + "," + drProd.TiempoEntregaID + "," + (drProd.IsServicioIDNull() ? 0 : Convert.ToInt32(drProd.ServicioID)) + "," + (drProd.IsServicioDescripNull() ? "Sin Servicio" : drProd.ServicioDescrip) + ";";
                                    if (datosServ.IndexOf(nuevoServ) < 0)
                                    {
                                        datosServ += nuevoServ;
                                    }

                                    string nuevaMEntrega = drProd.UnidadVentaID + "," + drProd.ModalidadEntregaID + "," + drProd.ModalidadEntregaDescrip + ";";
                                    if (datosModEntrega.IndexOf(nuevaMEntrega) < 0)
                                    {
                                        datosModEntrega += nuevaMEntrega;
                                    }
                                }

                                this.txtProducto.Text   = datosProd;
                                this.txtTEntrega.Text   = datosTEntrega;
                                this.txtServicio.Text   = datosServ;
                                this.txtModEntrega.Text = datosModEntrega;
                            }
                        }
                    }
                    else
                    {
                        this.txtCodigo.Text        = this.codigo;
                        this.txtNombre.Text        = this.nombre;
                        this.txtApellido.Text      = this.apellido;
                        this.txtAgenciaID.Text     = this.agenciaID;
                        this.txtTipoCliConsul.Text = this.tipoCliConsul;
                        this.txtCuit.Text          = this.cuit;
                        this.txtOpen.Text          = "S";
                    }
                }
                else
                {
                    this.txtClienteID.Text = "";
                    this.txtErrorMsg.Text  = "No se encontraron datos.";
                    this.txtOpen.Text      = "";
                }
            }
            catch (Exception ex)
            {
                this.txtErrorMsg.Text = "Error al consultar datos de clientes: " + ex.Message;
            }
        }
Exemplo n.º 17
0
        private bool ExportarPDF()
        {
            DataSet                    GenDS = new DataSet();
            ReportDocument             oRD   = new ReportDocument();
            ExportOptions              oExO;
            DiskFileDestinationOptions oExDo = new DiskFileDestinationOptions();

            //DsRendicionesAgencias ds = (DsRendicionesAgencias)Session["dsRendicionAgencia"];
            //DsRendicionesAgencias.DatosGuiasDataTable dv= new DsRendicionesAgencias.DatosGuiasDataTable();
            IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();

            admGuiaO.GuiaID           = ((IGuia)oGuiaRen).GuiaID;
            admGuiaO.AgenciaOrigenID  = this.AgenciaConectadaID;
            admGuiaO.AgenciaDestinoID = Convert.ToInt32(this.txtAgenciaDestino.Text);
            admGuiaO.NroGuia          = ((IGuia)oGuiaRen).NroGuia;
            admGuiaO.Observaciones    = this.txtObservaciones.Text;
            admGuiaO.UnidadNegocioID  = this.UnidadNegocioID;
            admGuiaO.NroSucursalGuia  = ((IGuia)oGuiaRen).NroSucursalGuia;
            //admGuiaO.fechaEmision = (DateTime.Now).ToString("dd/MM/yyyy");
            //admGuiaO.horaEmision = (DateTime.Now).ToString("HH:mm");
            admGuiaO.TipoGuia = this.txtTipoGuia.Text;

            admGuiaO.ClienteEventRemitente.Nombre      = this.txtNombre.Text;
            admGuiaO.ClienteEventRemitente.Apellido    = this.txtApellido.Text;
            admGuiaO.ClienteEventDestinatario.Nombre   = this.txtNombreDesti.Text;
            admGuiaO.ClienteEventDestinatario.Apellido = this.txtApellidoDesti.Text;


            DsGuiaFacturaImpresion dataSrc = admGuiaO.GetDataSetImpresionAgenciaAgencia();

            //Session["AdmGuia"] = admGuiaO; VER SI ESTO HACE FALTA

            try
            {
                //ds = (DsRendicionesAgencias) Session["dsRendicionAgencia"];

                string sNombrePDF = Server.MapPath(".") + "\\ReportesPDF\\Guia_" + admGuiaO.GuiaID + "_" + this.AgenciaConectadaID + ".pdf";

                //Load report
                oRD.Load(Server.MapPath("." + "/Reportes/GuiaImpresa.rpt"));

                //Set Report Datasource
                //BindGrilla();


                oRD.SetDataSource(dataSrc);


                //Export to PDF
                oExDo.DiskFileName = sNombrePDF;
                oExO = oRD.ExportOptions;
                //PrintOptions oExPrint = oRD.PrintOptions;
                //oExPrint.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4Small;
                //oExPrint.PrinterName = "\\" + "\\CQUIROGA\\HP DeskJet 810C";
                //oExPrint.PrinterName = "HP DeskJet 810C";

                oExO.ExportDestinationType = ExportDestinationType.DiskFile;


                oExO.ExportFormatType   = ExportFormatType.PortableDocFormat;
                oExO.DestinationOptions = oExDo;

                //oRD.PrintToPrinter(1,false,1,1);
                oRD.Export();

                oRD.Close();
                oRD.Dispose();

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 18
0
        public String RendirHojaRutas()
        {
            try
            {
                Int32 auxAgenciaID;
                if (Session["AgenciaConectadaID"] != null)
                {
                    if (Int32.TryParse(Session["AgenciaConectadaID"].ToString(), out auxAgenciaID) == false)
                    {
                        auxAgenciaID = 0;
                    }
                }
                else
                {
                    auxAgenciaID = 0;
                }

                Int32 auxUnidadNegocioID;
                if (Session["UnidadNegocioID"] != null)
                {
                    if (Int32.TryParse(Session["UnidadNegocioID"].ToString(), out auxUnidadNegocioID) == false)
                    {
                        auxUnidadNegocioID = 0;
                    }
                }
                else
                {
                    auxUnidadNegocioID = 0;
                }

                Int32 auxUsuarioID;
                if (Session["IntUsuarioConectadoID"] != null)
                {
                    if (Int32.TryParse(Session["IntUsuarioConectadoID"].ToString(), out auxUsuarioID) == false)
                    {
                        auxUsuarioID = 0;
                    }
                }
                else
                {
                    auxUsuarioID = 0;
                }

                Int32 guiaID = IoC.GetObjectDominio <IRendicionHojaRutaDominio>().GuardarRendicionHojaRuta(auxAgenciaID, auxUnidadNegocioID, auxUsuarioID);

                IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                admGuia.GuiaID = guiaID;
                DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                Session["DatosGuia"] = dataSrc;

                IAgencia agOrigen = AgenciaFactory.GetAgencia();
                agOrigen.AgenciaID = auxAgenciaID;
                agOrigen.ConsultarBasico();

                return(agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, System.Configuration.ConfigurationManager.AppSettings["Implementacion"].ToString()));
            }
            catch (Exception ex)
            {
                if (ex is Utiles.Excepciones.DatosInvalidosException)
                {
                    HttpContext.Current.Response.StatusCode = 400;
                    HttpContext.Current.Response.Write(ex.Message);
                    Server.ClearError();

                    return("");
                }
                else
                {
                    throw;
                }
            }
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();

            try
            {
                if (txtNroGuia.Text == "")
                {
                    throw new Exception("Falta ingresar Nro de Guia.");
                }
                //if (txtCantidad.Text == "")
                //{
                //    throw new Exception("Falta ingresar Cantidad de Impresiones");
                //}
                if (txtNroSucursal.Text == "")
                {
                    throw new Exception("Falta ingresar Nro de Sucursal");
                }
                if (ddlTipoGuia.SelectedValue == "")
                {
                    throw new Exception("Falta seleccionar tipo de guia");
                }

                //     cantidad = Convert.ToInt32(txtCantidad.Text);

                admGuiaO.NroGuia         = Convert.ToInt32(txtNroGuia.Text);
                admGuiaO.NroSucursalGuia = txtNroSucursal.Text;
                admGuiaO.TipoGuia        = ddlTipoGuia.SelectedValue;


                guia.NroGuia         = admGuiaO.NroGuia;
                guia.NroSucursalGuia = admGuiaO.NroSucursalGuia;
                guia.TipoGuia        = admGuiaO.TipoGuia;
                guia.ReImprimirCB();


                if (guia.GuiaID == 0 || guia.GuiaID == null)
                {
                    throw new Exception("Nro de Guia Inexistente");
                }
                else
                {
                    admGuiaO.GuiaID = guia.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();


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

                    string cb = (admGuiaO.TipoGuia == "R" ? "9" : (admGuiaO.TipoGuia == "A" ? "3" : "4")) + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString();
                    try
                    {
                        for (int i = 1; i <= guia.CantidadBultosTotal; i++)
                        {
                            IC.Imprimir(admGuiaO.TipoGuia + " " + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString().ToString(), i + "/" + guia.CantidadBultosTotal.ToString("000"), cb + i.ToString("000"), CINT("1", 1), Session["ImpresoraUsuario"].ToString(), origen, destino);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
                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(ex.Message));
            }
            Limpiar();
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            string uVta                    = this.Request.QueryString["UVtaID"];
            string modEnt                  = this.Request.QueryString["ModEntrega"];
            string agConectada             = this.Request.QueryString["AgID"];
            string provID                  = this.Request.QueryString["ProvID"];
            string locID                   = this.Request.QueryString["LocID"];
            string localidadesAutorizacion = this.Request.QueryString["LocalidadesAutorizacion"];

            Hashtable hLoc;

            if (CacheDataManager.GetCacheValue("hLoc") != null)
            {
                hLoc = (Hashtable)CacheDataManager.GetCacheValue("hLoc");
            }
            else
            {
                hLoc = new Hashtable();
            }

            //System.Console.Write("1, Mendoza;2, San Juan;");
            //Response.Write("1, Mendoza;2, San Juan;");
            //Response.ContentType = "text/plain";
            //Response.Write("1, Mendoza;2, San Juan;|");

            // probando....

            /* SFE
             * if (uVta != null && modEnt!=null)
             * {
             *
             *      string datos = "";//
             *
             *      if(uVta != null) //Quiere decir que son las solicitudes del control de Unidad de venta y destino
             *      {
             */
            IAdministrarGuias oAdminGuias = AdministrarGuiasFactory.GetAdministrarGuias();
            DsDestinosGuias   ds          = oAdminGuias.GetUVentaDestinosGuiasDataSet();
            string            datos       = "";

            if (provID != null && locID == null)            //Se quieren cargar las localidades
            {
                if (hLoc.Contains(agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#")))
                {
                    datos = hLoc[agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#")].ToString();
                }
                else
                {
                    DsDestinosGuias.DatosRow[] dRows;
                    if (localidadesAutorizacion != null && localidadesAutorizacion.Length > 0)
                    {
                        //original
                        //dRows = (DsDestinosGuias.DatosRow[]) ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = "+modEnt+" AND ProvinciaID = " + provID + " AND LocalidadID IN (" + localidadesAutorizacion + ")","LocalidadDescrip");
                        dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt + " AND ProvinciaID = " + provID + " AND LocalidadID IN (" + localidadesAutorizacion + ") AND (NoRestringirAgenciasVisualizacion = 1 OR (AgenciaVisualiza = -1 OR AgenciaVisualiza = " + agConectada + "))", "LocalidadDescrip");
                    }
                    else
                    {
                        dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt + " AND ProvinciaID = " + provID + " AND (NoRestringirAgenciasVisualizacion = 1 OR (AgenciaVisualiza = -1 OR AgenciaVisualiza = " + agConectada + "))", "LocalidadDescrip");
                    }
                    datos = "0,Elija localidad;";
                    if (dRows != null)
                    {
                        foreach (DsDestinosGuias.DatosRow dr in dRows)
                        {
                            //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                            string nuevoDato = dr.LocalidadID + "," + dr.LocalidadDescrip + ";";
                            if (datos.IndexOf(nuevoDato) < 0)
                            {
                                datos += nuevoDato;
                            }
                        }
                        hLoc.Add(agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#"), datos);
                        CacheDataManager.SetCacheValue("hLoc", hLoc);
                    }
                }
            }

            /*DsDestinosGuias.DatosRow[] dRows = (DsDestinosGuias.DatosRow[]) ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = "+modEnt+" AND LocalidadID = " + locID,"Nombre");
             *                      //Agregamos aqui un '"";'
             *                      if (dRows!= null)
             *                      {
             *                              //					datos = "0,Elija la localidad ;";
             *                              foreach(DsDestinosGuias.DatosRow dr in dRows)
             *                              {
             *                                      //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
             *                                      string nuevoDato = dr.AgenciaID + "," + dr.Nombre + ";";
             *                                      if (datos.IndexOf(nuevoDato) < 0)
             *                                              datos += nuevoDato;
             *                              }
             *                      }*/
            //}
            datos += "#";
            Response.Write(datos);
            //}

            /*
             * else //Viene del control de domicilio
             * {
             *      string datos = "";
             *      datos = "0,Elija localidad;";
             *      if(provID != null)
             *      {
             *              datos = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(provID));
             *      }
             *      datos += "#";
             *      Response.Write(datos);
             * }
             */
        }
        protected void btnEmitir_Click(object sender, EventArgs e)
        {
            try
            {
                int cantidad = 0;
                if (Session["UnidadesAsig"] == null)
                {
                    ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje("Debe agregar alguna unidad de logistica.");
                    return;
                }

                IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                this.ObtenerNroGuia();
                ((IGuia)guiaUnidad).NumeroCAI       = this.numeroCAI;
                ((IGuia)guiaUnidad).TipoGuia        = this.tipoGuiaUnidadLogistica;
                ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica;
                ((IGuia)guiaUnidad).NroGuia         = this.nroGuiaUnidadLogistica;
                /**/
                ((IGuia)guiaUnidad).AgenciaOrigenID             = this.AgenciaConectadaID;
                ((IGuia)guiaUnidad).UnidadNegocioID             = this.UnidadNegocioID;
                ((IGuiaFactura)guiaUnidad).EmpresaFacturacionID = 1;
                ((IGuia)guiaUnidad).ClasificacionGuiaID         = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica;
                if (GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value > 0)
                {
                    ((IGuia)guiaUnidad).AgenciaDestinoID = GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value;
                }
                else
                {
                    ((IGuia)guiaUnidad).PuntoRecepcionID = (-1) * GuiaOrigenDestinoUnidadLogistica1.AgenciaDestinoID.Value;
                }

                foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsig"])
                {
                    cantidad = cantidad + guiaUL.Cantidad;
                    guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL);
                }

                ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = cantidad;

                guiaUnidad.TipoOperacionUnidadLogistica = NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Ingreso;
                /**/
                if (guiaUnidad.EmitirGuiaUnidadLogistica(null, this.usuario, true))  // debe validar stock cuando emite la guia asociada
                {
                    //limpiarCarga();
                    //dtgUnidades.DataSource = null;
                    //dtgUnidades.DataBind();
                    Session["UnidadesAsig"] = null;
                    IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    admGuia.GuiaID = ((Guia)guiaUnidad).GuiaID;
                    DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                    Session["DatosGuia"] = dataSrc;

                    IAgencia agOrigen = AgenciaFactory.GetAgencia();
                    agOrigen.AgenciaID = AgenciaConectadaID;
                    agOrigen.ConsultarBasico();
                    if (agOrigen.TipoImpresionGuiaId == 0)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido.");
                        return;
                    }

                    // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno.
                    agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;

                    txtPaginaImpresion.Value = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                    txtGuiaUnidadID.Value = ((Guia)guiaUnidad).GuiaID.ToString();


                    //string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                    //string script = "<script language='javascript'>\n";
                    //script += "			window.showModalDialog('" + pagina +
                    //          "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    //script += "		</script>\n";

                    //Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);

                    return;
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
Exemplo n.º 22
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            string uVta                    = this.Request.QueryString["UVtaID"];
            string modEnt                  = this.Request.QueryString["ModEntrega"];
            string agConectada             = this.Request.QueryString["AgID"];
            string provID                  = this.Request.QueryString["ProvID"];
            string locID                   = this.Request.QueryString["LocID"];
            string localidadesAutorizacion = this.Request.QueryString["LocalidadesAutorizacion"];

            Hashtable hAgencia;
            Hashtable hLoc;
            Hashtable hProv;

            if (CacheDataManager.GetCacheValue("hProv") != null)
            {
                hProv = (Hashtable)CacheDataManager.GetCacheValue("hProv");
            }
            else
            {
                hProv = new Hashtable();
            }

            if (CacheDataManager.GetCacheValue("hLoc") != null)
            {
                hLoc = (Hashtable)CacheDataManager.GetCacheValue("hLoc");
            }
            else
            {
                hLoc = new Hashtable();
            }

            if (CacheDataManager.GetCacheValue("hAgencia") != null)
            {
                hAgencia = (Hashtable)CacheDataManager.GetCacheValue("hAgencia");
            }
            else
            {
                hAgencia = new Hashtable();
            }

            //System.Console.Write("1, Mendoza;2, San Juan;");
            //Response.Write("1, Mendoza;2, San Juan;");
            //Response.ContentType = "text/plain";
            //Response.Write("1, Mendoza;2, San Juan;|");

            // probando....
            if (uVta != null && modEnt != null)
            {
                string datos = "";               //

                if (uVta != null)                //Quiere decir que son las solicitudes del control de Unidad de venta y destino
                {
                    IAdministrarGuias oAdminGuias = AdministrarGuiasFactory.GetAdministrarGuias();
                    DsDestinosGuias   ds          = oAdminGuias.GetUVentaDestinosGuiasDataSet();
                    //string datos = "";
                    if (provID == null && locID == null)                    //Se quieren cargar las provincias
                    {
                        if (hProv.Contains(agConectada + "#" + uVta + "#" + modEnt))
                        {
                            datos = hProv[agConectada + "#" + uVta + "#" + modEnt].ToString();
                        }
                        else
                        {
                            DsDestinosGuias.DatosRow[] dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt, "ProvinciaDescrip");
                            datos = "0,Elija provincia;";

                            if (dRows != null)
                            {
                                foreach (DsDestinosGuias.DatosRow dr in dRows)
                                {
                                    //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                                    string nuevoDato = dr.ProvinciaID + "," + dr.ProvinciaDescrip + ";";
                                    if (datos.IndexOf(nuevoDato) < 0)
                                    {
                                        datos += nuevoDato;
                                    }
                                }
                            }
                            hProv.Add(agConectada + "#" + uVta + "#" + modEnt, datos);
                            CacheDataManager.SetCacheValue("hProv", hProv);
                        }
                    }
                    else if (provID != null && locID == null)                    //Se quieren cargar las localidades
                    {
                        if (hLoc.Contains(agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#")))
                        {
                            datos = hLoc[agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#")].ToString();
                        }
                        else
                        {
                            DsDestinosGuias.DatosRow[] dRows;
                            if (localidadesAutorizacion != null && localidadesAutorizacion.Length > 0)
                            {
                                //original
                                //dRows = (DsDestinosGuias.DatosRow[]) ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = "+modEnt+" AND ProvinciaID = " + provID + " AND LocalidadID IN (" + localidadesAutorizacion + ")","LocalidadDescrip");
                                dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt + " AND ProvinciaID = " + provID + " AND LocalidadID IN (" + localidadesAutorizacion + ") AND (NoRestringirAgenciasVisualizacion = 1 OR (AgenciaVisualiza = -1 OR AgenciaVisualiza = " + agConectada + "))", "LocalidadDescrip");
                            }
                            else
                            {
                                dRows = (DsDestinosGuias.DatosRow[])ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt + " AND ProvinciaID = " + provID + " AND (NoRestringirAgenciasVisualizacion = 1 OR (AgenciaVisualiza = -1 OR AgenciaVisualiza = " + agConectada + "))", "LocalidadDescrip");
                            }
                            datos = "0,Elija localidad;";
                            if (dRows != null)
                            {
                                foreach (DsDestinosGuias.DatosRow dr in dRows)
                                {
                                    //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                                    string nuevoDato = dr.LocalidadID + "," + dr.LocalidadDescrip + ";";
                                    if (datos.IndexOf(nuevoDato) < 0)
                                    {
                                        datos += nuevoDato;
                                    }
                                }
                                hLoc.Add(agConectada + "#" + uVta + "#" + modEnt + "#" + provID + "#" + localidadesAutorizacion.Replace(",", "#"), datos);
                                CacheDataManager.SetCacheValue("hLoc", hLoc);
                            }
                        }
                    }
                    else if (locID != null)                    //Se quieren cargar las agencias
                    {
                        //					datos = "0,Elija la localidad ;";
                        //foreach(DsAgencias.DatosRow dr in dRows)
                        if (hAgencia.Contains(agConectada + "#" + uVta + "#" + modEnt + "#" + locID))
                        {
                            datos = hAgencia[agConectada + "#" + uVta + "#" + modEnt + "#" + locID].ToString();
                        }
                        else
                        {
                            //DsAgencias dsA = oAdminGuias.GetAgenciasPuntoRecepcionByLocalidad(Utiles.Validaciones.obtieneEntero(locID));
                            DsDestinosGuias dsA = oAdminGuias.GetAgenciasPuntoRecepcionByLocalidad(Utiles.Validaciones.obtieneEntero(locID), Utiles.Validaciones.obtieneEntero(agConectada));

                            //FALTA FILTRAR QUE SOLO TRAIGA LAS QUE CORRESPONDEN A LA UNIDAD DE VENTA
                            //DsAgencias.DatosRow[] dRows = (DsAgencias.DatosRow[]) dsA.Datos.Select("AgenciaID <> " + agConectada,"Nombre");
                            DsDestinosGuias.DatosRow[] dRows = (DsDestinosGuias.DatosRow[])dsA.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = " + modEnt + " AND LocalidadID = " + locID, "Nombre");
                            //Agregamos aqui un '"";'
                            if (dRows != null)
                            {
                                foreach (DsDestinosGuias.DatosRow dr in dRows)
                                {
                                    //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                                    string nuevoDato = dr.AgenciaID + "," + dr.Nombre + ";";
                                    if (datos.IndexOf(nuevoDato) < 0)
                                    {
                                        datos += nuevoDato;
                                    }
                                }
                                hAgencia.Add(agConectada + "#" + uVta + "#" + modEnt + "#" + locID, datos);
                                CacheDataManager.SetCacheValue("hAgencia", hAgencia);
                            }
                        }

                        /*DsDestinosGuias.DatosRow[] dRows = (DsDestinosGuias.DatosRow[]) ds.Datos.Select("AgenciaID <> " + agConectada + " AND UnidadVentaID = " + uVta + "AND ModalidadEntregaID = "+modEnt+" AND LocalidadID = " + locID,"Nombre");
                         * //Agregamos aqui un '"";'
                         * if (dRows!= null)
                         * {
                         *      //					datos = "0,Elija la localidad ;";
                         *      foreach(DsDestinosGuias.DatosRow dr in dRows)
                         *      {
                         *              //string nuevoDato = dr.UnidadVentaID + "," + dr.ModalidadEntregaID +","+ dr.ProvinciaID + "," + dr.ProvinciaDescrip + "," +  dr.LocalidadID + "," + dr.LocalidadDescrip +","+ dr.AgenciaID + "," + dr.RazonSocial + "," + dr.Nombre + ";";
                         *              string nuevoDato = dr.AgenciaID + "," + dr.Nombre + ";";
                         *              if (datos.IndexOf(nuevoDato) < 0)
                         *                      datos += nuevoDato;
                         *      }
                         * }*/
                    }
                }
                datos += "#";
                Response.Write(datos);
            }
            else             //Viene del control de domicilio
            {
                string datos = "";
                datos = "0,Elija localidad;";
                if (provID != null)
                {
                    datos = LlenarCombos.LlenarStringLocalidades(Convert.ToInt32(provID));
                }
                datos += "#";
                Response.Write(datos);
            }
        }
        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 ObtenerNroGuia()
        {
            try
            {
                IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();

                IAgencia agOrigen = AgenciaFactory.GetAgencia();
                agOrigen.AgenciaID = AgenciaConectadaID;
                agOrigen.ConsultarBasico();

                admGuiaO.AgenciaOrigenID = this.AgenciaConectadaID;
                // Se trata de un cliente eventual
                admGuiaO.AgentePagoCondicionIVA = NegociosSisPackInterface.SisPack.CondicionIva.Ninguno;
                admGuiaO.CondicionPagoID        = NegociosSisPackInterface.SisPack.CondicionPago.Interno; /* Para que genere tipo guía X */

                admGuiaO.GetNroGuia();

                // ... si no es autoimpresor, valida el número de guía
                if (agOrigen.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    int maxNroGuiaStock = admGuiaO.GetMaxNroGuiaStock(admGuiaO.NroGuia, this.AgenciaConectadaID);
                    this.ValidarGuiaNro(admGuiaO.TipoGuia, Utiles.Formatos.CerosIzq(admGuiaO.NroGuia, 8), maxNroGuiaStock);
                }
                else
                {
                    // La agencia es autoimpresora. Reviso si el CAI esta vencido o no
                    //if (DateTime.Today > admGuiaO.FechaVencimientoCAI)
                    //{
                    //    // El CAI esta vencido. Reviso si se puede emitir con el CAI vencido
                    //    IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                    //    param.UnidadNegocioID = this.UnidadNegocioID;
                    //    param.Parametro = NegociosSisPackInterface.SisPack.Parametro.PermiteEmitirConCAIVencido;
                    //    param.Consultar();
                    //    bool permite = param.ValorString == "1" ? true : false;
                    //    if (permite == false)
                    //        // No se puede emitir con el CAI vencido.
                    //        throw new Exception("No se puede emitir la guía debido a que la fecha de vencimiento de CAI es superior a la fecha actual.");
                    //    else
                    //    {
                    //        // Si se puede emitir con el CAI vencido. Muestro el mensaje de CAI vencido e imprimo la guía
                    //        string scriptString = "<script language=JavaScript>\n";
                    //        scriptString += "alert('IMPORTANTE: La fecha de CAI configurada para su agencia está vencida. Por favor, contactese con la Administración.');";
                    //        scriptString += "window.document.getElementById('txtNroGuia').value = " + admGuiaO.NroGuia + ";\n";
                    //        scriptString += "window.document.frmDatos.submit();\n";
                    //        scriptString += "</script>";
                    //        Page.RegisterStartupScript("AvisoAutoImp", scriptString);
                    //    }
                    //}
                    //else
                    //{
                    // El CAI no esta vencido. Cargo los datos de la guía
                    this.numeroCAI = admGuiaO.NumeroCAI;
                    this.nroGuiaUnidadLogistica         = admGuiaO.NroGuia;
                    this.tipoGuiaUnidadLogistica        = admGuiaO.TipoGuia;
                    this.nroSucursalGuiaUnidadLogistica = admGuiaO.NroSucursalGuia;
                    //}
                }
                admGuiaO = null;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
        private void ObtenerUVentaOrigenByCliente(int clienteID, ref string sProducto, ref string sTEntrega, ref string sServicio, ref string sModEntrega)
        {
            string agenciaID = this.txtAgenciaID.Text;

            //Si la localidad es igual a cero, significa que aún no se ha consultado la agencia
            if (agenciaFiltro.Domicilio.Localidad.LocalidadID == 0)
            {
                agenciaFiltro           = AgenciaFactory.GetAgencia();
                agenciaFiltro.AgenciaID = Convert.ToInt32(agenciaID);
                agenciaFiltro.ConsultarBasico();
            }
            int localidadID    = agenciaFiltro.Domicilio.Localidad.LocalidadID;
            int codigoPostalID = agenciaFiltro.Domicilio.OCodigoPostal.CodigoPostalID;

            /*SFE: Desarrollo de Codigos Postales. Veo si la localidad origen de la Agencia esta incluida en una agrupacion de codigos postales. Me traigo el ID de la agrupacion para ver si esta como origenflete en un convenio de cliente*/
            ICodigoPostalAgrupacion codigoPostalAgrupacion = CodigoPostalAgrupacionFactory.GetCodigoPostalAgrupacion();
            int agrupacionLocalidadOrigenID = codigoPostalAgrupacion.GetAgrupacionDeLocalidad(localidadID, codigoPostalID);

            int provinciaID    = agenciaFiltro.Domicilio.Localidad.Provincia.ProvinciaID;
            int departamentoID = agenciaFiltro.Domicilio.Localidad.Departamento.DepartamentoID;
            int paisID         = agenciaFiltro.Domicilio.Localidad.Provincia.Pais.PaisID;

            /*ICotizacionCliente oCotiz = CotizacionClienteFactory.GetCotizacionCliente();
             * oCotiz.ClienteID = clienteID;
             * DsUnidadVentaTEntregaProductoServicio dsProd = oCotiz.GetUVentaServTEntregaModOrigenCotizadasByClienteIDDataSet();
             */
            IAdministrarGuias oAdmGuia = AdministrarGuiasFactory.GetAdministrarGuias();

            oAdmGuia.ClienteCorp.ClienteID = clienteID;
            oAdmGuia.AgenciaOrigenID       = agenciaFiltro.AgenciaID;
            DsUnidadVentaTEntregaProductoServicio dsProd = oAdmGuia.GetUVentaServTEntregaModOrigenCotizadasByClienteAgenciaDataSet();

            if (dsProd == null)
            {
                return;
            }

            DsUnidadVentaTEntregaProductoServicio.DatosRow[] drDatos = (DsUnidadVentaTEntregaProductoServicio.DatosRow[])dsProd.Datos.Select("((TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia + " AND OrigenID=" + agenciaID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.AgrupacionLocalidad + " AND OrigenID=" + agrupacionLocalidadOrigenID +
                                                                                                                                             ")   OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Localidad + " AND OrigenID=" + localidadID +
                                                                                                                                             ") OR ( TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Departamento + " AND OrigenID=" + departamentoID + ") OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Provincia + " AND OrigenID=" + provinciaID +
                                                                                                                                             " )OR (TipoOrigenDestinoID=" + (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Pais + " AND OrigenID=" + paisID + " ) OR (TipoOrigenDestinoID = 0 AND OrigenID=0))");

            if (drDatos.Length > 0)
            {
                string datosProd       = "";
                string datosTEntrega   = "";
                string datosServ       = "";
                string datosModEntrega = "";


                /*	foreach(DsUnidadVentaTEntregaProductoServicio.DatosRow dr in ds.Datos.Rows)
                 *                                      datos += dr.ProductoID + "," + dr.ProductoDescrip + "," + dr.TiempoEntregaID + "," + dr.TiempoEntregaDescrip + "," + (dr.IsServicioIDNull() ? 0 : Convert.ToInt32(dr.ServicioID)) + "," + (dr.IsServicioDescripNull() ? "Sin Servicio" : dr.ServicioDescrip) + "," + dr.ModalidadEntregaID + "," + dr.ModalidadEntregaDescrip + ";" ;
                 */
                foreach (DsUnidadVentaTEntregaProductoServicio.DatosRow drProd in dsProd.Datos.Rows)
                {
                    //if(!listaProd.Contains(dr.ProductoID))
                    //listaProd.Add(dr.ProductoID,dr.ProductoDescrip);

                    string nuevoProd = drProd.ProductoID + "," + drProd.ProductoDescrip + ";";
                    if (datosProd.IndexOf(nuevoProd) < 0)
                    {
                        datosProd += nuevoProd;
                    }

                    string nuevoTEntrega = drProd.ProductoID + "," + drProd.TiempoEntregaID + "," + drProd.TiempoEntregaDescrip + ";";
                    if (datosTEntrega.IndexOf(nuevoTEntrega) < 0)
                    {
                        datosTEntrega += nuevoTEntrega;
                    }

                    string nuevoServ = drProd.UnidadVentaID + "," + drProd.ProductoID + "," + drProd.TiempoEntregaID + "," + (drProd.IsServicioIDNull() ? 0 : Convert.ToInt32(drProd.ServicioID)) + "," + (drProd.IsServicioDescripNull() ? "Sin Servicio" : drProd.ServicioDescrip) + ";";
                    if (datosServ.IndexOf(nuevoServ) < 0)
                    {
                        datosServ += nuevoServ;
                    }

                    string nuevaMEntrega = drProd.UnidadVentaID + "," + drProd.ModalidadEntregaID + "," + drProd.ModalidadEntregaDescrip + ";";
                    if (datosModEntrega.IndexOf(nuevaMEntrega) < 0)
                    {
                        datosModEntrega += nuevaMEntrega;
                    }
                }

                sProducto   = datosProd;
                sTEntrega   = datosTEntrega;
                sServicio   = datosServ;
                sModEntrega = datosModEntrega;
            }
        }