Esempio n. 1
0
        protected void Anular_Recibo(object sender, EventArgs e)
        {
            string permiteAnular = DBFunctions.SingleData("SELECT CCAR_ANULDOCUANT FROM CCARTERA");

            if (permiteAnular != "S")
            {
                if (!Tools.General.validarCierreFinanzas(fecha.Text, "C"))
                {
                    Utils.MostrarAlerta(Response, "La fecha del documento no corresponde a la vigencia del sistema de cartera. Por favor revise.");
                    return;
                }
            }
            Recibo  anulado = new Recibo();
            DataSet miDS    = new DataSet();

            anulado.PrefijoRecibo    = prefijoRecibo.SelectedValue;
            anulado.NumeroRecibo     = System.Convert.ToInt32(numeroRecibo.SelectedValue);
            anulado.Usuario          = HttpContext.Current.User.Identity.Name.ToLower();
            anulado.PrefijoAnulacion = ddlDocAnu.SelectedValue;
            tablaPagos = (DataTable)Session["tablaPagos"];

            bool procesoErrado = false;

            if (tablaPagos != null)
            {
                string codTipoPago = "";
                int    i;
                for (i = 0; i < tablaPagos.Rows.Count; i++)
                {
                    codTipoPago = DBFunctions.SingleData("SELECT TTIP_CODIGO FROM DBXSCHEMA.TTIPOPAGO WHERE TTIP_NOMBRE= '" + tablaPagos.Rows[i][0].ToString().Trim() + "'").ToUpper();
                    if (codTipoPago != "B" && codTipoPago != "DL" && codTipoPago != "DC" && codTipoPago != "C")
                    {
                        if (tablaPagos.Rows[i][8].ToString() != "C")
                        {
                            procesoErrado = true;
                        }
                    }

                    /*
                     *  if (tablaPagos.Rows[i][0].ToString().Trim() != "Desctos Varios" && tablaPagos.Rows[i][0].ToString().Trim() != "Tf Bancaria" && tablaPagos.Rows[i][0].ToString().Trim() != "Desc. Ley" && tablaPagos.Rows[i][0].ToString().Trim() != "Desc. Comercial" && tablaPagos.Rows[i][0].ToString().Trim() != "Concepto Contable" && tablaPagos.Rows[i][0].ToString().Trim() != "Cheq Recibo de Clte")
                     *  {
                     *      if (tablaPagos.Rows[i][8].ToString() != "C" )
                     *      {
                     *          procesoErrado = true;
                     *      }
                     *  }
                     */
                }
            }

            if (procesoErrado)
            {
                anulado.Mensajes += "El documento de Pago NO esta en CAJA, Proceso No realizado";
                Utils.MostrarAlerta(Response, anulado.Mensajes);
                return;
            }

            int consAnu = Convert.ToInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + ddlDocAnu.SelectedValue + "'"));

            if (Request.QueryString["elminar"] != null)
            {
                anulado.OperacionEliminar = true;
            }
            if (anulado.Anular_Recibo(claseRecibo.Text))
            {
                string tipoRecibo = DBFunctions.SingleData("select tdoc_tipodocu from pdocumento where pdoc_codigo='" + prefijoRecibo.SelectedValue + "';");
                if (tipoRecibo == "RC" || tipoRecibo == "CE")
                {
                    //Se obtiene el usuario que creó la factura y la fecha de creacion para hacer el ajuste de los RC y CE en el saldo de caja.
                    string       usuarioFecha = DBFunctions.SingleData("select mcaj_usuario CONCAT '@' CONCAT mcaj_fecha   from mcaja where pdoc_codigo='" + prefijoRecibo.SelectedValue + "' and mcaj_numero=" + numeroRecibo.SelectedValue);
                    Consignacion consignacion = new Consignacion(tablaPagos);
                    consignacion.RegistrarSaldoCaja(usuarioFecha, tipoRecibo, -2);
                }

                lb.Text = anulado.Mensajes;
                contaOnline.contabilizarOnline(prefijoRecibo.SelectedValue, Convert.ToInt32(numeroRecibo.SelectedValue), Convert.ToDateTime(fecha.Text), "");
                Response.Redirect(ConfigurationManager.AppSettings["MainIndexPage"] + "?process=Tesoreria.AnulacionReciboCaja&ex=1&prefC=" + prefijoRecibo.SelectedValue + "&numC=" + numeroRecibo.SelectedValue + "&preAn=" + ddlDocAnu.SelectedValue + "&consAn=" + consAnu + "");
                Session.Clear();
            }
            else
            {
                lb.Text = anulado.Mensajes;
            }
        }