Beispiel #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            t_boxingscan t_boxingscan = db.t_boxingscan.Find(id);

            db.t_boxingscan.Remove(t_boxingscan);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #2
0
 public ActionResult Edit([Bind(Include = "folio,lote,wo,pn,cajas_total,cajas_scan,fecha")] t_boxingscan t_boxingscan)
 {
     if (ModelState.IsValid)
     {
         db.Entry(t_boxingscan).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(t_boxingscan));
 }
Beispiel #3
0
        public ActionResult Create([Bind(Include = "folio,lote,wo,pn,cajas_total,cajas_scan,fecha")] t_boxingscan t_boxingscan)
        {
            if (ModelState.IsValid)
            {
                db.t_boxingscan.Add(t_boxingscan);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(t_boxingscan));
        }
Beispiel #4
0
        // GET: t_boxingscan/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            t_boxingscan t_boxingscan = db.t_boxingscan.Find(id);

            if (t_boxingscan == null)
            {
                return(HttpNotFound());
            }
            return(View(t_boxingscan));
        }
Beispiel #5
0
        public ActionResult loteScan(string id, string linea, int treshold)
        {
            int          ultimo_folio     = 0;
            t_boxingscan queryultimofolio = new t_boxingscan();
            var          fecha_menos21    = System.DateTime.Now.AddDays(-21);

            var queryultimofolios = db.t_boxingscan.Where(x => x.linea == linea && x.fecha > fecha_menos21).OrderByDescending(x => x.folio).ToList();

            if (queryultimofolios.Any())
            {
                queryultimofolio = queryultimofolios.First <t_boxingscan>();
                ultimo_folio     = queryultimofolio.folio;
                if (queryultimofolio.tmuerto_razon == "4")
                {
                    queryultimofolio = queryultimofolios.ElementAt(1);
                }
            }
            else
            {
                queryultimofolio.lote = "0";
            }


            string[]     infoScan      = new string[9];
            t_boxingscan newboxingscan = new t_boxingscan();

            //si el ultimo lote es el mismo no ir a la base de datos de as400
            if (id != queryultimofolio.lote)
            {
                string[] infoLote = new string[5];
                infoScan[0] = "1";
                // var ddlUsuarios = db.t_usuarios.Where(x => x.usuario == id).ToList();
                OdbcConnection myCon       = new OdbcConnection();
                string         sConnection = "Driver=iSeries Access ODBC Driver;System=AS400SYS;uid=inqmex;pwd=inqmex;";
                myCon.ConnectionString = sConnection;
                try
                {
                    myCon.Open();
                    Console.WriteLine("Connection successful!");

                    string sQuery = "SELECT FCSTRHDR.SHWONO WO, FCSTRHDR.SHLOT LOT, FCSTRHDR.SHSPN PN, FCSTRHDR.SHSQTY CASES, FKITMSTR.IMSTCK KPC FROM B20E386T.CSM400MFG.FCSTRHDR FCSTRHDR INNER JOIN  B20E386T.KBM400MFG.FKITMSTR FKITMSTR ON FCSTRHDR.SHSPN = FKITMSTR.IMPN AND FCSTRHDR.SHSCO = FKITMSTR.IMCO WHERE(FCSTRHDR.SHLOT = '" + id + "' AND FCSTRHDR.SHSCO = '686')";


                    OdbcCommand    myCom = new OdbcCommand(sQuery, myCon);
                    OdbcDataReader myReader;
                    myReader = myCom.ExecuteReader();
                    while (myReader.Read())
                    {
                        infoLote[0] = myReader[0].ToString();
                        infoLote[1] = myReader[1].ToString();
                        infoLote[2] = myReader[2].ToString();
                        infoLote[3] = myReader[3].ToString();
                        infoLote[4] = myReader[4].ToString();
                        //Console.WriteLine(myReader[0].ToString() + myReader[1].ToString() + myReader[2].ToString() + " " + myReader[3].ToString());
                    }
                }
                catch (OdbcException ex)
                {
                    Console.WriteLine(ex.Message); return(View());
                }
                myCon.Close();
                newboxingscan.folio         = ultimo_folio + 1;
                newboxingscan.wo            = infoLote[0].Replace(" ", String.Empty);
                newboxingscan.lote          = infoLote[1].Replace(" ", String.Empty);
                newboxingscan.pn            = infoLote[2].Replace(" ", String.Empty);
                newboxingscan.cajas_total   = Convert.ToInt16(infoLote[3]);
                newboxingscan.cajas_scan    = Convert.ToDecimal(1.0 / Convert.ToInt16(infoLote[4]));
                newboxingscan.kits_por_caja = Convert.ToInt16(infoLote[4]);
                newboxingscan.fecha         = System.DateTime.Now;
                newboxingscan.linea         = linea;
            }
            else
            {
                infoScan[0]                 = "0";
                newboxingscan.folio         = ultimo_folio + 1;
                newboxingscan.wo            = queryultimofolio.wo;
                newboxingscan.lote          = queryultimofolio.lote;
                newboxingscan.pn            = queryultimofolio.pn;
                newboxingscan.cajas_total   = queryultimofolio.cajas_total;
                newboxingscan.cajas_scan    = queryultimofolio.cajas_scan;
                newboxingscan.fecha         = System.DateTime.Now;
                newboxingscan.linea         = linea;
                newboxingscan.kits_por_caja = queryultimofolio.kits_por_caja;
            }

            //tiempomuerto
            int    tiempomuerto       = 0;
            var    fechacomparar      = queryultimofolio.fecha;
            string tiempomuerto_razon = "0";

            //1.- Arranque, 2.- nonprogrammed, 3.- cambiowo, 4.- Cierre

            if (queryultimofolio.lote == "0") // si no hubo ningun registro de esta linea antes
            {
                fechacomparar      = new DateTime(System.DateTime.Now.Year, System.DateTime.Now.Month, System.DateTime.Now.Day, 6, 0, 0);
                tiempomuerto_razon = "1";
            }
            else
            {
                if (queryultimofolio.fecha.Value.Date != DateTime.Now.Date)                                                                   // si el ultimo escaneo no fue hoy
                {
                    fechacomparar      = new DateTime(System.DateTime.Now.Year, System.DateTime.Now.Month, System.DateTime.Now.Day, 6, 0, 0); // hora de inicio de turno
                    tiempomuerto_razon = "1";
                }
            }

            TimeSpan diff   = Convert.ToDateTime(newboxingscan.fecha) - Convert.ToDateTime(fechacomparar);
            double   diffm  = diff.TotalMinutes;
            int      diffms = Convert.ToInt32(Math.Floor(diffm));

            if (queryultimofolio.lote != id)
            {
                tiempomuerto = diffms;
            }
            else
            {
                if (diffms >= treshold)
                {
                    tiempomuerto = diffms;
                }
            }



            newboxingscan.tmuerto = tiempomuerto;

            if (tiempomuerto > 0)
            {
                if (tiempomuerto_razon != "1")
                {
                    if (queryultimofolio.lote == newboxingscan.lote)
                    {
                        newboxingscan.tmuerto_razon = "2";
                    }
                    else
                    {
                        newboxingscan.tmuerto_razon = "3";
                    }
                }
                else
                {
                    newboxingscan.tmuerto_razon = "1";
                }
            }
            else
            {
                newboxingscan.tmuerto_razon = "0";
            }
            double totalkits = Math.Round(Convert.ToDouble(newboxingscan.cajas_total * newboxingscan.kits_por_caja));

            infoScan[1] = newboxingscan.wo;
            infoScan[2] = Convert.ToString(newboxingscan.cajas_total);
            infoScan[3] = Convert.ToString(totalkits);

            int     sumkits  = db.t_boxingscan.Where(x => x.wo == newboxingscan.wo && x.linea == linea).Count() + 1;
            decimal sumcajas = Math.Round(Convert.ToDecimal(sumkits * newboxingscan.cajas_scan), 2);

            infoScan[6] = Convert.ToString(Math.Round(Convert.ToDouble((sumcajas / newboxingscan.cajas_total) * 100))) + "%";

            infoScan[5] = Convert.ToString(sumkits);
            infoScan[4] = Convert.ToString(sumcajas);
            if (sumkits > totalkits)
            {
                newboxingscan.wo_completa = "1";
                infoScan[7] = "1";
                infoScan[6] = "100%";
                infoScan[4] = infoScan[2];
                infoScan[5] = infoScan[3];
            }
            else
            {
                newboxingscan.wo_completa = "0";
                infoScan[7] = "0";
            }

            if (ModelState.IsValid)
            {
                db.t_boxingscan.Add(newboxingscan);
                db.SaveChanges();
            }

            infoScan[8] = Convert.ToString(newboxingscan.kits_por_caja);
            return(Json(infoScan, JsonRequestBehavior.AllowGet));
        }