예제 #1
0
        /// <summary>
        /// Genera XMLs masivamente
        /// </summary>
        /// <param name="e"></param>
        private async void toolStripButton2_Click(object sender, EventArgs e)
        {
            int errores = 0;

            txtbxMensajes.Text = "";
            //datos o parametos de conexion de la base de datos
            Parametros Param = new Parametros(DatosConexionDB.Elemento.Intercompany);

            //tabCfdi es un control tabcontrol que divide la pantalla en partes
            //cada parte es referenicado por un pestaña
            Param.ExtDefault = this.tabCfdi.SelectedTab.Name;
            //crae un direccion unica de red donde un cliente puede cominicarse con un servicio endpoint
            ServiciosOse = new WebServicesOSE(Param.URLwebServPAC);

            //ServiciosOse.TimbraYEnviaASunat()


            if (!Param.ultimoMensaje.Equals(string.Empty))
            {
                txtbxMensajes.Text = Param.ultimoMensaje;
                errores++;
            }
            if (regla.CfdiTransacciones.RowCount == 0)
            {
                txtbxMensajes.Text = "No hay documentos para generar. Verifique los criterios de búsqueda.";
                errores++;
            }
            if (!filtraListaSeleccionada()) //Filtra cfdiTransacciones sólo con docs marcados
            {
                txtbxMensajes.Text = ultimoMensaje;
                errores++;
            }
            if (errores == 0 && !ExistenTransaccionesAMedioContabilizar(regla.CfdiTransacciones))
            {
                HabilitarVentana(false, false, false, false, false, false);
                ProcesaCfdi proc = new ProcesaCfdi(DatosConexionDB.Elemento, Param);
                proc.TrxVenta           = regla.CfdiTransacciones;
                proc.Progreso          += new ProcesaCfdi.LogHandler(reportaProgreso);
                tsPbProcesoActivo.Style = ProgressBarStyle.Marquee;

                //    await proc.GeneraResumenXmlAsync(ServiciosOse, EstructuraDocsOse);
                //else
                if (this.tabCfdi.SelectedTab.Name.Equals("tabFacturas"))
                {
                    await proc.GeneraDocumentoXmlAsync(ServiciosOse);
                }
            }
            //Actualiza la pantalla
            HabilitarVentana(Param.emite, Param.anula, Param.imprime, Param.publica, Param.envia, true);
            AplicaFiltroYActualizaPantalla(this.tabCfdi.SelectedTab.Name);
            progressBar1.Value      = 0;
            tsPbProcesoActivo.Style = ProgressBarStyle.Blocks;
        }
예제 #2
0
        /// <summary>
        /// Genera XMLs masivamente
        /// </summary>
        /// <param name="e"></param>
        private async void toolStripButton2_Click(object sender, EventArgs e)
        {
            int errores = 0;

            txtbxMensajes.Text = "";

            Parametros Param = new Parametros(DatosConexionDB.Elemento.Intercompany);

            Param.ExtDefault = this.tabCfdi.SelectedTab.Name;
            ServiciosOse     = new WebServicesOSE(Param.URLwebServPAC);

            if (!Param.ultimoMensaje.Equals(string.Empty))
            {
                txtbxMensajes.Text = Param.ultimoMensaje;
                errores++;
            }
            if (regla.CfdiTransacciones.RowCount == 0)
            {
                txtbxMensajes.Text = "No hay documentos para generar. Verifique los criterios de búsqueda.";
                errores++;
            }
            if (!filtraListaSeleccionada()) //Filtra cfdiTransacciones sólo con docs marcados
            {
                txtbxMensajes.Text = ultimoMensaje;
                errores++;
            }
            if (errores == 0 && !ExistenTransaccionesAMedioContabilizar(regla.CfdiTransacciones))
            {
                HabilitarVentana(false, false, false, false, false, false);
                ProcesaCfdi proc = new ProcesaCfdi(DatosConexionDB.Elemento, Param);
                proc.TrxVenta             = regla.CfdiTransacciones;
                proc.Progreso            += new ProcesaCfdi.LogHandler(reportaProgreso);
                pBarProcesoActivo.Visible = true;

                if (this.tabCfdi.SelectedTab.Name.Equals("tabResumen"))
                {
                    await proc.GeneraResumenXmlAsync(ServiciosOse, EstructuraDocsOse);
                }
                else
                {
                    await proc.GeneraDocumentoXmlAsync(ServiciosOse);
                }
            }
            //Actualiza la pantalla
            HabilitarVentana(Param.emite, Param.anula, Param.imprime, Param.publica, Param.envia, true);
            AplicaFiltroYActualizaPantalla(this.tabCfdi.SelectedTab.Name);
            progressBar1.Value        = 0;
            pBarProcesoActivo.Visible = false;
        }