Пример #1
0
        //Iniciar Administrador de Tareas Programadas del Servidor.
        public void Run(HttpApplicationState application, System.Web.Caching.Cache cache)
        {
            //Obtener todas las tareas registradas en la tabla Global GTAREAS.
            DataSet dsTareasGlobal = new DataSet();

            DBFunctions.RequestGlobal(dsTareasGlobal, IncludeSchema.NO,
                                      "global", "select gtar_descriptor, gtar_database, gtar_params, gtar_hora, gtar_activa from gtareas where gtar_activa = 'S';");

            //Recorrer, validar y ejecutar todas las tareas definidas.
            for (int t = 0; t < dsTareasGlobal.Tables[0].Rows.Count; t++)
            {
                string horaTarea = dsTareasGlobal.Tables[0].Rows[t]["gtar_hora"].ToString();

                bool ejecutarTarea = ValidarTarea(horaTarea);

                if (ejecutarTarea)
                {
                    string idTarea                = dsTareasGlobal.Tables[0].Rows[t]["gtar_descriptor"].ToString();
                    string dataBaseCliente        = dsTareasGlobal.Tables[0].Rows[t]["gtar_database"].ToString();
                    string parametrosFuncionTarea = dsTareasGlobal.Tables[0].Rows[t]["gtar_params"].ToString();

                    //Identificar tarea y ejecutarla.
                    //De acuerdo a la base de datos Cliente definida y los parametros asociados a cada función (Descritos en la tabla GTIPOTAREAS).
                    //Nota: Nuevas tareas deberan adicionarse aquí, y estar definidas en la clase DescriptorTarea.cs y en la Base de Datos Global en GTAREAS y GTIPOTAREAS.
                    switch (idTarea)
                    {
                    case "OT_15M":
                        DescriptorTarea.FTPEstadoActualOT(dataBaseCliente, parametrosFuncionTarea);
                        break;

                    case "OT_24H":
                        DescriptorTarea.FTPFacturaDiariaOT(dataBaseCliente, parametrosFuncionTarea);
                        break;

                    case "CT_18H":
                        DescriptorTarea.EmailClienteCitasTaller(dataBaseCliente, parametrosFuncionTarea);
                        break;

                    case "SA_08D":
                        DescriptorTarea.CierreAutomaticoOrdenesSAC(dataBaseCliente, parametrosFuncionTarea);
                        break;
                    }
                }
            }
        }
Пример #2
0
        //Ejecutar tarea programada: OT_24H
        //Obtiene el estado actual de las OT ya facturadas en el día Actual. Crea archivo txt y lo envia por FTP.
        public static void FTPFacturaDiariaOT(string dataBaseCliente, string parametrosFuncionTarea)
        {
            //ParametrosFuncionTarea
            //almacen,idArchivos,usuario,contraseña
            //    0  ,    1     ,   2   ,    3
            String[] arrParams = parametrosFuncionTarea.Split(',');
            DataSet  dsOT24    = new DataSet();

            DBFunctions.RequestGlobal(dsOT24, IncludeSchema.NO, dataBaseCliente,
                                      @"select mo.pdoc_codigo, mo.mord_numeorde,  DATE(mo.mord_salida) as mord_salida, do.pven_codigo, mo.mcat_vin, mc.mcat_anomode, pc.pcol_descripcion, mc.pcat_codigo, mc.mcat_numeultikilo,
                pca.pcat_descripcion, m.pmar_nombre, sum( do.dord_valooper) as valOp
                from morden mo, dordenoperacion do, ptempario pt, mcatalogovehiculo mc, pcolor pc, pcatalogovehiculo pca, pmarca m
                where
                mo.pdoc_codigo = do.pdoc_codigo and mo.mord_numeorde = do.mord_numeorde
                and do.ptem_operacion = pt.ptem_operacion
                and mc.mcat_vin = mo.mcat_vin
                and pc.pcol_codigo = mc.pcol_codigo
                and pca.pcat_codigo = mc.pcat_codigo
                and m.pmar_codigo = pca.pmar_codigo
                and(mo.test_estado = 'F' or mo.test_estado = 'E')
                and DATE(mo.mord_salida) = DATE(current timestamp)
                and mo.palm_almacen = '" + arrParams[0] + @"'
                group by mo.pdoc_codigo, mo.mord_numeorde, mo.mord_salida, do.pven_codigo, mo.mcat_vin, mc.mcat_anomode, pc.pcol_descripcion, mc.pcat_codigo, mc.mcat_numeultikilo,
                pca.pcat_descripcion, m.pmar_nombre
                order by mo.pdoc_codigo, mo.mord_numeorde;");

            DBFunctions.RequestGlobal(dsOT24, IncludeSchema.NO, dataBaseCliente,
                                      @"select mo.pdoc_codigo, mo.mord_numeorde,  do.ptem_operacion, pt.ptem_descripcion
                from morden mo, dordenoperacion do, ptempario pt, mcatalogovehiculo mc, pcolor pc, pcatalogovehiculo pca, pmarca m
                where
                mo.pdoc_codigo = do.pdoc_codigo and mo.mord_numeorde = do.mord_numeorde
                and do.ptem_operacion = pt.ptem_operacion
                and mc.mcat_vin = mo.mcat_vin
                and pc.pcol_codigo = mc.pcol_codigo
                and pca.pcat_codigo = mc.pcat_codigo
                and m.pmar_codigo = pca.pmar_codigo
                and(mo.test_estado = 'F' or mo.test_estado = 'E')
                and DATE(mo.mord_salida) = DATE(current timestamp)
                and mo.palm_almacen = '" + arrParams[0] + @"';");

            DescriptorTarea dt = new DescriptorTarea();

            dt.CrearArchivoTxt24(dsOT24, arrParams);
        }
Пример #3
0
        //Ejecutar tarea programada: OT_15M
        //Obtiene el estado actual de las OT no facturadas de los ultimos 15 días. Crea archivo txt y lo envia por FTP.
        public static void FTPEstadoActualOT(string dataBaseCliente, string parametrosFuncionTarea)
        {
            //ParametrosFuncionTarea
            //almacen,idArchivos,usuario,contraseña
            //    0  ,    1     ,   2   ,    3
            String[] arrParams = parametrosFuncionTarea.Split(',');
            DataSet  dsOT15    = new DataSet();

            DBFunctions.RequestGlobal(dsOT15, IncludeSchema.NO, dataBaseCliente,
                                      @"select 
                pdoc_codigo concat mord_numeorde AS RO_NUMBER,
                mord_entrada AS OPEN_DATE,
                mord_salida AS CLOSE_DATE,
                facobra AS CUSTOMER_LABOR,
                sum(facrep) AS CUSTOMER_PARTS,
                0 AS CUSTOMER_MISC,
                '' AS GOG,
                '' AS COMPLAINT_CODE,
                mord_obseclie AS COMPLAINT_DESC,
                pven_codigo AS ADVISOR,
                pven_codigo AS TECHNICIAN,
                mord_obserece AS COMMENTS,
                '' AS LABOR_HOURS,
                '' AS PROMISED_DATE,
                mnit_nit AS CUST,
                mnit_nombres AS FIRST_NAME,
                mnit_apellidos AS LAST_NAME,
                '' AS ADDRESS,
                '' AS CITY,
                '' AS STATE,
                '' AS ZIP,
                mnit_celular AS PHONE,
                mnit_email AS EMAIL,
                pmar_nombre AS MAKE,
                pcat_descripcion AS MODEL,
                mcat_anomode AS YEAR,
                mcat_vin AS VIN,
                mcat_numeultikilo AS MILEAGE
                from
                (select mo.pdoc_codigo, mo.mord_numeorde, mo.mord_entrada, mo.mord_salida,  mo.mord_obseclie, mo.mord_obserece, mo.mnit_nit, mtr.pdoc_factura, mtr.mfac_numero, dit.facrep, dor.facobra, pv.pven_codigo,
                m.mnit_nombres, m.mnit_apellidos, m.mnit_telefono, m.mnit_email, p.pmar_nombre, pca.pcat_descripcion, mca.mcat_anomode, mo.mcat_vin , mca.mcat_numeultikilo
                from morden mo, mordentransferencia mtr, mcatalogovehiculo mca, pcatalogovehiculo pca, pmarca p, 
                (select pdoc_codigo, dite_numedocu, sum(dite_cantidad * dite_costprom) as facrep from ditems group by pdoc_codigo, dite_numedocu) as dit,
                (select pdoc_codigo, mord_numeorde, sum(dord_valooper) as facobra from dordenoperacion group by pdoc_codigo, mord_numeorde) as dor,
                pvendedor pv, mnit m
                where 
                mo.pdoc_codigo = mtr.pdoc_codigo  and mo.mord_numeorde=mtr.mord_numeorde
                and mtr.pdoc_factura = dit.pdoc_codigo and mtr.mfac_numero=dit.dite_numedocu
                and mo.pdoc_codigo = dor.pdoc_codigo  and mo.mord_numeorde=dor.mord_numeorde
                and mo.test_estado = 'A'
                and (DAYS(CURRENT DATE) - DAYS(mo.mord_entrada) ) <= 15
                and pv.pven_codigo = (select pven_codigo as facobra from dordenoperacion where pdoc_codigo=mo.pdoc_codigo and mord_numeorde=mo.mord_numeorde fetch first row only)
                and m.mnit_nit=mo.mnit_nit
                and mca.mcat_vin = mo.mcat_vin
                and pca.pcat_codigo = mca.pcat_codigo
                and pca.pmar_codigo = p.pmar_codigo
                and mo.palm_almacen = '" + arrParams[0] + @"' 
                ) as ot
                group by pdoc_codigo, mord_numeorde, mord_entrada, mord_salida, mord_obseclie, mord_obserece, pdoc_factura, facobra, pven_codigo, mnit_nit,
                mnit_nombres, mnit_apellidos, mnit_telefono, mnit_email, pmar_nombre, pcat_descripcion, mcat_anomode, mcat_vin, mcat_numeultikilo order by ro_number;");

            DescriptorTarea dt = new DescriptorTarea();

            dt.CrearArchivoTxt(dsOT15, arrParams);
        }