Exemplo n.º 1
0
        public static int?GetMinTaskNumber()
        {
            int?task_number = null;

            string qry =
                @"      select * from (select top 1 TASK_NUMBER from [CyberPlanFrontiera].[dbo].EXP_CORDER order by TASK_NUMBER asc) A
union select * from (select top 1 TASK_NUMBER from [CyberPlanFrontiera].[dbo].EXP_ORDER order by TASK_NUMBER asc) B
union select * from (select top 1 TASK_NUMBER from [CyberPlanFrontiera].[dbo].EXP_OPERATION order by TASK_NUMBER asc) C
union select * from (select top 1 TASK_NUMBER from [CyberPlanFrontiera].[dbo].EXP_DEMAND order by TASK_NUMBER asc) D ";



            DBHelper2    db  = DBHelper2.getCyberDBHelper();
            DbDataReader dtr = db.GetReaderSelectCommand(qry);

            object[] row = new object[dtr.FieldCount];

            if (dtr.HasRows)
            {
                while (dtr.Read())
                {
                    dtr.GetValues(row);
                    task_number = (int)row[0];
                    _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " Refresh min task number=" + task_number);
                    break;
                }
            }
            else
            {
                _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " task number = null");
            }
            dtr.Close();
            return(task_number);
        }
Exemplo n.º 2
0
        static public void Init()
        {
            DBHelper2 db = DBHelper2.getCyberDBHelper();
            string    exec_store_procedure = "EXECUTE [CyberPlanFrontiera].[dbo].[FILL_E_ROUTING]";

            _logger.Info("start execution");

            int i = DBHelper2.EseguiSuDBCyberPlan(ref db, exec_store_procedure, 600);

            _logger.Info("end execution");
        }
Exemplo n.º 3
0
        static public void SetStatus(string stato)
        {
            DBHelper2 db      = DBHelper2.getCyberDBHelper();
            string    command = "UPDATE [CyberPlanFrontiera].[dbo].[TRANSFER_STATUS] "
                                + " SET [STATUS] = '" + stato + "' ,"
                                + " TIMESTAMP = '" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "'"
                                + " WHERE ID='TR_STATUS'  ";

            _logger.Info("start execution");

            int i = DBHelper2.EseguiSuDBCyberPlan(ref db, command, 600);

            _logger.Info("end execution");
        }
Exemplo n.º 4
0
        static private void FinalCheck_Ordini_di_Articoli_senza_cicli()
        {
            DBHelper2 db      = DBHelper2.getCyberDBHelper();
            string    command = @"  Select C_CODE,C_CORDER_CODE,C_ITEM_CODE,C_M_B --,ope.C_OPNUM, ope.C_USER_STRING01 AS Attrezzatura, ope.C_USER_STRING02 as Macchina
  from [CyberPlanFrontiera].[dbo].[CYB_ORDER] od
  left join [CyberPlanFrontiera].[dbo].[CYB_OPERATION] ope
  on od.C_CODE = ope.C_ORDER_CODE
  where C_M_B in ('M','D') and ope.C_OPNUM is null 
  order by C_ITEM_CODE ";


            _logger.Info("start execution");

            string       testo_mail = "";
            DBHelper2    cyber      = DBHelper2.getCyberDBHelper();
            DbDataReader dtr        = cyber.GetReaderSelectCommand(command);

            object[] row = new object[dtr.FieldCount];

            string prec_articolo = "";
            string articolo      = "";

            while (dtr.Read())
            {
                dtr.GetValues(row);
                articolo = (string)row[2];

                string C_M_B = (string)row[3];
                if (C_M_B != "D")  //se è di contolavoro non lo segnalo: devono avere il ciclo solo gli articolo di CL a capacità Finita, ma da qui non si riesce a suddividere in base al Cdl_MRP, quindi non riesco a fare il controllo
                {
                    if (articolo != prec_articolo)
                    {
                        prec_articolo = articolo;
                        testo_mail   += Utils.NewLineMail() + " codice =" + articolo + "  non ha ciclo ma ha degli ordini di produzione " + Utils.NewLineMail();
                        if (articolo == "WM0662-03")
                        {
                            testo_mail += articolo + ": questo articolo non ha attrezzatura in As400, quindi non viene creato il ciclo; OK" + Utils.NewLineMail();
                        }
                    }
                    testo_mail += (string)row[0] + " " + Utils.NewLineMail();
                }
            }

            Utils.SendMail_Anag(Settings.GetSettings(), testo_mail, "Ordini di articoli senza ciclo");
            _logger.Info("end execution");
        }
Exemplo n.º 5
0
        static private void FinalCheck_PLAS_senza_cicli()
        {
            DBHelper2 db      = DBHelper2.getCyberDBHelper();
            string    command = @"SELECT
      distinct D.[C_ITEM_CODE]

      ,D.[C_ORDER_CODE]
      /*,D.[C_QTY]
      ,D.[C_WAREHOUSE_CODE]
      ,I.[C_DESCR ]
      ,I.[C_M_B ]
      ,I.[C_ITEM_GROUP ]
      ,I.[C_USER_STRING01 ]*/
      ,CICLI.C_CODE

  FROM[CyberPlanFrontiera].[dbo].[CYB_DEMAND] D
left join[CyberPlanFrontiera].[dbo].[CYB_ITEM] I on D.C_ITEM_CODE=I.[C_CODE]
left join
(
  --query indicata da Savietto per recuperare i cicli; qui serve per recuperare Articoli PLAS che non hanno cicli
  SELECT T.C_CODE FROM[CyberPlanFrontiera].[dbo].FiltroCicliPlastica T
                  LEFT JOIN [CyberPlanFrontiera].[dbo].CYB_STD_OP_MACHINE PO_MAC
                  ON T.ATTREZZATURA  = PO_MAC.C_ROUTING_CODE
                  left join [CyberPlanFrontiera].[dbo].cyb_machine mac on mac.c_code = PO_MAC.machine_code
                  where CHARINDEX(TIPO_P, mac.c_user_string04) > 0 -- verifico tipo plastica
                  and ((T.DIVISORE = 1 and mac.[C_USER_FLAG01] = 1) or T.DIVISORE = 0) -- Devo verificare: se il divisore è richiesto solo macchine con divisore, altrimenti tutte
                  and((T.PESO_MATER + T.PESO_ITEM) * (CASE WHEN cast(T.IMPRONTE_FORZ as int) = 0 THEN COALESCE(cast(t.IMPRONT_DEFAULT as int), 1) ELSE COALESCE(cast(t.IMPRONTE_FORZ as int), 1) END))  >= MAC.C_USER_REAL01
                 and((T.PESO_MATER + T.PESO_ITEM)*(CASE WHEN cast(T.IMPRONTE_FORZ as int) = 0 THEN COALESCE(cast(t.IMPRONT_DEFAULT as int), 1) ELSE COALESCE(cast(t.IMPRONTE_FORZ as int), 1) END))  <= MAC.C_USER_REAL02  -- Verifico il peso tra il min e il max della macchina
      GROUP BY T.C_CODE, T.C_PLANT_CODE, PO_MAC.C_OPNUM, PO_MAC.C_ALT_OPNUM, COALESCE(MAC.C_WORKCENTER,'TRASH')
  
  ) CICLI on D.C_ITEM_CODE= CICLI.C_CODE
  where I.[C_USER_STRING01]='PLAS' and CICLI.C_CODE is null 
order by D.C_ITEM_CODE ";


            _logger.Info("start execution");

            string       testo_mail = "";
            DBHelper2    cyber      = DBHelper2.getCyberDBHelper();
            DbDataReader dtr        = cyber.GetReaderSelectCommand(command);

            object[] row = new object[dtr.FieldCount];

            string prec_articolo = "";
            string articolo      = "";

            while (dtr.Read())
            {
                dtr.GetValues(row);
                articolo = (string)row[0];
                if (articolo != prec_articolo)
                {
                    prec_articolo = articolo;
                    testo_mail   += Utils.NewLineMail() + " codice =" + articolo + "  non è producibile ma questi Ordine di produzione lo richiedono " + Utils.NewLineMail();
                }
                testo_mail += (string)row[1] + " " + Utils.NewLineMail();
            }


            Utils.SendMail_Anag(Settings.GetSettings(), testo_mail, "WP senza ciclo");
            _logger.Info("end execution");
        }
Exemplo n.º 6
0
 public ExportItem(string file_prefix, X3WSUtils.TipoImport tipo)
 {
     _file_prefix = file_prefix;
     Tipo         = tipo;
     _db          = DBHelper2.getCyberDBHelper();
 }
Exemplo n.º 7
0
        public void WriteToCyberPlan <T>(bool mode_all, string codice_like, string filtro, bool delete, string option) where T : Item, new()
        {
            Item.ResetMailMessage();
            string startedAt     = DateTime.Now.ToString();
            string message_error = "Command started at " + startedAt + "  " +
                                   "\n Parameters: mode_all=" + mode_all + ", codice_like=" + codice_like + ", filtro=" + filtro + ", delete=" + delete + ", option=" + option + "\n\n";

            _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " --- started at " + startedAt);
            T tmp = new T();

            _logger.Info("Oggetto: " + typeof(T).ToString().PadRight(60) + " su tabella " + tmp._CP_tabella);
            DBHelper2 cm = DBHelper2.getCyberDBHelper();

            if (delete)
            {
                DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp.GetDeletedAllQuery());
                _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " ---   deleting ended at " + DateTime.Now.ToString());
                return;
            }

            //if (string.IsNullOrWhiteSpace(codice_like))
            //{
            //    codice_like = "%";
            //}

            //string qry = tmp.GetSelectQuery(mode_all, _libreria_dossier+"TEST", codice_like, filtro);

            _logger.Info("Oggetto: " + typeof(T).ToString().PadRight(60) + " Disab Blocco chifra suffisso TEST a " + _libreria_dossier);
            string qry = tmp.GetSelectQuery(mode_all, _libreria_dossier, codice_like, filtro);


            DbDataReader dtr = GetReaderSelectCommand(qry);

            object[] row = new object[dtr.FieldCount];

            int i = 0;
            int j = 0;

            while (dtr.Read())
            {
                //x debug
                //if (i==34529)
                //{
                //    _logger.Info("i=" + i.ToString() );

                //}

                i++;
                j++;
                dtr.GetValues(row);
                //tmp.Init__AddRow(row);
                try
                {
                    tmp.Init(row);
                }
                catch (Exception ex)
                {
                    _logger.Info("I=" + i.ToString() + "Exception: " + ex.Message);
                }

                try
                {
                    tmp.AddCyberRow();//tmp.GetRow(row);
                }
                catch (Exception ex)
                {
                    _logger.Info(ex.Message);
                }

                if (j % 1000 == 0)
                {
                    //int res= DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp_qry);
                    int res = DBHelper2.EseguiSuDBCyberPlan_Bulk(ref cm, tmp._CP_tabella, Item._dataTable);
                    _logger.Info(i + " items... [" + tmp.GetID() + "]");
                    j = 0;
                }
            }
            int added = tmp.AddLastCyberRows();

            if (j > 0 || added > 0)
            {
                //DBHelper2.EseguiSuDBCyberPlan(ref cm, tmp_qry);
                int res = DBHelper2.EseguiSuDBCyberPlan_Bulk(ref cm, tmp._CP_tabella, Item._dataTable);
                _logger.Info(i + added + " items [last= " + tmp.GetID() + "]");
            }
            tmp.DoLastAction(ref cm, this);
            dtr.Close();

            //if (thereIsMessage)
            //{
            //    Utils.SendMail("*****@*****.**", "*****@*****.**", message_error);
            //    //Utils.SendMail("*****@*****.**", "[email protected],[email protected]", message_error);
            //}

            _logger.Debug(System.Reflection.MethodBase.GetCurrentMethod().Name + " ---   ended at " + DateTime.Now.ToString());
        }