예제 #1
0
        private void ValidarValorDeclarado(IUnidadVenta uVenta)
        {
            double valorDeclaradoMinimo = 0;
            double valorDeclaradoMaximo = 0;
            double valorDeclarado       = Utiles.Validaciones.obtieneDouble(this.txtValorDeclarado.Text);

            //cambios GVazquez 03/02/2017
            if (uVenta.ValorDeclaradoMinimo != 0 && uVenta.ValorDeclaradoMaximo != 0) //tiene definido un valor declarado, usarlos
            {
                if ((valorDeclarado < uVenta.ValorDeclaradoMinimo || valorDeclarado > uVenta.ValorDeclaradoMaximo))
                {
                    throw new Exception("El valor declarado permitido debe estar dentro del siguiente rango: $" + valorDeclaradoMinimo + " -  $" + valorDeclaradoMaximo);
                }
            }
            else // si no esta definido a nivel de Unidad de Venta tengo que utilzar el de parámetro general
            {
                IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                param.UnidadNegocioID = 1;
                param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorDeclaradoMinimo;
                param.Consultar();
                valorDeclaradoMinimo = Utiles.Validaciones.obtieneDouble(param.ValorString);

                param.Parametro = NegociosSisPackInterface.SisPack.Parametro.ValorDeclaradoMaximo;
                param.Consultar();
                valorDeclaradoMaximo = Utiles.Validaciones.obtieneDouble(param.ValorString);

                if (!(valorDeclarado >= valorDeclaradoMinimo && valorDeclarado <= valorDeclaradoMaximo))
                {
                    throw new Exception("El valor declarado permitido debe estar dentro del siguiente rango: $" + valorDeclaradoMinimo + " -  $" + valorDeclaradoMaximo);
                }
            }
        }
예제 #2
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            #region IsAuthenticated
            if (Session["Usuario"] != null)
            {
                usuario = (IUsuarios)Session["Usuario"];
            }

            if (User.Identity.IsAuthenticated)
            {
                string       sOpcion = "agrupacionClientes";
                SisPacK.Menu oMenu   = (SisPacK.Menu) this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }
            #endregion

            Page.RegisterClientScriptBlock("ChangeClientesTodos", GenerarJavaScripts.MarcarDesmarcarTodos(this.ddlClientes, this.chkTodosClientes, "ChangeClientesTodos()"));
            Page.RegisterClientScriptBlock("DesmarcarClientesTodos", GenerarJavaScripts.CambiarMarcaTodos(this.chkTodosClientes, "DesmarcarClientesTodos()"));

            this.ddlClientes.Attributes.Add("onclick", "DesmarcarClientesTodos();");
            this.chkTodosClientes.Attributes.Add("onclick", "ChangeClientesTodos();");

            Page.RegisterClientScriptBlock("ChangeClientesAsociadosTodos", GenerarJavaScripts.MarcarDesmarcarTodos(this.ddlClientesAsociados, this.chkTodosClientesAsociados, "ChangeClientesAsociadosTodos()"));
            Page.RegisterClientScriptBlock("DesmarcarClientesAsociadosTodos", GenerarJavaScripts.CambiarMarcaTodos(this.chkTodosClientesAsociados, "DesmarcarClientesAsociadosTodos()"));

            this.ddlClientesAsociados.Attributes.Add("onclick", "DesmarcarClientesAsociadosTodos();");
            this.chkTodosClientesAsociados.Attributes.Add("onclick", "ChangeClientesAsociadosTodos();");

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

            if (this.AgenciaConectadaID == agAdm)
            {
                this.chkEsPublica.Visible = true;
            }
            else
            {
                this.chkEsPublica.Visible = false;
            }

            SetearValidadores();

            if (!Page.IsPostBack)
            {
                Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtNombreAgrup.UniqueID.Replace(":", "_")));
                txtAgrupacionID.Text           = Request.QueryString["AgrupacionID"];   //solo modo edicion
                Session["DsClientesAgrupados"] = null;


                if (txtAgrupacionID.Text != "")//entra en modo editar
                {
                    Editar();
                }
                this.LlenarComboCliente();
            }
        }
예제 #3
0
        private void btnExportarTXT_Click(object sender, System.EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }
            try
            {
                if (Session["DsUltimoNroGuiaPorAgencia"] != null)
                {
                    System.Text.StringBuilder str = new System.Text.StringBuilder();

                    foreach (DsUltimoNroGuiaPorAgencia.DatosRow dr in ((DsUltimoNroGuiaPorAgencia)Session["DsUltimoNroGuiaPorAgencia"]).Datos)
                    {
                        str.Append("# Periodo " + dr.Periodo.ToString() + "\r\n");

                        //Obtenemos el número de CUIT de parámetros generales.
                        IParametroUNegocio paramNumeroCUIT = ParametroUNegocioFactory.GetParametroUNegocio();
                        paramNumeroCUIT.UnidadNegocioID = this.UnidadNegocioID;
                        paramNumeroCUIT.Parametro       = NegociosSisPackInterface.SisPack.Parametro.NumeroCUIT;
                        paramNumeroCUIT.Consultar();

                        string numeroCUIT = paramNumeroCUIT.ValorString;

                        str.Append(numeroCUIT + " #cuit" + "\r\n");
                        str.Append(dr.Periodo.ToString() + " #periodo" + "\r\n");

                        foreach (DsUltimoNroGuiaPorAgencia.DatosRow dr2 in ((DsUltimoNroGuiaPorAgencia)Session["DsUltimoNroGuiaPorAgencia"]).Datos)
                        {
                            if (dr2.Periodo == dr.Periodo)
                            {
                                string dato = dr2.CAI.ToString() + ' ' + dr2.SucursalDGI.ToString() + ' ' + dr2.TipoComprobante + ' ' + dr2.UltimoNro.ToString();
                                str.Append(dato + "\r\n");
                            }
                            else
                            {
                                break;
                            }
                        }
                        break;
                    }

                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=ReporteUltimoNroGuiaPorAgencia.txt");
                    Response.Charset = "";
                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.ContentType = "application/vnd.text";
                    System.IO.StringWriter       stringWrite = new System.IO.StringWriter();
                    System.Web.UI.HtmlTextWriter htmlWrite   = new HtmlTextWriter(stringWrite);
                    Response.Write(str.ToString());
                    Response.End();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #4
0
        private void CargarParametrosGenerales()
        {
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = 1;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorDivisionCalculoPesoAforado;
            param.Consultar();
            this.txtValorDivPesoAforado.Text = param.ValorString;
        }
예제 #5
0
        private void ValidarValorDeclarado()
        {
            admGuiaO.AgenteGuiaPagoID = NegociosSisPackInterface.SisPack.TipoAgenteGuia.Remitente;
            admGuiaO.UnidadVentaID    = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
            int resultado = admGuiaO.VerificarValorDeclaradoCorp();

            if (resultado == -1) //si devuelve false el metodo, es porque está fuera de los parametros
            {
                throw new Exception(this.TraducirTexto("Errores.Invalidos.ValorDeclaradoIncorrecto"));
            }
            // este else es por las dudas que no tenga convenio ese cliente para esa uventa, entonces
            // revisa que esté dentro de los parametros generales
            else if (resultado == 1)
            {
                //Valor declarado ingresado
                double valor = this.txtValorDeclarado.Text == "" ? 0 : Convert.ToDouble(this.txtValorDeclarado.Text);

                /*SFE: Validar si la el valor declarado se encuentra en el rango del definido por Unidad Venta, sino usar el definido como parametro general*/
                // Busco la Unidad de Venta y consulto si tiene definido un valor declarado máximo y mínimo
                int          uniVenta = admGuiaO.UnidadVentaID;
                IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                uVenta.UnidadVentaID = uniVenta;
                uVenta.Consultar();

                if (uVenta.ValorDeclaradoMinimo != 0 && uVenta.ValorDeclaradoMaximo != 0) //tiene definido un valor declarado, usarlos
                {
                    if ((valor < uVenta.ValorDeclaradoMinimo || valor > uVenta.ValorDeclaradoMaximo) && (Utiles.Validaciones.obtieneEntero(this.txtValorDeclarado.Text) <= 0))
                    {
                        throw new Exception(this.TraducirTexto("Errores.Invalidos.ValorDeclaradoIncorrecto"));
                    }
                }
                else // si no esta definido a nivel de Unidad de Venta tengo que utilzar el de parámetro general
                {
                    /*SFE: Esto estaba originalmente*/
                    IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramMin.UnidadNegocioID = this.UnidadNegocioID;
                    paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorDeclaradoMinimo;
                    paramMin.Consultar();
                    double valorMin = Convert.ToDouble(paramMin.ValorString);

                    IParametroUNegocio paramMax = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramMax.UnidadNegocioID = this.UnidadNegocioID;
                    paramMax.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorDeclaradoMaximo;
                    paramMax.Consultar();
                    double valorMax = Convert.ToDouble(paramMax.ValorString);

                    if ((valor < valorMin || valor > valorMax) && (Utiles.Validaciones.obtieneEntero(this.txtValorDeclarado.Text) <= 0))
                    {
                        throw new Exception(this.TraducirTexto("Errores.Invalidos.ValorDeclaradoIncorrecto"));
                    }
                }
            }
        }
        // SFE: 18/07/2011. Imprimir CB según disposición de AFIP.
        #region CrearImagenCBAFIP
        private string CrearImagenCBAFIP(string tipoGuia, string nroSucursal, string nroCAI, string fechaVencCAI)
        {
            // El CB de la AFIP se compone de: CUIT + Codigo Tipo Comprobante + NroSucursal + Nº CAI + Fecha Ven CAI (yyyymmdd) + digito verificador

            //Obtengo el CUIT por Parametro
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.NumeroCUIT;
            param.Consultar();
            string Cuit = param.ValorString;

            //Obtengo el Codigo del Tipo de Comprobante
            string codigoTipoComprobante = ObtenerCodigoComprobante(tipoGuia);

            // Convierto la Fecha de Vencimiento del CAI en el formato que se requiere. yyyymmdd
            string[] cadenaConSplit = fechaVencCAI.Split('/');
            string   fechaCAI       = cadenaConSplit[2] + cadenaConSplit[1] + cadenaConSplit[0];

            // Armo el string a codificar
            string nroGuiaCB = Cuit + codigoTipoComprobante + nroSucursal + nroCAI + fechaCAI;

            // Nueva instancia para generar el Codigo de Barras
            OnBarcode.Barcode.Linear vv = new OnBarcode.Barcode.Linear();

            // Seteo el tipo de codificacion requerido (Interleaved 2 of 5)
            vv.Type = OnBarcode.Barcode.BarcodeType.INTERLEAVED25;
            // Seteo los datos que seran codificados.
            vv.Data = nroGuiaCB;

            // Agrego el digito verificador
            vv.AddCheckSum = true;

            // Seteo caracteristicas de impresion
            vv.UOM = OnBarcode.Barcode.UnitOfMeasure.PIXEL;
            vv.Y   = 20; // alto del Codigo de Barras

            // Dibujo el Codigo de Barras
            //System.Drawing.Image myimg = vv.drawBarcode();

            string nombreArchivo = nroGuiaCB + ".jpg";
            string ruta          = Server.MapPath("CB") + "\\";

            // Reviso si existe el archivo a crear. Si no existe lo dibujo y lo guardo
            if (new System.IO.FileInfo(ruta + nombreArchivo).Exists == false)
            {
                vv.drawBarcode(ruta + nombreArchivo);
                // El archivo no existe, lo creo
                //myimg.Save(ruta + nombreArchivo, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            return(nombreArchivo);
        }
예제 #7
0
        public void ConsultarParametros()
        {
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.TipoGuiaRendicionAgenciaAgencia;
            param.Consultar();
            this.txtTipoGuia.Text = param.ValorString;

            param.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
            param.Consultar();
            this.txtAgenciaDestino.Text = param.ValorString;
        }
        private void GenerarVoucher()
        {
            string secuencia = Request.QueryString["Secuencia"];

            /* Completamos los campos de la parte superior del voucher. */
            this.lblFechaImpresion2.Text = System.DateTime.Today.ToShortDateString();
            string codEmpresaGrupoA = secuencia.Substring(3, 2);

            IParametroUNegocio paramEmpresaNombre = ParametroUNegocioFactory.GetParametroUNegocio();

            paramEmpresaNombre.UnidadNegocioID = this.UnidadNegocioID;
            paramEmpresaNombre.Parametro       = NegociosSisPackInterface.SisPack.Parametro.EmpresaNombre;
            paramEmpresaNombre.Consultar();

            if (codEmpresaGrupoA == "01")
            {
                this.lblEmpresa2.Text = paramEmpresaNombre.ValorString;
            }
            //this.lblEmpresa2.Text = "Andesmar"; //codEmpresaGrupoA;

            IAgencia oAgencia = AgenciaFactory.GetAgencia();

            oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
            oAgencia.ConsultarBasico();

            string codAgencia = secuencia.Substring(7, 7);

            this.lblAgencia2.Text = oAgencia.RazonSocial;

            string nroRendicion = Request.QueryString["nroRendicion"];

            this.lblRendicionNro2.Text = nroRendicion;

            string importe      = secuencia.Substring(24, 8);
            string parteEntera  = importe.Substring(0, 6);
            string parteDecimal = importe.Substring(6, 2);

            this.lblTotalPagar2.Text = '$' + Convert.ToInt32(parteEntera).ToString() + ',' + parteDecimal;

            this.lblFechaVencimiento2.Text = nroRendicion.Substring(nroRendicion.Length - 10, 10);

            /* Completamos los datos del talón del voucher. */
            this.lblEmpresat2.Text     = paramEmpresaNombre.ValorString;
            this.lblAgenciat2.Text     = oAgencia.RazonSocial + " - " + codAgencia;
            this.lblVencimientot2.Text = this.lblFechaVencimiento2.Text + " $" + Convert.ToInt32(parteEntera).ToString() + ',' + parteDecimal;
            string secuenciaCB = this.CrearImagenCB(secuencia);

            this.imgSecuenciaCB.ImageUrl = secuenciaCB;
            imgSecuenciaCB.ImageAlign    = ImageAlign.AbsMiddle;
        }
예제 #9
0
        private void CargarPrioridades()
        {
            IUnidadVenta unidadVenta = UnidadVentaFactory.GetUnidadVenta();

            this.lstUnidadesVenta.DataSource = unidadVenta.GetUnidadesVentaDataSet();
            this.lstUnidadesVenta.DataBind();

            this.butArriba.ImageUrl = "images/bot_arribaon.gif";
            this.butAbajo.ImageUrl  = "images/bot_abajoon.gif";

            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.PrioridadTrasbordo;
            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Consultar();

            this.ddlUVentaTras.SelectedValue = param.ValorString;
        }
        private void butAceptar_Click(object sender, System.EventArgs e)
        {
            // Valido que la fecha de emisión de la guía (fecha actual) sea inferior o igual a la fecha de
            // vencimiento del CAI de la agencia, siempre que la agencia sea autoimpresora

            // Consulto los datos de la agencia
            IAgencia agencia = AgenciaFactory.GetAgencia();

            agencia.AgenciaID = this.AgenciaConectadaID;
            agencia.Consultar();
            agencia.CargarDatosCAIParaTipoGuiaFactura("B");
            // Consulto el parametro si permite emitir con 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;
            bool aviso   = false;

            // Reviso cual es la forma de impresión
            if (agencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco ||
                agencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_PreDiseñada)
            {
                // Es autoimpresor. Reviso si la fecha de CAI esta vencida
                if (DateTime.Today > agencia.FechaVencimientoCAI)
                {
                    // La fecha de CAI esta vencida. Reviso si permite la emisión con fecha de CAI vencida
                    if (!permite)
                    {
                        // No permite
                        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 permite
                        aviso = true;
                    }
                }
            }
            // Obtengo el número de guía
            this.ObtenerNroGuia(aviso);
        }
예제 #11
0
        private IReporteAlertaOperativas SetFiltros()
        {
            IReporteAlertaOperativas guias = ReporteAlertaOperativasFactory.GetReporteAlertaOperativas();

            guias.ListaCliente     = this.getLista(this.chkClientesTodos, this.lstClientes);
            guias.ListaUnidadVenta = this.getListaEntera(this.chkUnidadesVentaTodas, this.lstUnidadesVenta);
            guias.ListaZona        = this.getLista(this.chkZonasTodas, this.lstZonas);
            //guias.ListaCatCliente = this.getLista(this.chkCatClienteTodas, this.lstCatCliente);
            guias.ListaCatUnidadVenta = this.getLista(this.chkCatUnidadVentaTodas, this.lstCatUnidadVenta);
            //guias.ListaPersonal = this.getLista(this.chkPersonalTodos, this.lstPersonal);
            guias.ListaAgenciaTrasbordo = this.getLista(this.chkAgenciasTrasbordoTodas, this.lstAgenciasTrasbordo);
            guias.ListaAgenciaOrigen    = this.getListaEntera(this.chkAgenciasOrigenTodas, this.lstAgenciasOrigen);
            guias.ListaAgenciaDestino   = this.getListaEntera(this.chkAgenciasDestinoTodas, this.lstAgenciasDestino);
            guias.EsAgrupacionCliente   = chkCategoriaCliente.Checked;

            #region Cargar días a controlar en función de vigencia parametrizada
            IParametroUNegocio parametroVigencia = ParametroUNegocioFactory.GetParametroUNegocio();
            parametroVigencia.UnidadNegocioID = this.UnidadNegocioID;
            parametroVigencia.Parametro       = NegociosSisPackInterface.SisPack.Parametro.VigenciaAlertasDias;;
            parametroVigencia.Consultar();
            int diasVigencia = 0;
            int diaActual    = (Convert.ToInt32(DateTime.Today.DayOfWeek) == 0) ? 7 : Convert.ToInt32(DateTime.Today.DayOfWeek);

            string   listaDias         = diaActual.ToString();
            DateTime fechaDesdeEmision = DateTime.Today;

            if (!parametroVigencia.ValorString.Equals(""))
            {
                diasVigencia = Convert.ToInt32(parametroVigencia.ValorString);
            }

            for (int i = 1; i <= diasVigencia; i++)
            {
                fechaDesdeEmision = fechaDesdeEmision.AddDays(-1);
                listaDias        += ',' + ((Convert.ToInt32(fechaDesdeEmision.DayOfWeek) == 0) ? 7 : Convert.ToInt32(fechaDesdeEmision.DayOfWeek)).ToString();
            }
            #endregion

            guias.ListaDiasAControlar = listaDias;
            guias.FechaDesdeEmision   = fechaDesdeEmision;
            return(guias);
        }
        private void dtgRendiciones_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "Recibir")
                {
                    IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia();
                    rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text);
                    // SFE. Registrar la agencia que va a recibir.
                    rendicion.Agencia.AgenciaID = AgenciaConectadaID;
                    IUsuarios usuario = (IUsuarios)Session["Usuario"];
                    rendicion.Recibir(usuario.UsuarioID);
                    BindGrid(0);
                }
                else if (e.CommandName == "Controlar")
                {
                    IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia();
                    rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text);
                    // SFE. Registrar la agencia que va a recibir.
                    rendicion.Agencia.AgenciaID = AgenciaConectadaID;
                    IUsuarios   usuario = (IUsuarios)Session["Usuario"];
                    TextBox     txtCaja = (TextBox)e.Item.FindControl("txtCaja");
                    PlaceHolder phCaja  = (PlaceHolder)e.Item.FindControl("phCaja");
                    phCaja.Controls.Add(GenerarValidadores.Requerido("txtCaja", "Debe ingresar el número de caja es obligatorio", false, "cajaReq"));
                    phCaja.Controls.Add(GenerarValidadores.EnteroPositivo("txtCaja", "El número de caja debe ser un entero positivo", false, "cajaValid"));
                    BaseValidator bv;
                    bv         = (BaseValidator)e.Item.FindControl("cajaReq");
                    bv.Enabled = true;
                    bv.Validate();
                    if (!bv.IsValid)
                    {
                        return;
                    }
                    bv         = (BaseValidator)e.Item.FindControl("cajaValid");
                    bv.Enabled = true;
                    bv.Validate();
                    if (!bv.IsValid)
                    {
                        return;
                    }
                    rendicion.Controlar(usuario.UsuarioID, Utiles.Validaciones.obtieneEntero(txtCaja.Text));
                    BindGrid(0);
                }
                else if (e.CommandName == "ReporteComisiones")
                {
                    string rendicionAgenciaID = e.Item.Cells[20].Text;
                    Response.Redirect("ComisionAgenciaPorRendicion.aspx?RendicionAgenciaID=" + rendicionAgenciaID, false);
                }
                else if (e.CommandName == "Imprimir")
                {
                    IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia();
                    rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text);
                    IUsuarios usuario = (IUsuarios)Session["Usuario"];
                    rendicion.Recibir(usuario.UsuarioID);
                    BindGrid(0);

                    DsRendicionesAgencias rendicionSeleccionada = new DsRendicionesAgencias();
                    foreach (DsRendicionesAgencias.DatosRow item in ((DsRendicionesAgencias)Session["dsRendicionAgencia"]).Datos)
                    {
                        if (Utiles.Formatos.CerosIzq(Convert.ToInt32(item.NroRendicion), 5) == e.Item.Cells[0].Text)
                        {
                            DsRendicionesAgencias.DatosRow myRow = rendicionSeleccionada.Datos.NewDatosRow();
                            myRow.AgenciaID          = item.AgenciaID;
                            myRow.AgenciaNombre      = item.AgenciaNombre;
                            myRow.Archivo            = item.Archivo;
                            myRow.Controlada         = item.Controlada;
                            myRow.EstadoRendicionID  = item.EstadoRendicionID;
                            myRow.Fecha              = item.Fecha;
                            myRow.NroRendicion       = item.NroRendicion;
                            myRow.Recibida           = item.Recibida;
                            myRow.RendicionAgenciaID = item.RendicionAgenciaID;
                            myRow.SaldoRendicion     = item.IsSaldoRendicionNull()? 0.00 : item.SaldoRendicion;
                            myRow.SubTotalFleteA     = item.SubTotalFleteA;
                            myRow.SubTotalFleteB     = item.SubTotalFleteB;
                            myRow.SubTotalFleteE     = item.SubTotalFleteE;
                            //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R
                            myRow.SubTotalFleteR  = item.SubTotalFleteR;
                            myRow.SubTotalSeguroA = item.SubTotalSeguroA;
                            myRow.SubTotalSeguroB = item.SubTotalSeguroB;
                            myRow.SubTotalSeguroE = item.SubTotalSeguroE;
                            //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R
                            myRow.SubTotalSeguroR = item.SubTotalSeguroR;
                            myRow.TotalRendidoA   = item.TotalRendidoA;
                            myRow.TotalRendidoB   = item.TotalRendidoB;
                            myRow.TotalRendidoE   = item.TotalRendidoE;
                            //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R
                            myRow.TotalRendidoR = item.TotalRendidoR;
                            myRow.UsuarioCID    = item.IsUsuarioCIDNull() ? 0 : item.UsuarioCID;
                            myRow.UsuarioRID    = item.IsUsuarioRIDNull() ? 0 : item.UsuarioRID;

                            rendicionSeleccionada.Datos.AddDatosRow(myRow);
                            break;
                        }
                    }

                    string codEmpresaRapiPago = System.Configuration.ConfigurationSettings.AppSettings["CodEmpresaRapiPago"].ToString();

                    IParametroUNegocio paramEmpresa = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramEmpresa.UnidadNegocioID = this.UnidadNegocioID;
                    paramEmpresa.Parametro       = NegociosSisPackInterface.SisPack.Parametro.Empresa;
                    paramEmpresa.Consultar();

                    string codEmpresaGrupoA = paramEmpresa.ValorString;

                    IParametroUNegocio paramZona = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramZona.UnidadNegocioID = this.UnidadNegocioID;
                    paramZona.Parametro       = NegociosSisPackInterface.SisPack.Parametro.Zona;
                    paramZona.Consultar();

                    string zona = paramZona.ValorString;

                    /* Obtenemos el Codigo de la Agencia logueada. */
                    IAgencia oAgencia = AgenciaFactory.GetAgencia();
                    oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
                    oAgencia.ConsultarBasico();
                    /* Utilizamos la funcion útiles para rellenar con ceros. */
                    string codAgencia = Utiles.Formatos.CerosIzq(Convert.ToInt32(oAgencia.SucursalDGI), 7);

                    string compLiquid = Utiles.Formatos.CerosIzq(rendicionSeleccionada.Datos[0].RendicionAgenciaID, 8);
                    string auxiliar   = "00";

                    /* Sumar el total de los dos tipos de guías. */
                    string importe       = "";
                    double totalARendirA = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoA : 0.00;
                    double totalARendirB = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoB : 0.00;
                    double totalARendirE = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoE : 0.00;
                    //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R
                    double totalARendirR = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoR : 0.00;

                    double totalGuias = totalARendirA + totalARendirB + totalARendirE + totalARendirR;
                    int    entero     = Convert.ToInt32(Math.Floor(totalGuias));
                    double decimales  = totalGuias - Convert.ToDouble(entero);

                    if (decimales == 0.0)
                    {
                        string dec = Utiles.Formatos.CerosIzq(0, 2);
                        importe = Utiles.Formatos.CerosIzq(entero, 6) + dec;
                    }
                    else
                    {
                        importe = Utiles.Formatos.CerosIzq(entero, 6) + decimales.ToString().Substring(2, 2);
                    }

                    /* Formamos la fecha de vencimiento. */
                    string diasVto = Utiles.Formatos.CerosIzq(Convert.ToInt32(rendicionSeleccionada.Datos[0].Fecha.DayOfYear.ToString()), 3);
                    //string diasVto = Utiles.Formatos.CerosIzq(Convert.ToInt32(System.DateTime.Today.AddMonths(1).DayOfYear.ToString()),3);
                    string anioVto  = System.DateTime.Today.Year.ToString().Substring(System.DateTime.Today.Year.ToString().Length - 2, 2);
                    string fechaVto = anioVto + diasVto;

                    string moneda = "0";

                    string secuencia = codEmpresaRapiPago + codEmpresaGrupoA + zona + codAgencia + compLiquid + auxiliar + importe + fechaVto + moneda;

                    IParametroUNegocio paramCadenaVerificadora = ParametroUNegocioFactory.GetParametroUNegocio();
                    paramCadenaVerificadora.UnidadNegocioID = this.UnidadNegocioID;
                    paramCadenaVerificadora.Parametro       = NegociosSisPackInterface.SisPack.Parametro.CadenaVerificadora;
                    paramCadenaVerificadora.Consultar();

                    string secuenciaControl = paramCadenaVerificadora.ValorString;                     //Secuencia fija elegida.

                    /* Obtenemos los dígitos de verificación de nuestra secuencia. */
                    double totalProductos = 0.00;
                    if (secuencia.Length == secuenciaControl.Length)
                    {
                        for (int i = 0; i < secuencia.Length; i++)
                        {
                            totalProductos += (int)(secuencia[i] - '0') * (int)(secuenciaControl[i] - '0');
                        }
                    }
                    int    ultimosDigitos   = (System.Int32)(totalProductos / 2);
                    string codigoValidacion = ultimosDigitos.ToString().Substring(ultimosDigitos.ToString().Length - 2, 2);

                    /* Concatenamos el código validador a nuestra secuencia y la enviamos como parámetro a la página de impresión. */
                    secuencia = secuencia + codigoValidacion;
                    string nroRendicion = rendicionSeleccionada.Datos[0].NroRendicion + " - " + rendicionSeleccionada.Datos[0].Fecha.ToShortDateString();

                    string script = "<script languaje='javascript'>\n";
                    script += "window.showModalDialog('VoucherRapiPago.aspx?secuencia=" + secuencia + "&nroRendicion=" + nroRendicion + "','','center:Yes;status:No;help:No;resizable:No;scroll:Yes;dialogHeight:580px;dialogWidth:610px');\n";
                    script += "</script>";

                    Page.RegisterClientScriptBlock("generarVoucher", script);
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
예제 #13
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            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 conformadas
            Hashtable hGuiasIncompletas          = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)
            Hashtable hRemitosFaltaIngresarDatos = new Hashtable(); // Remitos que no se pueden conformar por que le falta ingresar los datos para facturar

            DsFacturaImpresion.DatosRow drFac;
            Hashtable hGuiasSinCompletar = new Hashtable(); // Guías que pertenecen a la HRepartidor original pero que no se ingresaron en la conformacion/observacion masiva.
            Hashtable hGuiasIngresadas   = new Hashtable(); // Guías que se ingresaron, lo utilizo para hacer una validacion al final

            // Busco los datos de la agencia
            IAgencia datosAgencia = AgenciaFactory.GetAgencia();

            datosAgencia.AgenciaID = usuario.AgenciaID;
            datosAgencia.Consultar();

            DsDatosGenerarFactura dsDatosFacturasAGenerar;

            if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
            {
                dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
            }
            else
            {
                dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
            }
            DsFacturaImpresion          dsFAImprimir = new DsFacturaImpresion();
            DsDetalleHojaRutaRepartidor dsDetalle    = new DsDetalleHojaRutaRepartidor();
            DsHojaRutaRepartidor        dsHR         = (DsHojaRutaRepartidor)Session["dsHojaRutaRepartidor"];

            if (Session["DsDetalleHojaRutaRepartidor"] != null)
            {
                dsDetalle = (DsDetalleHojaRutaRepartidor)Session["DsDetalleHojaRutaRepartidor"];
            }

            if (Session["hGuiasIngresadas"] != null)
            {
                hGuiasIngresadas = (Hashtable)Session["hGuiasIngresadas"];
            }

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

            for (int i = 0; i < cant; i++)
            {
                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.UsuarioID       = usuario.UsuarioID;

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

                // si la guía existe en el sistema, verifco si está en condiciones de conformarse y si es así la conformo
                if (oGuia.GuiaID > 0)
                {
                    //SFE: 22/08/2012. Guardo las guias ingresadas para al final del foreach realizar una validacion.
                    hGuiasIngresadas.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);

                    // Reviso si la guía esta en condiciones de ser conformada (tanto por que tiene los estados necesarios
                    // en la cabecera de la guía o en los estados historicos)
                    if (EsConformable(oGuia))
                    {
                        // Reviso si se trata de un remito por un flete pago en destino y si es asi, si esta o no facturado
                        if (tGuia == "R" && oGuia.GuiaTieneFPD() && oGuia.RemitoEstaFacturado() == false)
                        {
                            // Se trata de un remito.
                            // Reviso si tengo que observar la guía o conformarla
                            if (Utiles.Validaciones.obtieneEntero(observacionID) > 0)
                            {
                                // tengo que observar la guía
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            }

                            // Tengo que conformar la guía
                            // Reviso si la agencia es autoimpresora
                            if (datosAgencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                            {
                                // la agencia no es autoimpresora. marco como que no se puede conformar la guía
                                hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                            }
                            else
                            {
                                // La agencia es autoimpresora
                                // Reviso si se ingreso la información para facturar el remito
                                if (Validaciones.obtieneEntero(dsDatosFacturasAGenerar.Datos.Compute("count(guiaid)", "guiaid=" + oGuia.GuiaID.ToString()).ToString()) == 0)
                                {
                                    dsDatosFacturasAGenerar.Datos.Select("guiaid =" + oGuia.GuiaID.ToString());
                                    // No se ingreso la información de la factura.
                                    if (hRemitosFaltaIngresarDatos.ContainsKey(oGuia.GuiaID) == false)
                                    {
                                        hRemitosFaltaIngresarDatos.Add(oGuia.GuiaID, nroGuia);//Validaciones.obtieneEntero(nroSucursal).ToString("0000") + " - " + Validaciones.obtieneEntero(nroGuia).ToString("00000000") + "-" + tGuia);
                                        ok = false;
                                    }
                                }
                                else
                                {
                                    // Si se ingreso la información de la factura
                                    ((IGuia)oGuiaFactura).GuiaID    = oGuia.GuiaID;
                                    ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID;

                                    // Cargo la información para realizar la factura
                                    IFactura oFactura = CargarDatosFactura(((IGuia)oGuiaFactura).GuiaID);
                                    ((IGuia)oGuiaFactura).OFactura = oFactura;

                                    DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                    dr.GuiaID        = oGuia.GuiaID;
                                    dr.ObservacionID = oGuia.ObservacionID;
                                    dr.Observaciones = sObsDescrip;
                                    dsDetalle.Datos.AddDatosRow(dr);
                                    dsDetalle.Datos.AcceptChanges();
                                }
                            }
                        }
                        else
                        {
                            // Se trata de una guía normal o de un remito de un cliente coorporativo. No de un remito por Flete pago en destino. O el remito ya esta facturado
                            ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                            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;

                            // Si la agencia conectada es igual a la agencia de destino, le permito conformar
                            if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID ||
                                 ((this.AgenciaConectadaID != oGuia.AgenciaDestinoID || this.AgenciaConectadaID == agAdm) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion) ||
                                 (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia)) ||
                                 (this.EsGuiaDePuntoRecepcionReferenciado(oGuia))))
                            {
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);

                                DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                //DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                dr.GuiaID        = oGuia.GuiaID;
                                dr.ObservacionID = oGuia.ObservacionID;
                                dr.Observaciones = sObsDescrip;
                                dsDetalle.Datos.AddDatosRow(dr);
                                dsDetalle.Datos.AcceptChanges();
                            }
                            else
                            {
                                // No se puede conformar...
                                string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                                if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                                {
                                    hGuiasNR.Add(oGuia.GuiaID, guia);
                                    // SFE
                                    ok = false;
                                }
                            }
                        }
                    } // fin if EsConformable
                    else
                    {
                        // La guía no existe... no se puede conformar...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                        ok = false;
                    }
                }
                else
                {
                    // La guía no existe... no se puede conformar...
                    string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                    if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                    {
                        hGuiasNR.Add(oGuia.GuiaID, guia);
                    }
                    ok = false;
                }
            } // fin for


            //SFE: 22/08/2012. Recorro el detalle de las guias que componen la Hoja de Ruta del Repartidor
            foreach (DsHojaRutaRepartidor.GuiasRow item in dsHR.Guias)
            {
                //SFE: 22/08/2012. Valido que las guias que se ingresaron se correspondan y esten todas con las guias de la HRepartidor
                // Es decir verifico que en el HashTable de guias ingresadas exista el item que compone la HR, sino existe la coloco en el Hash de guias sin completar para mostrarla nuevamente.
                if (hGuiasIngresadas.ContainsKey(item.GuiaID) == false)
                {
                    ok = false;
                    hGuiasSinCompletar.Add(item.GuiaID, item.NroCompletoGuia);
                }
            }
            //SFE: 22/08/2012. Fin

            // Este dsDetalle contiene las guias ingresadas y que pertenecen a la HRepartidor, va a servir para marcarlas en la pagina de atras (la que llama).
            Session["DsDetalleHojaRutaRepartidor"] = dsDetalle;
            Session["GuiasNR"] = hGuiasNR;
            Session["hRemitosFaltaIngresarDatos"] = hRemitosFaltaIngresarDatos;
            Session["hGuiasSinCompletar"]         = hGuiasSinCompletar;
            Session["hGuiasIngresadas"]           = hGuiasIngresadas;

            StringBuilder scriptRedirect = new StringBuilder();

            if (ok)
            {
                Session["GuiasDefectuosas"]   = null;
                Session["hGuiasIngresadas"]   = null;
                Session["hGuiasSinCompletar"] = null;

                StringBuilder scriptFinal = new StringBuilder();
                scriptFinal.Append("<script type=\"text/javascript\">\n");
                scriptFinal.Append("window.close();\n");
                scriptFinal.Append("</script>");
                Page.RegisterStartupScript("DatosRegistrados", scriptFinal.ToString());
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;;

                Hashtable hGuiasNr = new Hashtable();
                if (Session["GuiasNR"] != null)
                {
                    hGuiasNr = (Hashtable)Session["GuiasNR"];

                    if (hGuiasNr.Count > 0)
                    {
                        MostrarGuiasNoConformables(hGuiasNr);
                    }
                }
                else
                {
                    this.lblMensaje.Visible = false;
                }

                if (Session["hRemitosFaltaIngresarDatos"] != null && ((Hashtable)Session["hRemitosFaltaIngresarDatos"]).Count > 0)
                {
                    // Si hay remitos que no se conformaron por falta de ingreso de datos. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarRemitosSinConformarPorFaltaDatos();
                }
                if (Session["hGuiasSinCompletar"] != null && ((Hashtable)Session["hGuiasSinCompletar"]).Count > 0)
                {
                    // Si hay guias que pertenecen a la HRepartidor y no se ingresaron. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarGuiasNoIngresadas();
                }
            }
        }
        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 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");
            }
        }
예제 #16
0
        private void CalcularImportes()
        {
            double pesoAf   = (this.txtPesoTotalAforado.Text == "")? 0 : Convert.ToDouble(this.txtPesoTotalAforado.Text);
            double pesoReal = (this.txtPeso.Text == "")? 0 : Convert.ToDouble(this.txtPeso.Text);

            //Crear instancia de la que resuelve los calculos de los importes

            //Cargar los datos necesarios para calcular el importe del flete
            admGuiaO.PesoKgReal = pesoReal;
            if (this.txtAlto.Text != "" && this.txtAncho.Text != "" && this.txtLargo.Text != "")
            {
                admGuiaO.VolumenTotal = Convert.ToDouble(this.txtAlto.Text) * Convert.ToDouble(this.txtAncho.Text) * Convert.ToDouble(this.txtLargo.Text);
            }

            double pesoAfM3 = 0;


            /*SFE: 22/03/2013. Valor de conversion a M3. Si se ingresa un valor en el campo de conversion, hay que calcular en base a esto*/
            if (txtM3.Text.Length > 0 && txtM3.Text.Trim() != string.Empty && txtM3.Text != "0")
            {
                double valorConversionM3 = 0;

                //Si es cliente corporativo, buscar el parametro para el convenio y la unidad de venta.
                if (admGuiaO.ClienteCorpRemitente.ClienteID != 0 || (admGuiaO.ClienteCorpDestinatario.ClienteID != 0 && admGuiaO.AgenteGuiaPagoID == NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario))
                {
                    admGuiaO.UnidadVentaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                    valorConversionM3      = admGuiaO.ObtenerValorConversionM3ClienteCorp();
                    //Si no está definido, buscar el parámetro por Unidad de Venta.
                    if (valorConversionM3 == 0)
                    {
                        // Busco la Unidad de Venta y consulto si tiene definido un valor de conversion m3
                        int          uniVenta = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                        IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                        uVenta.UnidadVentaID = uniVenta;
                        uVenta.Consultar();

                        if (uVenta.ValorConversionM3 != 0) //tiene definido un valor de conversion de m3, usarlos
                        {
                            valorConversionM3 = uVenta.ValorConversionM3;
                        }
                        else // si no esta definido a nivel de Unidad de Venta tengo que utilizar el de parámetro general
                        {
                            IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                            paramMin.UnidadNegocioID = this.UnidadNegocioID;
                            paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorConversionM3;
                            paramMin.Consultar();
                            valorConversionM3 = Convert.ToDouble(paramMin.ValorString);
                        }
                    }
                }
                // Si es cliente eventual, buscar valor de conversion a nivel de unidad de venta
                else
                {
                    // Busco la Unidad de Venta y consulto si tiene definido un valor de conversion m3
                    int          uniVenta = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                    IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                    uVenta.UnidadVentaID = uniVenta;
                    uVenta.Consultar();

                    if (uVenta.ValorConversionM3 != 0)
                    {
                        valorConversionM3 = uVenta.ValorConversionM3;
                    }
                    else
                    // si no esta definido a nivel de Unidad de Venta tengo que utilizar el de parámetro general
                    {
                        IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                        paramMin.UnidadNegocioID = this.UnidadNegocioID;
                        paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorConversionM3;
                        paramMin.Consultar();
                        valorConversionM3 = Convert.ToDouble(paramMin.ValorString);
                    }
                }
                //Si se encontró algun valor de conversion.
                if (valorConversionM3 > 0)
                {
                    admGuiaO.MetrosCubicos = Utiles.Validaciones.obtieneDouble(txtM3.Text);
                    pesoAfM3 = admGuiaO.MetrosCubicos * valorConversionM3;
                }
            }

            double pesoTotalAforado = (pesoAf > pesoReal) ? pesoAf : pesoReal;

            if (pesoAfM3 > 0)
            {
                if (pesoTotalAforado > pesoAfM3)
                {
                    admGuiaO.PesoTotal = pesoTotalAforado;
                }
                else
                {
                    admGuiaO.PesoTotal = pesoAfM3;
                }
            }
            else
            {
                admGuiaO.PesoTotal = (pesoAf > pesoReal)? pesoAf : pesoReal;
            }

            admGuiaO.CantBultos = Convert.ToInt32(this.txtBultos.Text);

            admGuiaO.UnidadVentaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);

            admGuiaO.ModalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlModalidadEntrega.SelectedValue);

            admGuiaO.LimiteKg = 3000;
            admGuiaO.PorcentajeBonificacionAutorizacion = 0;
            admGuiaO.ImporteACobrarAutorizacion         = 0;

            admGuiaO.ValorDeclarado = Convert.ToDouble(this.txtValorDeclarado.Text);

            int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlModalidadEntrega.SelectedValue);

            //admGuiaO.UnidadNegocioID = this.UnidadNegocioID;
            IAgencia agencia = AgenciaFactory.GetAgencia();

            agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente), 1, 0, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, false);
            if (agencia.AgenciaID != 0)
            {
                admGuiaO.AgenciaOrigenID = agencia.AgenciaID;
            }
            else
            {
                throw new Exception("No es posible realizar el envío desde el origen hacia el destino seleccionado.");
            }

            agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario), 0, 1, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, false);
            if (agencia.AgenciaID != 0)
            {
                admGuiaO.AgenciaDestinoID = agencia.AgenciaID;
            }
            else
            {
                throw new Exception("No es posible realizar el envío desde el origen hacia el destino seleccionado.");
            }

            admGuiaO.TipoDestinoID = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia;

            //Por si hay que calcular comision de contrareembolso
            admGuiaO.ImporteCRGuia = 0;             //(this.txtImporteContraReembolso.Text== "")? 0 : Convert.ToDouble(this.txtImporteContraReembolso.Text);
            //admGuiaO.ImporteCRGuia = admGuiaO.ValorDeclarado;

            admGuiaO.PagaEntregaEnDomicilio        = false;     //this.chkPagaEnDomicilio.Checked;
            admGuiaO.PromocionServicioTransporteID = 0;

            admGuiaO.BonificacionAgencia = 0;  //Utiles.Validaciones.obtieneEntero(this.txtBonificacionAgencia.Text);
            admGuiaO.UsuarioID           = 1;  //this.usuario.UsuarioID;

            //esto le indica a AdminstracionGuias, que la agencia que calcula los importes
            //es automatizada, por lo tanto debe tener en cuenta el área de influencia
            admGuiaO.NoAutomatizada  = false;
            admGuiaO.UnidadNegocioID = 1;

            admGuiaO.ClienteEventRemitente.Domicilio.Localidad.LocalidadID           = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
            admGuiaO.ClienteEventDestinatario.Domicilio.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
            admGuiaO.ClienteEventRemitente.Domicilio.Localidad.CodigoPostal          = ddlCodigoPostalRemitenteCodigo;
            admGuiaO.ClienteEventDestinatario.Domicilio.Localidad.CodigoPostal       = ddlCodigoPostalDestinatarioCodigo;
            admGuiaO.ClienteEventRemitente.Domicilio.OCodigoPostal.CodigoPostalID    = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);
            admGuiaO.ClienteEventDestinatario.Domicilio.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);


            admGuiaO.NoCalcularPromociones = false;

            admGuiaO.CalcularImportes();

            this.lblBonificacion.Text = "";
            this.lblNombrePromo.Text  = "";

            if (admGuiaO.TipoPromocion == 1)
            {
                IPromocionOrigenDestinoUVenta promo = PromocionOrigenDestinoUVentaFactory.GetPromocionOrigenDestinoUVenta();
                promo.PromocionOrigenDestinoUVentaID = admGuiaO.PromoID;
                promo.UnidadNegocioID = 1;
                promo.Consultar();

                if (promo.IncrementoBonificacionPorcentaje < 0 && promo.IncrementoBonificacionImporteFijo <= 0)
                {
                    this.lblNombrePromo.Text = " - Promoción: " + promo.PromocionOrigenDestinoUVentaDescrip;
                    string bonificacion = "";
                    if (promo.IncrementoBonificacionPorcentaje < 0)
                    {
                        bonificacion = promo.IncrementoBonificacionPorcentaje.ToString() + "%";
                    }
                    else if (promo.IncrementoBonificacionImporteFijo < 0)
                    {
                        bonificacion = "$ " + promo.IncrementoBonificacionImporteFijo.ToString();
                    }

                    this.lblBonificacion.Text = "(" + bonificacion + ")";
                }
            }

            if (admGuiaO.TipoGuia == "A" || admGuiaO.TipoGuia == "E")
            {
                this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete);
                this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro);
                this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro);
                //if(!this.chkPagaEnDomicilio.Checked)
                this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega);
                //else
                //	this.lblImporteEntrega.Text = "0";
                this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR);
                this.lblImporteNeto.Text         = Formatos.Importe(admGuiaO.ImporteNetoTotal);
                this.lblImporteIVAInscripto.Text = Formatos.Importe(admGuiaO.ImporteIVAInscripto);
                //}
            }
            else
            {
                this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete + admGuiaO.ImporteFleteIVA);                 //+ admGuiaO.ImporteRedespachoIVA
                this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro + admGuiaO.ImporteSeguroIVA);
                this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro + admGuiaO.ImporteRetiroIVA);
                //if(!this.chkPagaEnDomicilio.Checked)
                this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega + admGuiaO.ImporteEntregaIVA);
                //else
                //	this.lblImporteEntrega.Text = "0";
                this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR + admGuiaO.ImporteComisCRIVA);
                this.lblImporteIVAInscripto.Text = "";
                this.lblImporteNeto.Text         = "";
                //}
            }

            this.lblImporteRedondeo.Text    = Formatos.Importe(admGuiaO.ImporteRedondeo);
            this.lblImporteTotalCobrar.Text = Formatos.Importe(admGuiaO.ImporteTotalCobrar);
        }
        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);
            }
        }
예제 #18
0
        private bool Anular()
        {
            try
            {
                IAgencia oAgencia = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = this.AgenciaConectadaID;

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                            //Session["AdmGuia"] = admGuiaO;

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

                    /////////************************************************************************************************************************//////
                    factura  = null;
                    oAgencia = null;
                    return(bOk);
                }
                else
                {
                    oAgencia = null;
                    Exception ex = new Exception("Solo la agencia emisora puede anular la factura.");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Usuario"] != null)
            {
                this.usuario = (IUsuarios)Session["Usuario"];
            }

            #region Reportes

            string permiteReportes   = System.Configuration.ConfigurationSettings.AppSettings["Server"];
            string dirServerReportes = System.Configuration.ConfigurationSettings.AppSettings["DirServerReportes"];

            if (permiteReportes == "P")
            {
                // si no permite reportes, entonces redirecciona al servidor de reportes
                string pass = Session["Pass"] != null ? Session["Pass"].ToString() : "";
                Response.Redirect(dirServerReportes + "Redirecciona.aspx?LoginRedir=" + this.UsuarioConectadoID + "&p=" + pass + "&Pagina=ReporteUnidadesLogisticasMovimiento.aspx");
            }
            #endregion

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

            if (!IsPostBack)
            {
                CargarCombos();
            }

            // obtengo los datos de los parametros generales, para determinar si la agencia conectada es la
            // administración.
            // si no es administración, sólo le permito consultar los datos correspondientes a la agencia
            // conectada
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
            param.Consultar();
            int       agenciaAdministracionID = Utiles.Validaciones.obtieneEntero(param.ValorString);
            IUsuarios usuario = (IUsuarios)Session["Usuario"];
            if (usuario.AgenciaID != 0 && this.AgenciaConectadaID != agenciaAdministracionID)
            {
                this.busqAgencia.AgenciaID = this.AgenciaConectadaID.ToString();
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaID = this.AgenciaConectadaID;
                agencia.ConsultarBasico();
                ((TextBox)((Control)busqAgencia).FindControl("txtSucursal")).Enabled    = false;
                ((TextBox)((Control)busqAgencia).FindControl("txtSucursal")).Text       = agencia.SucursalDGI.ToString();
                ((TextBox)((Control)busqAgencia).FindControl("txtRazonSocial")).Text    = agencia.RazonSocial;
                ((TextBox)((Control)busqAgencia).FindControl("txtRazonSocial")).Enabled = false;
                busqAgencia.tdConsulta.Visible = false;
                this.tblAgenciaAdministracion.Attributes.Add("Style", "Display: none");
                this.tblAgencia.Attributes.Add("Style", "Display: inline");
            }
            else
            {
                this.tblAgenciaAdministracion.Attributes.Add("Style", "Display: inline");
                this.tblAgencia.Attributes.Add("Style", "Display: none");
                agenciaConectadaEsAdministracion = true;
            }
        }
        private void ChequearGuia()
        {
            //CHEQUEAR QUE LA GUIA SEA DE RENDICION
            if (Convert.ToInt32(this.txtTipoFactura.Text) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion)
            {
                Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía ingresada no es de rendición"));
            }

            //CHEQUEAR AGENCIA DESTINO
            int agenciaDestParam;

            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
            param.Consultar();
            agenciaDestParam = Convert.ToInt32(param.ValorString);
            if (this.AgenciaConectadaID != agenciaDestParam)
            {
                Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía de rendición tiene que ser recibida por la agencia de administración"));
            }


            //	CHEQUEAR ESTADOS
            IGuiaEstadoHistorico guiaEstadoHistorico = GuiaEstadoHistoricoFactory.GetGuiaEstadoHistorico();

            guiaEstadoHistorico.GuiaID = Convert.ToInt32(this.txtGuiaID.Text);
            DsGuiaEstadoHistorico ds = guiaEstadoHistorico.GetGuiaEstadoHistoricoDataSet();

            //Verifica que la guía no tenga el estado ANULADA
            //ANULADA --> EstadoCliente y Ninguno. En realidad es el estado: Anulada!!
            DsGuiaEstadoHistorico.DatosRow[] dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoAdministrativo
                                                                                                    + " AND EstadoGuiaID = " + (int)NegociosSisPackInterface.SisPack.ValorEstadoAdministrativo.Anulada);
            if (dr.Length > 0)
            {
                Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía se encuentra anulada"));
                this.butConfirmar.Enabled = false;
                return;
            }
            else
            {
                this.butConfirmar.Enabled = true;
            }



            //Verifica que la guía no tenga el estado CONFORMADA
            dr = null;
            dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoAdministrativo
                                                                   + " AND AgenciaID = " + this.AgenciaConectadaID, "GuiaEstadoHisID");
            if (dr.Length > 0)
            {
                //Recuperamos que el último estado de este tipo para la guia sea el que buscamos: Pendiente de entrega.
                if (dr[dr.Length - 1].EstadoGuiaID == (int)NegociosSisPackInterface.SisPack.ValorEstadoAdministrativo.Conformada)
                {
                    this.butConfirmar.Enabled = false;
                    Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía de rendición se encuentra conformada."));
                }
            }


            /* SFE: Comentado el 08/08/2011 . Por pedido en nuevo desarrollo de trazabilidad de rendiciones.
             *
             * //TRASBORDADA --> EstadoEstatico y EnAgenciaTrasbordo
             * //dr = null;
             * //dr = (DsGuiaEstadoHistorico.DatosRow[]) ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoEstatico
             * //    +" AND EstadoGuiaID = " + (int)NegociosSisPackInterface.SisPack.ValorEstadoEstatico.EnAgenciaDeTrasbordo);
             * //if (dr.Length > 0)
             * //{
             * //    Page.RegisterStartupScript("Imprimir",GenerarJavaScripts.MostrarMensaje("La guía se encuentra en Agencia de Trasbordo"));
             *
             * //}
             */

            // SFE: Comentado el 08/08/2011 . Por pedido en nuevo desarrollo de trazabilidad de rendiciones.

            /*
             * //Controla que la guia este asignada a una hoja de ruta y que la hoja de ruta esté confirmada
             * dr = null;
             * dr = (DsGuiaEstadoHistorico.DatosRow[]) ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoMovimiento, "GuiaEstadoHisID");
             * if (dr.Length > 0)
             * {
             *  //Recuperamos que el último estado de este tipo para la guia sea el que buscamos: En Viaje.
             *  if( dr[dr.Length-1].EstadoGuiaID == (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.EnViaje && guiaEstadoHistorico.HojaRutaConfirmada())
             *  {
             *
             *      this.butConfirmar.Enabled=true;
             *
             *  }
             *      else
             *      {
             *          this.butConfirmar.Enabled=false;
             *
             *          Page.RegisterStartupScript("Imprimir",GenerarJavaScripts.MostrarMensaje("La guía no se encuentra en condiciones de ser recibida,verificar que este asignada a una hoja de ruta o que la misma esté confirmada."));
             *
             *      }
             *  }	*/
        }
        /// <summary>
        /// Procedimiento para cargar los datos en las grillas
        /// </summary>
        private void BindGrid()
        {
            //  Busco los datos a cargar
            IReporteControlPlanillaRendicion reporte = ReporteControlPlanillaRendicionFactory.GetReporteControlPlanillaRendicion();

            this.txtNroPlanilla.Text = string.Empty;

            for (int i = lstNroPlanilla.Items.Count - 1; i >= 0; i--)
            {
                this.txtNroPlanilla.Text = this.txtNroPlanilla.Text + lstNroPlanilla.Items[i].Text + ',';
            }

            DsReporteControlPlanillaRendicion ds = reporte.Consultar(Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID), txtNroPlanilla.Text);

            // Guardo el DataSet en el objeto Session
            Session["DsReporteControlPlanillaRendicion"] = ds;
            // Reviso si se encontraron datos
            this.txtNroPlanilla.Text = string.Empty;
            if (ds.Detalle.Rows.Count > 0)
            {
                // Se encontraron datos.
                // Configuro los DataGrid
                SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosContado, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosCtaCte, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasConformadas, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioOrigenNoConfirmados, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioDestinoNoConfirmados, "GuiaId", this.CantidadOpciones);
                //dtgComprobantesEmitidosContado.Width = System.Web.UI.WebControls.Unit.Pixel(2400);

                // Cargo los comprobantes emitidos de contado
                dtgComprobantesEmitidosContado.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.ComprobantesEmitidosContado);
                dtgComprobantesEmitidosContado.DataBind();

                // Cargo los comprobantes emitidos de cta cte
                dtgComprobantesEmitidosCtaCte.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.ComprobantesEmitidosCtaCte);
                dtgComprobantesEmitidosCtaCte.DataBind();

                // Cargo los comprobantes conformados
                dtgGuiasConformadas.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasConformadas);
                dtgGuiasConformadas.DataBind();

                // Cargo los comprobantes con servicio origen no confirmados
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasEmitidasconServicioOrigenNoConfirmados);
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.DataBind();

                // Cargo los comprobantes con servicio destino no confirmados
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasConformadasconServicioDestinoNoConfirmados);
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.DataBind();

                // Muestro las grillas y sus labels
                dtgComprobantesEmitidosContado.Visible = true;
                dtgComprobantesEmitidosCtaCte.Visible  = true;
                dtgGuiasConformadas.Visible            = true;
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = true;
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.Visible = true;
                LblComprobantesEmitidosContado.Visible = true;
                LblComprobantesEmitidosCtaCte.Visible  = true;
                LblGuiasConformadas.Visible            = true;
                LblGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = true;
                LblGuiasEmitidasConServicioDestinoNoConfirmados.Visible = true;
                // Oculto el label de que no se encontraron registros
                LblNoseEncontraronRegistros.Visible = false;

                IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                param.UnidadNegocioID = this.UnidadNegocioID;
                param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.MultaACobrarPorComprobanteFaltante;
                param.Consultar();
                double multa      = Utiles.Validaciones.obtieneDouble(param.ValorString);
                int    totalGuias = Utiles.Validaciones.obtieneEntero(ds.Detalle.Compute("Count(GuiaID)", "TipoAgrupacion IS NOT NULL").ToString());

                txtValorMulta.Text    = multa.ToString();
                lblTotalGuias.Text    = totalGuias.ToString();
                lblMultaGuias.Text    = Utiles.Formatos.Moneda((totalGuias * multa));
                lblMulta.Visible      = true;
                lblMultaGuias.Visible = true;
                lblTotal.Visible      = true;
                lblTotalGuias.Visible = true;

                this.BtnGuardar.Enabled = true;
            }
            else
            {
                // No se encontraron datos. las grillas y sus respectivos labels
                dtgComprobantesEmitidosContado.Visible = false;
                dtgComprobantesEmitidosCtaCte.Visible  = false;
                dtgGuiasConformadas.Visible            = false;
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = false;
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.Visible = false;
                LblComprobantesEmitidosContado.Visible = false;
                LblComprobantesEmitidosCtaCte.Visible  = false;
                LblGuiasConformadas.Visible            = false;
                LblGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = false;
                LblGuiasEmitidasConServicioDestinoNoConfirmados.Visible = false;
                // Muestro el label de que no se encontraron registros
                LblNoseEncontraronRegistros.Visible = true;

                lblTotalGuias.Text = string.Empty;
                lblMultaGuias.Text = string.Empty;

                this.BtnGuardar.Enabled = false;
            }
        }
예제 #22
0
        private void BindGrid()
        {
            string errores = "";

            if (this.busqAgencia.AgenciaID.Length == 0)
            {
                errores += "Debe ingresar una agencia en particular.<br>";
            }

            if (this.rbtFecha.Checked)
            {
                if (this.txtFechaDesde.Text.Length == 0)
                {
                    errores += "Debe ingresar la Fecha Desde.<br>";
                }
                if (this.txtFechaHasta.Text.Length == 0)
                {
                    errores += "Debe ingresar la Fecha Hasta.<br>";
                }
            }
            else if (this.rbtNro.Checked)
            {
                try
                {
                    Convert.ToInt32(this.txtNroLiquidacion.Text);
                }
                catch (Exception ex)
                {
                    throw new Exception("Debe ingresar un número de liquidación válido.");
                }
                if (this.txtNroLiquidacion.Text.Length == 0)
                {
                    errores += "Debe ingresar el número de liquidación que desea consultar.<br>";
                }
            }

            if (errores.Length > 0)
            {
                throw new Exception(errores);
            }

            if (this.rbtFecha.Checked)
            {
                ILiquidacionEntidad liq = LiquidacionEntidadFactory.GetLiquidacionEntidad();
                liq.TipoEntidadComisionID = 1;
                liq.EntidadID             = Utiles.Validaciones.obtieneEntero(this.busqAgencia.AgenciaID);
                liq.FechaDesde            = Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaDesde.Text);
                liq.FechaHasta            = Utiles.Fechas.FormatFechaDDMMYYYY(this.txtFechaHasta.Text);
                liq.ConsultarByEntidadPeriodo();
                if (liq.NroLiquidacion == 0)
                {
                    throw new Exception("No se encontraron liqidaciones para el período seleccionado para la agencia: " + this.busqAgencia.RazonSocial);
                }
                this.txtNroLiquidacion.Text = liq.NroLiquidacion.ToString();
                porcIva = liq.PorcentajeIVA / 100;
            }
            else
            {
                ILiquidacionEntidad liq = LiquidacionEntidadFactory.GetLiquidacionEntidad();
                liq.TipoEntidadComisionID = 1;
                liq.EntidadID             = Utiles.Validaciones.obtieneEntero(this.busqAgencia.AgenciaID);
                liq.NroLiquidacion        = Utiles.Validaciones.obtieneEntero(this.txtNroLiquidacion.Text);
                if (liq.ConsultarByNroLiquidacion())
                {
                    this.txtFechaDesde.Text = liq.FechaDesde.ToShortDateString();
                    this.txtFechaHasta.Text = liq.FechaHasta.ToShortDateString();
                    porcIva = liq.PorcentajeIVA / 100;
                }
                else
                {
                    throw new Exception("La liquidación consultada no existe para la agencia: " + this.busqAgencia.RazonSocial);
                }
            }

            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.PorcentajeIVA;
            param.Consultar();

            //porcIva = Utiles.Validaciones.obtieneDouble(param.ValorString)/100;
            BindGridRendicion(0);
            BindGridAdministracion(0);
            BindGridReclamos(0);

            total = totalAdministracion - totalReclamos;
            this.lblImportePago.Text    = "$" + Utiles.Formatos.Importe(total);
            this.lblTotalPagar.Visible  = true;
            this.lblImportePago.Visible = true;
            this.butImprimir.Enabled    = true;

            this.dtgComisionesRendicion.Visible      = true;
            this.dtgComisionesAdministracion.Visible = true;
            this.dtgReclamos.Visible = true;
        }
예제 #23
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");
            }
        }
예제 #24
0
        private void LlenarControl(DsGuiaFacturaImpresion ds, SisPacK.UC.ImprimirGuiaPreENB impresion, int numeroHojaAGenerar)
        {
            bool ultimoBultoCargado = false;
            // obtengo el valor de división para el calculo del peso aforado
            IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();

            param.UnidadNegocioID = this.UnidadNegocioID;
            param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorDivisionCalculoPesoAforado;
            param.Consultar();
            int valorDivisionCalculoPesoAforado = Utiles.Validaciones.obtieneEntero(param.ValorString);

            // da una sola vuelta por el bucle
            foreach (DsGuiaFacturaImpresion.DatosRow dr in ds.Datos.Rows)
            {
                // Tipo guía y número de guía
                impresion.TipoGuia = dr.IsTipoGuiaNull() ? "" : dr.TipoGuia;
                impresion.NroGuia  = (dr.IsNroSucursalGuiaNull() ? "" : dr.NroSucursalGuia.ToString()) + "-" + (dr.IsNroGuiaNull() ? "" : dr.NroGuia.ToString()) + "-" + (dr.IsTipoGuiaNull() ? "" : dr.TipoGuia);
                // Fecha de emisión
                impresion.FechaEmision = dr.IsFechaEmisionNull() ? "" : dr.FechaEmision;
                // Datos de la agencia emisora
                impresion.NombreAgenciaOrigen    = dr.IsNombreAgenciaOrigenNull() ? "" : dr.NombreAgenciaOrigen;
                impresion.DireccionAgenciaOrigen = dr.IsDireccionAgenciaOrigenNull() ? "" : dr.DireccionAgenciaOrigen;
                impresion.FechaInicioActividad   = dr.IsFechaInicioActividadesNull() ? "" : dr.FechaInicioActividades.ToString("dd/MM/yyyy");
                impresion.TelefonoAgenciaOrigen  = dr.IsTelefonoAgenciaOrigenNull() ? "" : dr.TelefonoAgenciaOrigen;
                impresion.LocalidadAgenciaOrigen = dr.IsLocalidadAgenciaOrigenNull() ? "" : dr.LocalidadAgenciaOrigen;
                // Datos del remitente
                impresion.NombreRemitente    = dr.IsNombreRemitenteNull() ? "" : dr.NombreRemitente;
                impresion.DireccionRemitente = dr.IsDireccionRemitenteNull() ? "" : dr.DireccionRemitente;
                impresion.LocalidadRemitente = dr.IsLocalidadRemitenteNull() ? "" : dr.LocalidadRemitente;
                impresion.ProvinciaRemitente = dr.IsProvinciaRemitenteNull() ? "" : dr.ProvinciaRemitente;
                impresion.TelefonoRemitente  = dr.IsTelefonoRemitenteNull() ? "" : dr.TelefonoRemitente;
                // Datos fiscales del agente de pago
                if (dr.IsCondicionIvaAgentePagoNull() == false)
                {
                    ICondicionIva condicionIVA = CondicionIvaFactory.GetCondicionIva();
                    condicionIVA.CondicionIvaID = dr.CondicionIvaAgentePago;
                    condicionIVA.Consultar();
                    impresion.CondicionIVAAgentePago = condicionIVA.CondicionIvaDescrip;
                }
                impresion.NroCUITAgentePago = dr.IsNroCuitAgentePagoNull() ? "" : dr.NroCuitAgentePago;
                // Forma de pago
                if (dr.IsEsContadoNull() == false && dr.EsContado)
                {
                    impresion.FormaDePago = "Contado";
                }
                else
                {
                    impresion.FormaDePago = "Cuenta Corriente";
                }
                // Datos del destinatario
                if (dr.IsNombreEmpresaDestinatarioNull() == false && dr.NombreEmpresaDestinatario != "")
                {
                    impresion.NombreDestinatario = dr.NombreEmpresaDestinatario;
                }
                else
                {
                    impresion.NombreDestinatario = dr.IsNombrePersonaDestinatarioNull() ? "" : dr.NombrePersonaDestinatario;
                }
                impresion.DireccionDestinatario = dr.IsDireccionDestinatarioNull() ? "" : dr.DireccionDestinatario;
                impresion.LocalidadDestinatario = dr.IsLocalidadDestinatarioNull() ? "" : dr.LocalidadDestinatario;
                impresion.ProvinciaDestinatario = dr.IsProvinciaDestinatarioNull() ? "" : dr.ProvinciaDestinatario;
                impresion.TelefonoDestinatario  = dr.IsTelefonoDestinatarioNull() ? "" : dr.TelefonoDestinatario;

                // Genero la primera parte del código de barra
                string auxCodigoBarra = "";
//				if (impresion.TipoGuia == "A")
//					auxCodigoBarra = "3";
//				else if (impresion.TipoGuia == "B")
//					auxCodigoBarra = "4";

                auxCodigoBarra  = NegociosSisPackInterface.SisPack.TipoGuia(impresion.TipoGuia.Trim());
                auxCodigoBarra += dr.IsNroSucursalGuiaNull() ? "" : dr.NroSucursalGuia;
                auxCodigoBarra += dr.IsNroGuiaNull() ? "" : dr.NroGuia.ToString("000000");
                // Cargo el detalle de la guía
                System.Collections.ArrayList detalleItems = new ArrayList();
                // Cargo los bultos
                for (int indiceBulto = 0; indiceBulto < SisPacK.UC.ImprimirGuiaPreENB.CantidadMaximaBultosPorHoja && ((numeroHojaAGenerar - 1) * SisPacK.UC.ImprimirGuiaPreENB.CantidadMaximaBultosPorHoja) + indiceBulto < cantidadTotalBultosDeLaGuia; indiceBulto++)
                {
                    SisPacK.UC.ImprimirGuiaPreENB_Item item = new SisPacK.UC.ImprimirGuiaPreENB_Item();
                    item.CodigoBarra = auxCodigoBarra
                                       + (((numeroHojaAGenerar - 1) * SisPacK.UC.ImprimirGuiaPreENB.CantidadMaximaBultosPorHoja) + indiceBulto + 1).ToString("000")
                                       + ".jpg";
                    // Reviso si es el último bulto
                    if (((numeroHojaAGenerar - 1) * SisPacK.UC.ImprimirGuiaPreENB.CantidadMaximaBultosPorHoja) + indiceBulto + 1 == cantidadTotalBultosDeLaGuia)
                    {
                        // Es el último bulto
                        item.Descripcion  = cantidadTotalBultosDeLaGuia.ToString() + " bultos";
                        item.PesoEfectivo = dr.IsPesoTotalNull() ? "" : dr.PesoTotal.ToString() + " Kgs";
                        if (dr.IsVolumenTotalNull() == false && dr.VolumenTotal > 0)
                        {
                            item.PesoAforado = (dr.VolumenTotal / valorDivisionCalculoPesoAforado).ToString();
                        }
                        else
                        {
                            item.PesoAforado = "";
                        }
                        //"Falta";
                        item.Importe       = dr.IsImporteFleteNacionalNull() ? "" : dr.ImporteFleteNacional.ToString("$ #,###0.00");
                        ultimoBultoCargado = true;
                    }
                    else
                    {
                        // No es el último bulto
                        item.Descripcion  = "";
                        item.PesoEfectivo = "";
                        item.PesoAforado  = "";
                        item.Importe      = "";
                    }
                    item.RepresentaUnBulto = true;
                    item.NumeroBulto       = ((numeroHojaAGenerar - 1) * SisPacK.UC.ImprimirGuiaPreENB.CantidadMaximaBultosPorHoja) + indiceBulto + 1;
                    detalleItems.Add(item);
                }
                // Reviso si se cargo el último bulto
                if (ultimoBultoCargado)
                {
                    // Si se cargo.
                    // Reviso si la guía tiene seguro
                    if (dr.IsImporteSeguroNull() == false && dr.ImporteSeguro > 0)
                    {
                        // La guía si tiene seguro. Lo cargo en el detalle
                        SisPacK.UC.ImprimirGuiaPreENB_Item item = new SisPacK.UC.ImprimirGuiaPreENB_Item();
                        item.Descripcion       = "Seguro";
                        item.Importe           = dr.ImporteSeguro.ToString("$ #,###0.00");
                        item.RepresentaUnBulto = false;
                        detalleItems.Add(item);
                    }
                    // Reviso si la guía tiene importe de retiro
                    if (dr.IsImporteRetiroNull() == false && dr.ImporteRetiro > 0)
                    {
                        // La guía si tiene importe de retiro. Lo Cargo en el detalle
                        SisPacK.UC.ImprimirGuiaPreENB_Item item = new SisPacK.UC.ImprimirGuiaPreENB_Item();
                        item.Descripcion       = "Retiro de domicilio";
                        item.Importe           = dr.ImporteRetiro.ToString("$ #,###0.00");
                        item.RepresentaUnBulto = false;
                        detalleItems.Add(item);
                    }
                    // Reviso si la guía tiene importe de entrega
                    if (dr.IsImporteEntregaNull() == false && dr.ImporteEntrega > 0)
                    {
                        // La guía si tiene importe de entrega. Lo Cargo en el detalle
                        SisPacK.UC.ImprimirGuiaPreENB_Item item = new SisPacK.UC.ImprimirGuiaPreENB_Item();
                        item.Descripcion       = "envio a domicilio";
                        item.Importe           = dr.ImporteEntrega.ToString("$ #,###0.00");
                        item.RepresentaUnBulto = false;
                        detalleItems.Add(item);
                    }
                    // Reviso si la guía tiene importe de comisión contra reembolso
                    // impresion.ImporteComisContraReembolso = dr.IsImporteComisContraReembolsoNull() ? "" : Utiles.Formatos.Importe(dr.ImporteComisContraReembolso);
                    if (dr.IsImporteComisContraReembolsoNull() == false && dr.ImporteComisContraReembolso > 0)
                    {
                        // La guía si tiene importe de comisión contra reembolso. Lo Cargo en el detalle
                        SisPacK.UC.ImprimirGuiaPreENB_Item item = new SisPacK.UC.ImprimirGuiaPreENB_Item();
                        item.Descripcion       = "Comision contrareembolso";
                        item.Importe           = dr.ImporteComisContraReembolso.ToString("$ #,###0.00");
                        item.RepresentaUnBulto = false;
                        detalleItems.Add(item);
                    }
                }
                // Cargo el detalle de items
                impresion.DetalleItems = detalleItems;
                // Totales
                if (ultimoBultoCargado)
                {
                    impresion.ImporteNetoTotal  = dr.IsImporteNetoTotalNull() ? "" : Utiles.Formatos.Importe(Utiles.Validaciones.obtieneDouble(dr.ImporteNetoTotal));
                    impresion.IvaInscriptoTotal = dr.IsIVAInscriptoTotalNull() ? "" : Utiles.Formatos.Importe(Utiles.Validaciones.obtieneDouble(dr.IVAInscriptoTotal));
                    impresion.ImporteTotalGuia  = dr.IsImporteTotalGuiaNull() ? "" : Utiles.Formatos.Importe(dr.ImporteTotalGuia);
                    impresion.ImprimirTotales   = true;
                }
                // Datos de autoimpresión
                impresion.NumeroCAI           = dr.IsNumeroCAINull() ? "" : dr.NumeroCAI;
                impresion.FechaVencimientoCAI = dr.IsFechaVencimientoCAINull() ? "" : dr.FechaVencimientoCAI.ToString("dd/MM/yyyy");
                impresion.CodigoAutoImpresor  = dr.IsNroEstablicimientoNull() ? "" : dr.NroEstablicimiento;
                // Valor asegurado por bulto
                impresion.ValorAseguradoPorBulto = dr.IsValorDeclaradoBultoNull() ? "" : dr.ValorDeclaradoBulto.ToString("$ #,###0.00");
                // Información varia
                IUsuarios usuario = (IUsuarios)Session["Usuario"];
                impresion.Cajero       = usuario.Login;
                impresion.TotalBultos  = cantidadTotalBultosDeLaGuia.ToString();
                impresion.NroSeguridad = nroSeguridad;
                break;
            }
        }
예제 #25
0
        private void CalcularImportes()
        {
            bool esValido = true;

            RequiredFieldValidator reqUnidadVenta = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validUVenta");

            reqUnidadVenta.Enabled = true;
            reqUnidadVenta.Validate();
            if (!reqUnidadVenta.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqME = (RequiredFieldValidator)this.phValidModalidadEntrega.FindControl("validME");

            reqME.Enabled = true;
            reqME.Validate();
            if (!reqME.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqBultos = (RequiredFieldValidator)this.phValidBultos.FindControl("validBultos");

            reqBultos.Enabled = true;
            reqBultos.Validate();
            if (!reqBultos.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqPeso = (RequiredFieldValidator)this.phValidPeso.FindControl("validPeso");

            reqPeso.Enabled = true;
            reqPeso.Validate();
            if (!reqPeso.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqValorDeclarado = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validDeclarado");

            reqValorDeclarado.Enabled = true;
            reqValorDeclarado.Validate();
            if (!reqValorDeclarado.IsValid)
            {
                esValido = false;
            }

            if (esValido)
            {
                double pesoAf   = (this.txtPesoTotalAforado.Text == "") ? 0 : Convert.ToDouble(this.txtPesoTotalAforado.Text);
                double pesoReal = (this.txtPeso.Text == "") ? 0 : Convert.ToDouble(this.txtPeso.Text);

                //Crear instancia de la que resuelve los calculos de los importes

                //Cargar los datos necesarios para calcular el importe del flete
                admGuiaO.PesoKgReal = pesoReal;
                if (this.txtAlto.Text != "" && this.txtAncho.Text != "" && this.txtLargo.Text != "")
                {
                    admGuiaO.VolumenTotal = Convert.ToDouble(this.txtAlto.Text) * Convert.ToDouble(this.txtAncho.Text) * Convert.ToDouble(this.txtLargo.Text);
                }

                double pesoAfM3 = 0;

                /*SFE: 22/03/2013. Valor de conversion a M3. Si se ingresa un valor en el campo de conversion, hay que calcular en base a esto*/
                if (txtM3.Text.Length > 0 && txtM3.Text.Trim() != string.Empty && txtM3.Text != "0")
                {
                    double valorConversionM3 = 0;

                    //Si es cliente corporativo, buscar el parametro para el convenio y la unidad de venta.
                    if (admGuiaO.ClienteCorpRemitente.ClienteID != 0 || (admGuiaO.ClienteCorpDestinatario.ClienteID != 0 && admGuiaO.AgenteGuiaPagoID == NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario))
                    {
                        admGuiaO.UnidadVentaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                        valorConversionM3      = admGuiaO.ObtenerValorConversionM3ClienteCorp();
                        //Si no está definido, buscar el parámetro por Unidad de Venta.
                        if (valorConversionM3 == 0)
                        {
                            // Busco la Unidad de Venta y consulto si tiene definido un valor de conversion m3
                            int          uniVenta = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                            IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                            uVenta.UnidadVentaID = uniVenta;
                            uVenta.Consultar();

                            if (uVenta.ValorConversionM3 != 0) //tiene definido un valor de conversion de m3, usarlos
                            {
                                valorConversionM3 = uVenta.ValorConversionM3;
                            }
                            else // si no esta definido a nivel de Unidad de Venta tengo que utilizar el de parámetro general
                            {
                                IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                                paramMin.UnidadNegocioID = this.UnidadNegocioID;
                                paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorConversionM3;
                                paramMin.Consultar();
                                valorConversionM3 = Convert.ToDouble(paramMin.ValorString);
                            }
                        }
                    }

                    //Si se encontró algun valor de conversion.
                    if (valorConversionM3 > 0)
                    {
                        admGuiaO.MetrosCubicos = Utiles.Validaciones.obtieneDouble(txtM3.Text);
                        pesoAfM3 = admGuiaO.MetrosCubicos * valorConversionM3;
                    }
                }

                double pesoTotalAforado = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                if (pesoAfM3 > 0)
                {
                    if (pesoTotalAforado > pesoAfM3)
                    {
                        admGuiaO.PesoTotal = pesoTotalAforado;
                    }
                    else
                    {
                        admGuiaO.PesoTotal = pesoAfM3;
                    }
                }
                else
                {
                    admGuiaO.PesoTotal = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                }

                admGuiaO.CantBultos = Convert.ToInt32(this.txtBultos.Text);

                admGuiaO.UnidadVentaID      = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                admGuiaO.ModalidadEntregaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlModalidadEntrega.UniqueID]);

                admGuiaO.LimiteKg = 3000;
                admGuiaO.PorcentajeBonificacionAutorizacion = 0;
                admGuiaO.ImporteACobrarAutorizacion         = 0;

                admGuiaO.ValorDeclarado = Convert.ToDouble(this.txtValorDeclarado.Text);

                int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlModalidadEntrega.SelectedValue);

                //admGuiaO.UnidadNegocioID = this.UnidadNegocioID;
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente), 1, 0, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaOrigenID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío desde el origen seleccionado.");
                }


                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario), 0, 1, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaDestinoID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío hacia el destino seleccionado.");
                }

                int agenciaDestino = admGuiaO.AgenciaDestinoID;
                if (agenciaDestino > 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia;
                    admGuiaO.AgenciaDestinoID = agenciaDestino;
                }
                else if (agenciaDestino < 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.PuntoRecepcion;
                    admGuiaO.AgenciaDestinoID = agenciaDestino * -1;
                }

                //Por si hay que calcular comision de contrareembolso
                admGuiaO.ImporteCRGuia = 0;//(this.txtImporteContraReembolso.Text== "")? 0 : Convert.ToDouble(this.txtImporteContraReembolso.Text);
                //admGuiaO.ImporteCRGuia = admGuiaO.ValorDeclarado;

                admGuiaO.PagaEntregaEnDomicilio        = false;//this.chkPagaEnDomicilio.Checked;
                admGuiaO.PromocionServicioTransporteID = 0;

                admGuiaO.BonificacionAgencia = 0; //Utiles.Validaciones.obtieneEntero(this.txtBonificacionAgencia.Text);
                admGuiaO.UsuarioID           = 1; //this.usuario.UsuarioID;

                //esto le indica a AdminstracionGuias, que la agencia que calcula los importes
                //es automatizada, por lo tanto debe tener en cuenta el área de influencia
                admGuiaO.NoAutomatizada                 = false;
                admGuiaO.UnidadNegocioID                = 1;
                admGuiaO.ClienteCorp.ClienteID          = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.Nombre    = "";
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.CodigoPostal            = CodPostalRemitente;
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);

                admGuiaO.ClienteCorpDestinatario.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.CodigoPostal            = CodPostalDestinatario;
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.Nombre = "";

                admGuiaO.RemiEsCorporativo = true;
                admGuiaO.DestEsCorporativo = true;
                admGuiaO.AgentePagoEsClienteCorporativo = true;
                admGuiaO.CalcularImportes();

                if (admGuiaO.TipoGuia == "A" || admGuiaO.TipoGuia == "E")
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete);
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR);
                    this.lblImporteNeto.Text         = Formatos.Importe(admGuiaO.ImporteNetoTotal);
                    this.lblImporteIVAInscripto.Text = Formatos.Importe(admGuiaO.ImporteIVAInscripto);
                    //}
                }
                else
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete + admGuiaO.ImporteFleteIVA); //+ admGuiaO.ImporteRedespachoIVA
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro + admGuiaO.ImporteSeguroIVA);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro + admGuiaO.ImporteRetiroIVA);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega + admGuiaO.ImporteEntregaIVA);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR + admGuiaO.ImporteComisCRIVA);
                    this.lblImporteIVAInscripto.Text = "";
                    this.lblImporteNeto.Text         = "";
                    //}
                }

                if (admGuiaO.TarifarioClienteFleteID > 0)
                {
                    ITarifarioClienteFlete tari = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                    tari.TarifarioClienteFleteID = admGuiaO.TarifarioClienteFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioClienteFleteDescrip;
                }
                else if (admGuiaO.TarifarioFleteID > 0)
                {
                    ITarifarioFlete tari = TarifarioFleteFactory.GetTarifarioFlete();
                    tari.TarifarioFleteID = admGuiaO.TarifarioFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioFleteDescrip;
                }
                else if (admGuiaO.TarifarioVentaRedespachoID > 0)
                {
                    ITarifario tari = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
                    tari.TarifarioID = admGuiaO.TarifarioVentaRedespachoID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("CRE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioClienteRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteEntregaID > 0)
                {
                    ITarifario tariEntrega = TarifarioFactory.GetTarifario("CRE");
                    tariEntrega.TarifarioID = admGuiaO.TarifarioClienteEntregaID;
                    tariEntrega.Consultar();
                    this.txtTarifarioEntrega.Text = tariEntrega.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioEntregaID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioEntregaID;
                    tariRetiro.Consultar();
                    this.txtTarifarioEntrega.Text = tariRetiro.TarifarioDescrip;
                }

                this.lblImporteRedondeo.Text    = Formatos.Importe(admGuiaO.ImporteRedondeo);
                this.lblImporteTotalCobrar.Text = Formatos.Importe(admGuiaO.ImporteTotalCobrar);
            }
        }
예제 #26
0
        private void butGuardarPrioridades_Click(object sender, System.EventArgs e)
        {
            for (int i = 0; i < lstUnidadesVenta.Items.Count; i++)
            {
                IUnidadVenta unidadVenta = UnidadVentaFactory.GetUnidadVenta();
                unidadVenta.UnidadVentaID = Convert.ToInt32(lstUnidadesVenta.Items[i].Value);
                //unidadVenta.UnidadVentaDescrip=lstUnidadesVenta.Items[i].Text.Trim();
                unidadVenta.UnidadNegocioID = this.UnidadNegocioID;
                unidadVenta.Prioridad       = i + 1;


                try
                {
                    if (unidadVenta.GuardarPrioridad())
                    {
                        string script = "<script language='javascript'>\n";
                        //script += "alert('Los datos se guardaron correctamente.');";
                        script += "window.location.href = 'UnidadesVentaConsul.aspx';\n";
                        script += "</script>";

                        Page.RegisterStartupScript("scriptOk", script);
                    }
                    else
                    {
                        string script = "<script language='javascript'>\n";
                        script += "alert('Los datos no se guardaron debido a errores.');\n";
                        script += "</script>";

                        Page.RegisterStartupScript("scriptError", script);
                    }
                }
                catch (Exception ex)
                {
                    string mensaje = ex.Message;
                    try
                    {
                        mensaje = this.TraducirTexto(ex.Message);
                        if (mensaje == "" || mensaje == null)
                        {
                            mensaje = ex.Message;
                        }
                    }
                    catch (Exception)
                    {
                        mensaje = ex.Message;
                    }
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                }
            }
            try
            {
                // Guardar la prioridad del trasbordo
                IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.PrioridadTrasbordo;
                param.UnidadNegocioID = this.UnidadNegocioID;
                param.ValorString     = this.ddlUVentaTras.SelectedValue;
                param.Guardar();
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;
                try
                {
                    mensaje = this.TraducirTexto(ex.Message);
                    if (mensaje == "" || mensaje == null)
                    {
                        mensaje = ex.Message;
                    }
                }
                catch (Exception)
                {
                    mensaje = ex.Message;
                }
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }
예제 #27
0
        private void btnLogin_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (!Page.IsValid)
                {
                    return;
                }

                IUsuarios usuario = UsuariosFactory.Identificar(txtUser.Text, txtPass.Text);

                bool usuarioValido = true;

                if (usuario == null)
                {
                    usuarioValido = false;
                }
                else if (usuario.UsuarioID == 0)
                {
                    usuarioValido = false;
                }

                if (!usuarioValido)
                {
                    string mensaje = string.Empty;
                    // Se van guardando los intentos fallidos.
                    this.txtIntentos.Text = (Convert.ToInt32(this.txtIntentos.Text) + 1).ToString();
                    // Obtenemos el parámetro de cantidad de intentos fallidos de ingreso al sistema.
                    IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                    param.UnidadNegocioID = 1;
                    param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.CantidadIntentosFallidos;
                    param.Consultar();
                    // Verificamos si se llegó a la cantidad permitida.
                    if (Convert.ToInt32(this.txtIntentos.Text) >= Convert.ToInt32(param.ValorString))
                    {
                        // Obtenemos el usuario a través del login.
                        IUsuarios user = UsuariosFactory.GetUsuario();
                        user.Login = this.txtUser.Text;
                        user.ConsultarByLogin();
                        if (user.UsuarioID > 0)
                        {
                            if (user.Email != null && user.Email.Trim().Length > 0) //mando el mail con la nueva contraseña
                            {
                                string NuevaClave = new Random().Next().ToString();
                                user.Clave = NuevaClave;
                                user.Guardar();
                                user.ServidorCorreo       = System.Configuration.ConfigurationSettings.AppSettings["ServidorCorreo"].ToString();
                                user.PuertoServidorCorreo = System.Configuration.ConfigurationSettings.AppSettings["PuertoServidorCorreo"].ToString();
                                user.UsuarioCorreo        = System.Configuration.ConfigurationSettings.AppSettings["UsuarioCorreo"].ToString();
                                user.ClaveCorreo          = System.Configuration.ConfigurationSettings.AppSettings["ClaveCorreo"].ToString();

                                user.MandarMail(NuevaClave);
                                mensaje          = "Por un reintento de ingreso con clave incorrecta su contraseña fue modificada. Se le ha enviado su nueva contraseña a su correo electrónico";
                                txtIntentos.Text = "0";
                            }
                            else // si no tiene mail lo bloqueamos
                            {
                                // Modificamos el estado del usuario a suspendido para bloquearlo.
                                user.EstadoUsuarioPerfilID = (int)NegociosSisPackInterface.SisPack.EstadoUsuarioPerfil.BloqueadoPorReintentosFallidosIngresoAlSistema;
                                user.Guardar();
                            }
                        }
                    }

                    this.Session.Abandon();
                    if (mensaje == string.Empty)
                    {
                        mensaje = this.TraducirTexto("Errores.Invalidos.Login");
                    }
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                    return;
                }

                // Verifico que la agencia asociada al usuario no este deshabilitada
                if (usuario.AgenciaID != 0)
                {
                    // Verificar el estado de la agencia
                    IAgencia agencia = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = Convert.ToInt32(usuario.AgenciaID);
                    agencia.Consultar();
                    if (agencia.EstadoAgencia == NegociosSisPackInterface.SisPack.EstadoAgencia.Deshabilitada)
                    {
                        this.Session.Abandon();
                        string mensaje = this.TraducirTexto("La agencia se encuentra deshabilitada");
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                        return;
                    }

                    agencia.GetConfiguracionHoraDespacho();
                    Session["ConfiguracionHoraRedespacho"] = agencia.HoraConfiguracionDespacho;
                    Session["ConfiguracionDiasDespacho"]   = agencia.DiasConfiguracionDespacho;
                }

                Session["Usuario"] = usuario;
                Session["Pass"]    = this.txtPass.Text;
                FormsAuthentication.RedirectFromLoginPage(usuario.Login, false);
                Session["PopUpInicial"] = null;

                Session["ScreenWidth"]  = Utiles.Validaciones.obtieneEntero(this.txtAncho.Text) - 10;
                Session["ScreenHeight"] = Utiles.Validaciones.obtieneEntero(this.txtAlto.Text) - 50;

                // Obtenemos el parámetro "Tiempo de cambio automático de contraseñas".
                IParametroUNegocio paramFecha = ParametroUNegocioFactory.GetParametroUNegocio();
                paramFecha.UnidadNegocioID = 1;
                paramFecha.Parametro       = NegociosSisPackInterface.SisPack.Parametro.TiempoCambioAutomaticoContraseñas;
                paramFecha.Consultar();
                // Verificamos la fecha de modificación de clave del usuario logueado.
                if (usuario.FechaModificacionPassword.AddDays(Convert.ToDouble(paramFecha.ValorString)) <= System.DateTime.Today)
                {
                    // Si es menor al día actual modificamos variable de sesion.
                    Session["CambioClaveObligatorio"] = true;
                }
                else
                {
                    // Dejamos la variable de sesión vacía.
                    Session["CambioClaveObligatorio"] = null;
                }
                Dominio.Entidades.UsuarioImpresora usuImp     = new Dominio.Entidades.UsuarioImpresora();
                IUsuarioImpresoraDominio           usuDominio = IoC.GetObjectDominio <IUsuarioImpresoraDominio>();
                usuImp = usuDominio.GetOne(usuario.UsuarioID);

                if (usuImp != null)
                {
                    if (usuImp.IPImpresoraCB != string.Empty)
                    {
                        Session["ImpresoraUsuario"] = usuImp.IPImpresoraCB;
                    }
                    else
                    {
                        Session.Remove("ImpresoraUsuario");
                    }

                    if (usuImp.IpBascula != string.Empty)
                    {
                        Session["BasculaUsuario"] = usuImp.IpBascula;
                    }
                    else
                    {
                        Session.Remove("BasculaUsuario");
                    }
                }
                else
                {
                    Session.Remove("ImpresoraUsuario");
                    Session.Remove("BasculaUsuario");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void Consultar(int reporteControlPlanillaRendicionID)
        {
            // Configuro los DataGrid
            SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosContado, "GuiaId", this.CantidadOpciones);
            SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosCtaCte, "GuiaId", this.CantidadOpciones);
            SisPackController.AdministrarGrillas.Configurar(dtgGuiasConformadas, "GuiaId", this.CantidadOpciones);
            SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioOrigenNoConfirmados, "GuiaId", this.CantidadOpciones);
            SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioDestinoNoConfirmados, "GuiaId", this.CantidadOpciones);

            DsReporteControlPlanillaRendicion ds = new DsReporteControlPlanillaRendicion();

            IReporteControlPlanillaRendicion reporte = ReporteControlPlanillaRendicionFactory.GetReporteControlPlanillaRendicion();

            reporte.ReporteControlPlanillaRendicionID = reporteControlPlanillaRendicionID;
            ds = reporte.ConsultarByID(reporteControlPlanillaRendicionID);

            if (ds.Datos.Rows.Count > 0)
            {
                this.busqAgencia.AgenciaID = ds.Datos[0].AgenciaID.ToString();
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaID = Utiles.Validaciones.obtieneEntero(ds.Datos[0].AgenciaID.ToString());
                agencia.Consultar();

                IUsuarios usuario = UsuariosFactory.GetUsuario();
                usuario.UsuarioID = Utiles.Validaciones.obtieneEntero(ds.Datos[0].UsuarioID.ToString());
                usuario.Consultar();

                ((TextBox)((Control)busqAgencia).FindControl("txtSucursal")).Enabled    = false;
                ((TextBox)((Control)busqAgencia).FindControl("txtSucursal")).Text       = agencia.SucursalDGI.ToString();
                ((TextBox)((Control)busqAgencia).FindControl("txtRazonSocial")).Text    = agencia.RazonSocial;
                ((TextBox)((Control)busqAgencia).FindControl("txtRazonSocial")).Enabled = false;
                busqAgencia.tdConsulta.Visible = false;
                lblUsuarioDescrip.Text         = usuario.Nombre + ", " + usuario.Apellido;

                this.lblFechaActual.Text = ds.Datos[0].Fecha.ToShortDateString();
                this.txtReporteControlPlanillaRendicionID.Text = ds.Datos[0].ReporteControlPlanillaRendicionID.ToString();

                string[] nroPlanilla = ds.Datos[0].NroPlanilla.Split(',');

                for (int i = 0; i < nroPlanilla.Length; i++)
                {
                    this.lstNroPlanilla.Items.Add(new ListItem(nroPlanilla[i]));
                }
            }
            // Guardo el DataSet en el objeto Session
            Session["DsReporteControlPlanillaRendicion"] = ds;
            // Reviso si se encontraron datos
            if (ds.Detalle.Rows.Count > 0)
            {
                // Se encontraron datos.
                // Configuro los DataGrid
                SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosContado, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgComprobantesEmitidosCtaCte, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasConformadas, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioOrigenNoConfirmados, "GuiaId", this.CantidadOpciones);
                SisPackController.AdministrarGrillas.Configurar(dtgGuiasEmitidasConServicioDestinoNoConfirmados, "GuiaId", this.CantidadOpciones);
                //dtgComprobantesEmitidosContado.Width = System.Web.UI.WebControls.Unit.Pixel(2400);

                // Cargo los comprobantes emitidos de contado
                dtgComprobantesEmitidosContado.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.ComprobantesEmitidosContado);
                dtgComprobantesEmitidosContado.DataBind();

                // Cargo los comprobantes emitidos de cta cte
                dtgComprobantesEmitidosCtaCte.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.ComprobantesEmitidosCtaCte);
                dtgComprobantesEmitidosCtaCte.DataBind();

                // Cargo los comprobantes conformados
                dtgGuiasConformadas.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasConformadas);
                dtgGuiasConformadas.DataBind();

                // Cargo los comprobantes con servicio origen no confirmados
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasEmitidasconServicioOrigenNoConfirmados);
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.DataBind();

                // Cargo los comprobantes con servicio destino no confirmados
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.DataSource = ds.Detalle.Select("TipoAgrupacion = " + (int)NegociosSisPackInterface.SisPack.TipoAgrupacionControlPlanillaRendicion.GuiasConformadasconServicioDestinoNoConfirmados);
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.DataBind();

                // Muestro las grillas y sus labels
                dtgComprobantesEmitidosContado.Visible = true;
                dtgComprobantesEmitidosCtaCte.Visible  = true;
                dtgGuiasConformadas.Visible            = true;
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = true;
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.Visible = true;
                LblComprobantesEmitidosContado.Visible = true;
                LblComprobantesEmitidosCtaCte.Visible  = true;
                LblGuiasConformadas.Visible            = true;
                LblGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = true;
                LblGuiasEmitidasConServicioDestinoNoConfirmados.Visible = true;
                // Oculto el label de que no se encontraron registros
                LblNoseEncontraronRegistros.Visible = false;

                IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                param.UnidadNegocioID = this.UnidadNegocioID;
                param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.MultaACobrarPorComprobanteFaltante;
                param.Consultar();
                double multa      = Utiles.Validaciones.obtieneDouble(param.ValorString);
                int    totalGuias = Utiles.Validaciones.obtieneEntero(ds.Detalle.Compute("Count(GuiaID)", "TipoAgrupacion IS NOT NULL").ToString());

                lblTotalGuias.Text    = totalGuias.ToString();
                lblMultaGuias.Text    = Utiles.Formatos.Moneda((totalGuias * multa));
                lblMulta.Visible      = true;
                lblMultaGuias.Visible = true;
                lblTotal.Visible      = true;
                lblTotalGuias.Visible = true;
            }
            else
            {
                // No se encontraron datos. las grillas y sus respectivos labels
                dtgComprobantesEmitidosContado.Visible = false;
                dtgComprobantesEmitidosCtaCte.Visible  = false;
                dtgGuiasConformadas.Visible            = false;
                dtgGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = false;
                dtgGuiasEmitidasConServicioDestinoNoConfirmados.Visible = false;
                LblComprobantesEmitidosContado.Visible = false;
                LblComprobantesEmitidosCtaCte.Visible  = false;
                LblGuiasConformadas.Visible            = false;
                LblGuiasEmitidasConServicioOrigenNoConfirmados.Visible  = false;
                LblGuiasEmitidasConServicioDestinoNoConfirmados.Visible = false;
                // Muestro el label de que no se encontraron registros
                LblNoseEncontraronRegistros.Visible = true;

                lblTotalGuias.Text = string.Empty;
                lblMultaGuias.Text = string.Empty;
            }

            this.BtnGuardar.Enabled = true;
        }
예제 #29
0
        private void dtgParametro_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                string valorString = ((TextBox)e.Item.FindControl("txtValorString")).Text;
                int    parametroID = Convert.ToInt32(dtgParametro.DataKeys[e.Item.ItemIndex]);

                BindGrid(dtgParametro.CurrentPageIndex);

                if (valorString == "")
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error, el valor no puede quedar vacio");
                    return;
                }

                DsParametrosGenerales          ds = (DsParametrosGenerales)this.dtgParametro.DataSource;
                DsParametrosGenerales.DatosRow dr = (DsParametrosGenerales.DatosRow)ds.Datos.Rows[e.Item.DataSetIndex];

                IParametroUNegocio parametroUN = ParametroUNegocioFactory.GetParametroUNegocio();
                parametroUN.Parametro   = (NegociosSisPackInterface.SisPack.Parametro)parametroID;
                parametroUN.ValorString = valorString;

                if (parametroID == 13 || parametroID == 14)
                {
                    try
                    {
                        int valor = Convert.ToInt32(valorString);
                        if (valor < 0 || valor > 24)
                        {
                            throw new Exception("El parámetro ingresado debe contener valores entre 0 y 24.");
                        }
                    }
                    catch (Exception)
                    {
                        throw new Exception("El valor ingresado no es válido");
                    }
                }

                if (parametroID == (int)NegociosSisPackInterface.SisPack.Parametro.IVADiferenciadoFacturaE)
                {
                    try
                    {
                        int valor = Convert.ToInt32(valorString);
                        if (valor < 0)
                        {
                            throw new Exception("El parámetro ingresado debe contener un valor positivo.");
                        }
                    }
                    catch (Exception)
                    {
                        throw new Exception("El valor ingresado no es válido");
                    }
                }

                if (parametroID == (int)NegociosSisPackInterface.SisPack.Parametro.RecargoTarjCredDeb)
                {
                    try
                    {
                        int valor = Convert.ToInt32(valorString);
                        if (valor < 0)
                        {
                            throw new Exception("El parámetro ingresado no se corresponde con un porcentaje válido.");
                        }
                    }
                    catch (Exception)
                    {
                        throw new Exception("El valor ingresado no es válido");
                    }
                }

                parametroUN.Guardar();
                this.dtgParametro.EditItemIndex = -1;
                BindGrid(dtgParametro.CurrentPageIndex);
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }