Example #1
0
        protected void btnDevolver_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["UnidadesAsigDev"] == null)
                {
                    ((SisPacK.ErrorWeb)(this.phErrores.Controls[0])).setMensaje("Debe agregar alguna unidad de logistica.");
                    return;
                }

                IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();

                ((IGuia)guiaUnidad).AgenciaOrigenID = this.AgenciaConectadaID;

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

                if (EmitirUnidadLogistica())
                {
                    //if (guiaUnidad.DevolverGuiaUnidadLogistica(this.usuario))
                    //{
                    Session["UnidadesAsigDev"] = null;
                    return;
                    //}
                }
            }
            catch (Exception ex)
            {
                ((SisPacK.ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
Example #2
0
        private void BindGrid(int currentPage)
        {
            try
            {
                IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                AdministrarGrillas.Configurar(dtgDevolucion, "UnidadLogisticaPedidoDevolucionID", CantidadOpciones, true, false);
                dtgDevolucion.CurrentPageIndex = currentPage;

                DateTime fDesde, fHasta;
                fDesde = txtFechaDesde.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(txtFechaDesde.Text) : new DateTime(1901, 01, 01);
                fHasta = txtFechaHasta.Text != "" ? Utiles.Fechas.FormatFechaDDMMYYYY(txtFechaHasta.Text) : new DateTime(2900, 01, 01);
                dtgDevolucion.DataSource = unidadLogistica.GetUnidadesLogisticaPendientesDevolucion(chSinAutorizar.Checked, chRechazados.Checked, chAutorizados.Checked, fDesde, fHasta, Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID));
                dtgDevolucion.DataBind();
            }
            catch (Exception ex)
            {
                ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        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);
            }
        }
Example #4
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);
            }
        }
Example #5
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            // Obtengo las agencias para verificar si la sucursal de la guía a recibir es válida
            // en el caso de guías de agencias no automatizadas
            IAgencia   agencia    = AgenciaFactory.GetAgencia();
            DsAgencias dsAgencias = agencia.GetAgenciasDataSet();

            bool      ok                = true;
            Hashtable hGuias            = new Hashtable(); // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR          = new Hashtable(); // Guías que no están en condiciones de ser recibidas
            Hashtable hGuiasIncompletas = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)

            // Verifico si el sistema está configurado para utilizar recepción libre
            bool recepcionLibre      = false;
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.RecepcionLibre;
            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Consultar();
            if (param.ValorString == "1")
            {
                recepcionLibre = true;
            }

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS

                string txt        = "txt" + i;
                string obs        = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo  = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip";
                string ddl        = "ddl" + i.ToString();

                string nroGuia       = Request.Form[txt].ToString();
                string observacionID = Request.Form[obs].ToString();
                string sObsCodigo    = Request.Form[obsCodigo].ToString();
                string sObsDescrip   = Request.Form[obsDescrip].ToString();

                // Lógica para recibir (y observar) guías
                string tGuia = "";

                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5);

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.Consultar();
                oGuia.EsRecepcion     = 1;
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                oGuia.UsuarioID = usuario.UsuarioID;

                IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                oGuiaFactura.UsuarioID = usuario.UsuarioID;

                // si la guía existe en el sistema, la recibe
                if (oGuia.GuiaID > 0)
                {
                    // Obtengo el Id de la agencia administración
                    IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramAdm.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
                    paramAdm.UnidadNegocioID = this.UnidadNegocioID;
                    paramAdm.Consultar();
                    int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString);
                    paramAdm = null;

                    // Reviso si la guía es recepcionable (si la guía todavia no esta en destino o si esta solicitada para devolución)
                    if ((oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID)) && !oGuia.EsGuiaAnulada(oGuia.GuiaID))
                    {
                        // La guía es recepcionable
                        ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                        /* Diego 09/01/2013 Actualiza el stock de las unidades de logisticas */
                        if (oGuia.TipoGuia == "X")
                        {
                            IGuiaUnidadLogistica gUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                            gUnidad.ActualizarStockGuiaUnidadLogistica(oGuia.GuiaID, this.AgenciaConectadaID, usuario.UsuarioID, 1);
                        }

                        if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID) ||
                            ((this.AgenciaConectadaID == oGuia.AgenciaOrigenID /*|| this.AgenciaConectadaID == agAdm*/) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion))
                        {
                            if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito)
                            {
                                //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuia.EsRecepcionLibre = recepcionLibre;
                                oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                oGuia.Ingresada("Recibida Masivamente Administracion", this.AgenciaConectadaID, usuario);
                                /*German 28/06/2016 */
                                if (oGuia.TipoGuia == "X" && EsConformable(oGuia))
                                {
                                    oGuiaFactura.Entregada("Conformada Masivamente Administracion", this.AgenciaConectadaID, usuario);
                                }
                            }
                            else
                            {
                                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuiaFactura.Ingresada("Recibida Masivamente Administracion", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                            }
                        }
                        //SFE: Modificado para corregir el bug que no ponia en Agencia de Redespacho en la Recepcion Masiva-- Se agrego el Metodo "EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)"
                        else if (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia.AgenciaDestinoID, oGuia.GuiaID) || this.EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID))
                        {
                            //Guia de redespacho
                            ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                            oGuiaFactura.Redespacho("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario);
                        }
                        else
                        {
                            if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito)
                            {
                                //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuia.EsRecepcionLibre = recepcionLibre;
                                oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                oGuia.Ingresada("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario);
                                /*German 28/06/2016 */
                                if (oGuia.TipoGuia == "X" && EsConformable(oGuia))
                                {
                                    oGuiaFactura.Entregada("Conformada Masivamente Administracion", oGuia.AgenciaDestinoID, usuario);
                                }
                            }
                            else
                            {
                                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuiaFactura.Ingresada("Recibida Masivamente Administracion", oGuia.AgenciaDestinoID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                            }
                        }
                        ////else
                        ////{
                        ////    IAgencia ag = AgenciaFactory.GetAgencia();
                        ////    ag.AgenciaID = oGuia.AgenciaOrigenID;
                        ////    ag.ConsultarBasico();

                        ////    // si la agencia que recibe en forma libre es la agencia madre,
                        ////    // tengo que insertar los estados correspondientes
                        ////    if (recepcionLibre && this.AgenciaConectadaID == ag.AgenciaMadre)
                        ////    {
                        ////        // insertar los estados de agencia madre...
                        ////        if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                        ////        {
                        ////            oGuia.EsRecepcion = 1;
                        ////            oGuia.EsRecepcionLibre = recepcionLibre;
                        ////            oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                        ////            oGuia.UsuarioID = Utiles.Validaciones.obtieneEntero(this.UsuarioConectadoID);
                        ////            oGuia.Observaciones = "Recibida Masivamente";
                        ////            oGuia.RecepcionAgenciaMadre(this.AgenciaConectadaID);
                        ////        }
                        ////        else
                        ////        {
                        ////            ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;

                        ////            //Se agregaron las siguientes dos lineas porque cuando llegaba al metodo para observar
                        ////            //no llegaba ni el usuario ni la observacion. FQuiroga 08/04/2016
                        ////            ((IGuia)oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                        ////            ((IGuia)oGuiaFactura).UsuarioID = (usuario.UsuarioID);

                        ////            oGuiaFactura.RecepcionAgenciaMadre("Recibida Masivamente", this.AgenciaConectadaID, Utiles.Validaciones.obtieneEntero(observacionID));
                        ////        }
                        ////    }
                        ////    else
                        ////    {
                        ////        /*SFE: Agregado para trabajar con envios desde la Web*/
                        ////        if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                        ////        {
                        ////            /**/

                        ////            /*Esto estaba 16/11/2010*/
                        ////            // sino, continuar normalmente...
                        ////            if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                        ////            {
                        ////                oGuia.EsRecepcionLibre = recepcionLibre;
                        ////                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                        ////                if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                        ////                    oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                        ////                else
                        ////                    oGuia.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                        ////            }
                        ////            else
                        ////            {
                        ////                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                        ////                if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                        ////                    oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                        ////                else
                        ////                    oGuiaFactura.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario);

                        ////            }
                        ////            /*Esto estaba 16/11/2010*/
                        ////        }


                        ////        /*SFE:Agregado para trabajar con envios desde la Web*/
                        ////        else
                        ////        {
                        ////            // Inserto los estados de "emitida" a la guía que se recibe
                        ////            // ya que se emitió en la web, y cuando se realizó la factura desde SisPack
                        ////            // se insertó el estado "Pendiente de Retiro"

                        ////            IObservacion observacion = ObservacionFactory.GetObservacion();
                        ////            observacion.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                        ////            if (observacion.ObservacionID > 0)
                        ////                observacion.Buscar();

                        ////            if (observacion.ObservacionID > 0 && observacion.TipoObservacionID == (int)NegociosSisPackInterface.SisPack.TipoObservacion.WebYPendienteRetiro)
                        ////            {
                        ////                /* VSA 14-08: Si se ha ingresado una observación del tipo WebYPendienteRetiro --> no se cambia el estado movimiento de la guía.*/
                        ////                //IGuia oGuia = GuiaFactory.GetGuia();
                        ////                //oGuia.GuiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);
                        ////                oGuia.ObservacionID = observacion.ObservacionID;
                        ////                oGuia.UsuarioID = usuario.UsuarioID;
                        ////                oGuia.Observar();
                        ////                oGuia = null;
                        ////                /********************************************************************************************************************************/
                        ////                //bOK = true;
                        ////            }
                        ////            else
                        ////                //bOK =
                        ////                oGuia.IngresoReparto(observacion.ObsDescrip, this.AgenciaConectadaID, usuario);
                        ////        }
                        ////        /*SFE */
                        ////    }
                        ////}
                    } // fin if EsRecepcionable
                    else
                    {
                        // acá debería guardar las que no se pueden recibir y luego mostrarlas en un alert...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false)
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                    }
                }
            } // fin for

            Session["GuiasNR"] = hGuiasNR;

            if (ok)
            {
                Session["GuiasDefectuosas"] = null;
                Response.Redirect("RecepcionMasivaAdministracion.aspx");
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;
                Response.Redirect("RecepcionMasivaAdministracion.aspx?d=1");
            }
        }
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            // Obtengo las agencias para verificar si la sucursal de la guía a recibir es válida
            // en el caso de guías de agencias no automatizadas
            IAgencia   agencia    = AgenciaFactory.GetAgencia();
            DsAgencias dsAgencias = agencia.GetAgenciasDataSet();

            bool      ok                = true;
            Hashtable hGuias            = new Hashtable();  // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR          = new Hashtable();  // Guías que no están en condiciones de ser recibidas
            Hashtable hGuiasIncompletas = new Hashtable();  // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)

            // Verifico si el sistema está configurado para utilizar recepción libre
            bool recepcionLibre      = false;
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.RecepcionLibre;
            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Consultar();
            if (param.ValorString == "1")
            {
                recepcionLibre = true;
            }

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS

                string txt        = "txt" + i;
                string obs        = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo  = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip";
                string ddl        = "ddl" + i.ToString();

                string nroGuia       = Request.Form[txt].ToString();
                string observacionID = Request.Form[obs].ToString();
                string sObsCodigo    = Request.Form[obsCodigo].ToString();
                string sObsDescrip   = Request.Form[obsDescrip].ToString();

                // Lógica para recibir (y observar) guías
                string tGuia = "";
//				if (nroGuia.Substring(0,1) == "3")
//					tGuia="A";
//				else if (nroGuia.Substring(0,1) == "4")
//					tGuia="B";
//				//else
//				//throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5);

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.Consultar();
                oGuia.EsRecepcion     = 1;
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                oGuia.UsuarioID = usuario.UsuarioID;

                IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                oGuiaFactura.UsuarioID = usuario.UsuarioID;

                // si la guía existe en el sistema, la recibe
                if (oGuia.GuiaID > 0)
                {
                    // Obtengo el Id de la agencia administración
                    IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramAdm.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
                    paramAdm.UnidadNegocioID = this.UnidadNegocioID;
                    paramAdm.Consultar();
                    int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString);
                    paramAdm = null;

                    // Reviso si la guía es recepcionable (si la guía todavia no esta en destino o si esta solicitada para devolución)
                    //if (oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID))
                    // Diego 29/03/2014
                    // Modificado para que verifique que la guia no este anulada o anulada WEB
                    if ((oGuia.EsRecepcionable || oGuia.RevisarSiTieneEstadoHistoricoBuscado(13, 2, oGuia.AgenciaDestinoID)) && !oGuia.EsGuiaAnulada(oGuia.GuiaID))
                    {
                        // La guía es recepcionable
                        ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                        /* Diego 09/01/2013 Actualiza el stock de las unidades de logisticas */
                        if (oGuia.TipoGuia == "X")
                        {
                            IGuiaUnidadLogistica gUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                            gUnidad.ActualizarStockGuiaUnidadLogistica(oGuia.GuiaID, this.AgenciaConectadaID, usuario.UsuarioID, 1);
                        }

                        if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID) ||
                            ((this.AgenciaConectadaID == oGuia.AgenciaOrigenID /*|| this.AgenciaConectadaID == agAdm*/) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion))
                        {
                            if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura && oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito)
                            {
                                //((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuia.EsRecepcionLibre = recepcionLibre;
                                oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                oGuia.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                /*German 28/06/2016 */
                                if (oGuia.TipoGuia == "X" && EsConformable(oGuia))
                                {
                                    oGuiaFactura.Entregada("Conformada Masivamente", this.AgenciaConectadaID, usuario);
                                }
                                ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                            }
                            else
                            {
                                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuiaFactura.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                                ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                            }
                        }
                        else if (this.AgenciaConectadaID == agAdm && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion)
                        {
                            // La guía se esta recibiendo en administración y es una devolución. La cargo como que queda en archivo
                            if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                            {
                                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                                oGuia.IngresadaAArchivo("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                            }
                            else
                            {
                                ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                oGuiaFactura.IngresadaAArchivo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                                ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                            }
                        }
                        //SFE: Modificado para corregir el bug que no ponia en Agencia de Redespacho en la Recepcion Masiva-- Se agrego el Metodo "EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID)"
                        else if (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia.AgenciaDestinoID, oGuia.GuiaID) || this.EsGuiaDePuntoRecepcionReferenciado(oGuia.GuiaID))
                        {
                            //Guia de redespacho
                            ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                            oGuiaFactura.Redespacho("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                            ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                        }
                        else
                        {
                            IAgencia ag = AgenciaFactory.GetAgencia();
                            ag.AgenciaID = oGuia.AgenciaOrigenID;
                            ag.ConsultarBasico();

                            // si la agencia que recibe en forma libre es la agencia madre,
                            // tengo que insertar los estados correspondientes
                            if (recepcionLibre && this.AgenciaConectadaID == ag.AgenciaMadre)
                            {
                                // insertar los estados de agencia madre...
                                if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                                {
                                    oGuia.EsRecepcion      = 1;
                                    oGuia.EsRecepcionLibre = recepcionLibre;
                                    oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                    oGuia.UsuarioID        = Utiles.Validaciones.obtieneEntero(this.UsuarioConectadoID);
                                    oGuia.Observaciones    = "Recibida Masivamente";
                                    oGuia.RecepcionAgenciaMadre(this.AgenciaConectadaID);
                                    ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                                }
                                else
                                {
                                    ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;

                                    //Se agregaron las siguientes dos lineas porque cuando llegaba al metodo para observar
                                    //no llegaba ni el usuario ni la observacion. FQuiroga 08/04/2016
                                    ((IGuia)oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                                    ((IGuia)oGuiaFactura).UsuarioID     = (usuario.UsuarioID);

                                    oGuiaFactura.RecepcionAgenciaMadre("Recibida Masivamente", this.AgenciaConectadaID, Utiles.Validaciones.obtieneEntero(observacionID));
                                    ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                                }
                            }
                            else
                            {
                                /*SFE: Agregado para trabajar con envios desde la Web*/
                                if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                                {
                                    /**/

                                    /*Esto estaba 16/11/2010*/
                                    // sino, continuar normalmente...
                                    if (oGuia.ClasificacionGuiaID != NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                                    {
                                        oGuia.EsRecepcionLibre = recepcionLibre;
                                        oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                        if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                                        {
                                            oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                        }
                                        else
                                        {
                                            oGuia.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                        }
                                        ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                                    }
                                    else
                                    {
                                        ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                        if (oGuia.EstadoMovimiento != (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.PendienteRetiro)
                                        {
                                            oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                                        }
                                        else
                                        {
                                            oGuiaFactura.IngresoReparto("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                        }

                                        ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                                    }
                                    /*Esto estaba 16/11/2010*/
                                }


                                /*SFE:Agregado para trabajar con envios desde la Web*/
                                else
                                {
                                    // Inserto los estados de "emitida" a la guía que se recibe
                                    // ya que se emitió en la web, y cuando se realizó la factura desde SisPack
                                    // se insertó el estado "Pendiente de Retiro"

                                    IObservacion observacion = ObservacionFactory.GetObservacion();
                                    observacion.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                                    if (observacion.ObservacionID > 0)
                                    {
                                        observacion.Buscar();
                                    }

                                    if (observacion.ObservacionID > 0 && observacion.TipoObservacionID == (int)NegociosSisPackInterface.SisPack.TipoObservacion.WebYPendienteRetiro)
                                    {
                                        /* VSA 14-08: Si se ha ingresado una observación del tipo WebYPendienteRetiro --> no se cambia el estado movimiento de la guía.*/
                                        //IGuia oGuia = GuiaFactory.GetGuia();
                                        //oGuia.GuiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);
                                        oGuia.ObservacionID = observacion.ObservacionID;
                                        oGuia.UsuarioID     = usuario.UsuarioID;
                                        oGuia.Observar();
                                        oGuia = null;
                                        /********************************************************************************************************************************/
                                        //bOK = true;
                                    }
                                    else
                                    {
                                        //bOK =
                                        oGuia.IngresoReparto(observacion.ObsDescrip, this.AgenciaConectadaID, usuario);
                                    }
                                }
                                /*SFE */
                            }
                        }
                    }                     // fin if EsRecepcionable
                    else
                    {
                        // acá debería guardar las que no se pueden recibir y luego mostrarlas en un alert...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false)
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                    }
                }
                else
                {
                    if (this.txtGuiasDefectuosas.Text == "0")
                    {
                        /*SFE: 12/01/2011. No permitir la recepcion de una guía que no se haya emitido y que la Agencia de Origen sea auto impresora*/
                        // Si la guía no existe en el sistema, consulto si la Agencia Origen es Autoimpresora
                        // 1ro verifico si la sucursal ingresada es válida
                        DsAgencias.DatosRow[] dr = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("SucursalDGI = '" + nroSucursal + "'");

                        if (dr.Length > 0)                         // Si es una sucursal válida,  ahora controlo que no este configurada como autoimpresora
                        {
                            DsAgencias.DatosRow drAgencia = dr[0];
                            string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                            if (drAgencia.TipoImpresionGuiaId != (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)                             // Caso Buscado: Guia no existe en el sistema y la Agencia Origen es Autoimpresora. No dejar recibir
                            {
                                hGuiasNR.Add(oGuia.GuiaID, guia);
                            }
                        }
                        else
                        {
                            // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no
                            // automatizada o bien porque se emitió en forma manual por una automatizada
                            // hay que visualizarla nuevamente para que se ingresen los datos correspondientes
                            ok = false;

                            string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                            if (hGuias.ContainsKey(nroGuia) == false)
                            {
                                hGuias.Add(nroGuia, obsTemp);
                            }
                            //this.txtGuiasDefectuosas.Text = "1";
                        }
                    }
                    else
                    {
                        /*SFE: 12/01/2011. No permitir la recepcion de una guía que no se haya emitido y que la Agencia de Origen sea auto impresora*/


                        // 1ro verifico si la sucursal ingresada es válida
                        DsAgencias.DatosRow[] dr = (DsAgencias.DatosRow[])dsAgencias.Datos.Select("SucursalDGI = '" + nroSucursal + "'");

                        if (dr.Length > 0)                         // Si es una sucursal válida,  ahora controlo que no este configurada como autoimpresora
                        {
                            DsAgencias.DatosRow drAgencia = dr[0];

                            if (drAgencia.TipoImpresionGuiaId != (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)                             // Caso Buscado: Guia no existe en el sistema y la Agencia Origen es Autoimpresora. No dejar recibir
                            {
                                string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                                if (hGuiasNR.ContainsKey(oGuia.GuiaID) == false)
                                {
                                    hGuiasNR.Add(oGuia.GuiaID, guia);
                                }
                            }
                            else
                            {
                                string valorDeclarado      = "txtValorDeclarado" + i;
                                string bultos              = "txtBultos" + i.ToString();
                                string agenciaDestino      = "agDes" + i.ToString() + "$txtAgenciaID";
                                string clasificacionGuiaID = Request.Form[ddl].ToString();

                                double vd            = Utiles.Validaciones.obtieneDouble(Request.Form[valorDeclarado].ToString());
                                int    bultosTotales = Utiles.Validaciones.obtieneEntero(Request.Form[bultos].ToString());
                                int    agDes         = Utiles.Validaciones.obtieneEntero(Request.Form[agenciaDestino].ToString());

                                if (vd > 0 && bultosTotales > 0 && agDes > 0)
                                {
                                    oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                                    ((IGuia)oGuiaFactura).TipoGuia        = tGuia;
                                    ((IGuia)oGuiaFactura).NroSucursalGuia = nroSucursal;
                                    ((IGuia)oGuiaFactura).NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                                    ((IGuia)oGuiaFactura).UnidadNegocioID = this.UnidadNegocioID;
                                    ((IGuia)oGuiaFactura).FechaEmision    = new DateTime(1900, 1, 1);

                                    ((IGuia)oGuiaFactura).ClasificacionGuiaID = (NegociosSisPackInterface.SisPack.ClasificacionGuia)Utiles.Validaciones.obtieneEntero(clasificacionGuiaID);

                                    IAgencia agOrigen = AgenciaFactory.GetAgencia();
                                    agOrigen.SucursalDGI = nroSucursal;
                                    agOrigen.ConsultarBySucursal();
                                    ((IGuia)oGuiaFactura).AgenciaOrigenID = agOrigen.AgenciaID;

                                    ((IGuia)oGuiaFactura).AgenciaDestinoID = agDes;
                                    ((IGuia)oGuiaFactura).Observaciones    = "";
                                    ((IGuia)oGuiaFactura).EsRecepcion      = 1;
                                    //((IGuia) oGuiaFactura).ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                                    ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID;
                                    ((IGuia)oGuiaFactura).GuiaID    = oGuia.GuiaID;

                                    oGuiaFactura.ImporteTotalGuia    = 0;
                                    oGuiaFactura.ValorDeclaradoTotal = vd;
                                    oGuiaFactura.CantidadBultosTotal = bultosTotales;

                                    if ((this.AgenciaConectadaID == agDes))
                                    {
                                        if (Utiles.Validaciones.obtieneEntero(clasificacionGuiaID) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                                        {
                                            oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                                            oGuia.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                            ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                                        }
                                        else
                                        {
                                            oGuiaFactura.Ingresada("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                                            ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                                        }
                                    }
                                    else if (this.EsGuiaDeAgenciaRedespachoReferenciada(agDes, oGuia.GuiaID))
                                    {
                                        //Guia de redespacho
                                        ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                        oGuiaFactura.Redespacho("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                        ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                                    }
                                    else
                                    {
                                        if (Utiles.Validaciones.obtieneEntero(clasificacionGuiaID) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                                        {
                                            oGuia.ObservacionID    = Utiles.Validaciones.obtieneEntero(observacionID);
                                            oGuia.EsRecepcionLibre = recepcionLibre;
                                            oGuia.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario);
                                            ObservarFinDeSemana(oGuia.GuiaID, usuario.UsuarioID);
                                        }
                                        else
                                        {
                                            ((IGuia)oGuiaFactura).EsRecepcionLibre = recepcionLibre;
                                            oGuiaFactura.Trasbordo("Recibida Masivamente", this.AgenciaConectadaID, usuario, Utiles.Validaciones.obtieneEntero(observacionID));
                                            ObservarFinDeSemana(((IGuia)oGuiaFactura).GuiaID, usuario.UsuarioID);
                                        }
                                    }
                                }
                                else
                                {
                                    ok = false;
                                    string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                                    if (hGuiasIncompletas.ContainsKey(nroGuia) == false)
                                    {
                                        hGuiasIncompletas.Add(nroGuia, obsTemp);
                                    }
                                }
                            }
                        }                         // fin dr.Length
                    }
                }
            }             // fin for

            Session["GuiasNR"] = hGuiasNR;

            if (ok)
            {
                Session["GuiasDefectuosas"] = null;
                Response.Redirect("RecepcionMasiva.aspx");
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;
                Response.Redirect("RecepcionMasiva.aspx?d=1");
            }
        }
        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));
            }
        }
Example #8
0
        private void dtgDevolucion_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Autorizar")
            {
                try
                {
                    int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
                    int EstadoID          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                    int UsuarioID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[4].Text);
                    int ClienteID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[6].Text);
                    int ProveedorID       = Utiles.Validaciones.obtieneEntero(e.Item.Cells[8].Text);
                    int UnidadLogisticaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[15].Text);
                    int Cantidad          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[17].Text);
                    int AgenciaID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[18].Text);
                    int GuiaID            = Utiles.Validaciones.obtieneEntero(e.Item.Cells[21].Text);

                    //Controlar que no haya  sido ya rechazada o autorizada


                    if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar)
                    {
                        /*Tratar de realizar el egreso de stock del proveedor o del cliente.*/
                        IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion();
                        unidad.Cantidad             = Cantidad * -1;// Es un egreso
                        unidad.ClienteID            = ClienteID;
                        unidad.ProveedorID          = ProveedorID;
                        unidad.UsuarioID            = UsuarioID;
                        unidad.UnidadesLogisticasID = UnidadLogisticaID;
                        unidad.Fecha               = DateTime.Now;
                        unidad.AgenciaID           = AgenciaID;
                        unidad.GuiaTemp            = GuiaID;
                        Session["UnidadLogistica"] = unidad;
                        /*Actualizar la autorizacion como impresa.*/
                        IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();

                        unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Autorizado, unidad, txtObservacion.Text);

                        //IList<IGuiaUnidadLogisticaDetalle> lista;

                        //if (Session["UnidadesAsigAutDev"] != null)
                        //    lista = (List<IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAutDev"];
                        //else
                        //    lista = new List<IGuiaUnidadLogisticaDetalle>();
                        //lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle()
                        //{
                        //    Cantidad = unidad.Cantidad,
                        //    UnidadLogisticaId = unidad.UnidadesLogisticasID,
                        //    Descripcion = string.Empty,
                        //    ClienteId = unidad.ClienteID,
                        //    RazonCliente = unidad.RazonSocial,
                        //    ProveedorId = unidad.ProveedorID,
                        //    RazonProv = unidad.RazonSocial,
                        //    UsuarioID = unidad.UsuarioID,
                        //    AgenciaID = unidad.AgenciaID
                        //});
                        //Session["UnidadesAsigAutDev"] = lista;

                        BindGrid(0);
                        //EmitirUnidadLogistica();
                        txtObservacion.Text = string.Empty;
                    }
                    else
                    {
                        throw new Exception("La devolucion ya ha sido autorizada o rechazada.");
                    }
                }
                catch (Exception ex)
                {
                    txtObservacion.Text = string.Empty;
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
            else if (e.CommandName == "Rechazar")
            {
                try
                {
                    int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
                    int EstadoID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);

                    //Controlar que no haya  sido ya rechazada o autorizada
                    if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar)
                    {
                        /*Actualizar la autorizacion como Rechazada.*/
                        IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                        unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Rechazado, null, txtObservacion.Text);
                        BindGrid(0);
                        txtObservacion.Text = string.Empty;
                    }
                    else
                    {
                        throw new Exception("La devolucion ya ha sido autorizada o rechazada.");
                    }
                }
                catch (Exception ex)
                {
                    txtObservacion.Text = string.Empty;
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
        }