private static void ProcessInput(string input, SecureGateLog log) { System.Console.WriteLine("Proses " + input); if (input.Length > 0) { string str = string.Empty; string[] strArray = new string[] { ConfigurationSettings.AppSettings["eiroutprint.printer1.code"], ConfigurationSettings.AppSettings["eiroutprint.printer2.code"] }; if ((strArray[0] == null) || (strArray[0] == string.Empty)) { strArray[0] = "#1"; } if ((strArray[1] == null) || (strArray[1] == string.Empty)) { strArray[1] = "#2"; } if (input.ToUpper().EndsWith(strArray[0].ToUpper())) { input = input.Substring(0, input.Length - strArray[0].Length); posnumber = 1; str = strArray[0]; } else if (input.ToUpper().EndsWith(strArray[1].ToUpper())) { input = input.Substring(0, input.Length - strArray[1].Length); posnumber = 2; str = strArray[1]; } else { //input = input.Substring(0, input.Length - strArray[1].Length); posnumber = 1; str = strArray[0]; } if (str != string.Empty) { System.Console.WriteLine("container card: " + input + " terminal: " + str); _LastProcessedInput = input + str; } else { System.Console.WriteLine("container card: " + input + " terminal: default"); _LastProcessedInput = input; } ContCard card = new ContCard(); ContCardDal contCardDal = new ContCardDal(); card = contCardDal.CheckKendaraan(Convert.ToInt64(input)); System.Console.WriteLine(input); if (card.ContCardID == 0) { System.Console.WriteLine("Card #" + card.ContCardID + " is NOT recognized !!!"); } else if (card.Dtm2.Length == 0) { System.Console.WriteLine("Step 1. Start proceeding MODE " + card.CardMode + " at " + DateTime.Now.ToString("hh:mm:ss")); if ((card.CardMode == "OUT") && (card.ContInOutID > 0L)) { if (!PrintEir(card)) { System.Console.WriteLine("INVALID EIROUT CONDITION DETECTED !!!"); return; } System.Console.Write("Step 7. Updating counter at " + DateTime.Now.ToString("hh:mm:ss") + "..."); //string str2 = ""; //int num = 0; //string str4 = ConfigurationSettings.AppSettings["loginserver"]; //if (string.IsNullOrEmpty(str4)) // str4 = "localhost"; //NpgsqlConnection connection = new NpgsqlConnection("Server=" + str4 + ";Port=5432;User=edimsl;Password=medus;Database=mitcts;"); //connection.Open(); //NpgsqlCommand command = new NpgsqlCommand("select * from counter", connection); //if ((posnumber == 0) || (posnumber == 1)) //{ // str2 = "1"; //} //else if (posnumber == 2) //{ // str2 = "2"; //} //num = Convert.ToInt16(str2) - 1; } else if ((card.CardMode == "IN") && ((card.Dtm3.Length == 0) || (card.UserID3.Length == 0))) { System.Console.WriteLine("INVALID UNLOAD CONDITION DETECTED !!! please scan barcode on unload device before gate out."); return; } card.Dtm2 = GlobalWebServiceDAL.GetServerDtm().ToString("yyyy-MM-dd HH:mm:ss"); card.Loc2 = _SecureGateLocName; contCardDal.UpdateContCardGateOut(card.ContCardID, card.Loc2); System.Console.WriteLine("DTM2 USED"); if (card.CardMode == "OUT") { bool flag2 = false; System.Console.Write("Checking DTM2 at " + DateTime.Now.ToString("hh:mm:ss") + "..."); //new ContInOut().FillByID(card.ContInOutID); flag2 = card.Dtm2.Length > 0; if (flag2) { System.Console.WriteLine("OK"); } if (!flag2) { System.Console.WriteLine("Concard dtmout empty, Please contact Customer Service"); } else { OpenGate(input, log, card); } } else { OpenGate(input, log, card); } if ((_CaptureFile.Length > 0) && File.Exists(_CaptureFile)) { FileStream stream = File.OpenRead(_CaptureFile); BinaryReader reader = new BinaryReader(stream); ContCardPic pic = new ContCardPic(); ContCardPICDal contCardPICDal = new ContCardPICDal(); pic.ContCardID = card.ContCardID; pic.PicName = "OUT"; pic.PicData = reader.ReadBytes((int)stream.Length); reader.Close(); stream.Close(); contCardPICDal.InsertContCardPIC(pic); File.Move(_CaptureFile, string.Concat(new object[] { _CaptureFile, ".", CtsCounter.NextValCtsCounter("CONTCARDPICOUT_SEQ"), ".jpg" })); System.Console.WriteLine("Picture Captured To Database."); } } else { System.Console.WriteLine("DTM 2 (STACKING) IS INVALID !!!"); } } }
private static bool PrintEir(ContCard card) { System.Console.Write("Step 2. Checking INOUTREV at " + DateTime.Now.ToString("hh:mm:ss") + "..."); InOutRevenue revenue = new InOutRevenue(); InOutRevenueDAL revenueDal = new InOutRevenueDAL(); revenue = revenueDal.FillInOutRevenueByInOutRevenueId(card.RefID); System.Console.WriteLine("OK"); System.Console.Write("Step 3. Checking CUSTDO at " + DateTime.Now.ToString("hh:mm:ss") + "..."); CustDo custDo = new CustDo(); CustDoDAL custDoDAL = new CustDoDAL(); custDo = custDoDAL.FillCustDoByCustDoId(revenue.RefId); System.Console.WriteLine("OK"); System.Console.Write("Step 4. Checking CONTINOUT at " + DateTime.Now.ToString("hh:mm:ss") + "..."); ContInOut cont = new ContInOut(); ContInOutDAL contInOutDAL = new ContInOutDAL(); cont = contInOutDAL.FillContInOutById(card.ContInOutID); if (cont.ContInOutId == 0) { System.Console.WriteLine("Error: Container is Invalid."); return(false); } if (cont.DtmOut.Length > 0) { System.Console.WriteLine("Error: Container is Gated Out: " + cont.Cont + " " + cont.DtmOut); return(false); } System.Console.WriteLine("OK"); cont.VesselVoyage = custDo.VesselVoyage; cont.VesselVoyageName = custDo.VesselVoyageName; cont.Destination = custDo.Destination; cont.DestinationName = custDo.DestinationName; cont.DoNumber = custDo.DoNumber; cont.NoSeriOrOut = revenue.NoSeri; cont.ActOut = custDo.ActOut; cont.Shipper = (custDo.ExBatalRealShipper.Length == 0) ? custDo.Shipper : custDo.ExBatalRealShipper; if (custDo.ExBatalRealShipper.Length > 0) { cont.Remarks = "EBO"; } cont.DtmOutDepoIn = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss"); cont.NoMobilOut = card.NoMobilOut; if (cont.AngkutanOut.Length == 0) { cont.AngkutanOut = card.AngkutanOut; } cont.Seal = card.Seal1; if (cont.DtmOut.Length == 0) { cont.DtmOut = GlobalWebServiceDAL.GetServerDtm().AddMinutes(1.0).ToString("yyyy-MM-dd HH:mm:ss"); } if (cont.DtmOut.Length == 0) { System.Console.WriteLine("Error: DtmOut Empty"); return(false); } TruckInDepo depo = new TruckInDepo(); TruckInDepoDAL depoDAL = new TruckInDepoDAL(); depo = depoDAL.FillByNomobilNotOut(cont.NoMobilOut); if (depo.TruckInDepoId == 0) { depo.DtmOut = GlobalWebServiceDAL.GetServerDtm(); } cont.EirOut = CtsCounter.NextValCtsCounter("EIRCTR").ToString(); cont.Location = ""; try { int contCount; ContInOut out2; if (revenue.TakeDef.Contains(cont.Cont)) { goto Label_04FD; } List <ContInOut> list = new List <ContInOut>(); list = contInOutDAL.FillByNoSeriOrOut(revenue.NoSeri, cont.Size, cont.Type, revenue.TakeDef); int count = list.Count; System.Console.WriteLine("Checking over release of " + count.ToString() + " parties at " + DateTime.Now.ToString("hh:mm:ss") + "..."); System.Console.Write("Please wait...."); ContSpec spec = new ContSpec(); string size = cont.Size; if (size != null) { if (size != "20") { if (size == "40") { goto Label_042E; } if (size == "45") { goto Label_0438; } } else { spec[0] = revenue.Take20; } } goto Label_0442; Label_042E: spec[0] = revenue.Take40; goto Label_0442; Label_0438: spec[0] = revenue.Take45; Label_0442: contCount = 0; foreach (ContSpec item in spec) { if (item.ToString() == cont.Type) { contCount = item.ContTotalCount; } } System.Console.WriteLine("completed at " + DateTime.Now.ToString("hh:mm:ss")); if (contCount <= count) { System.Console.WriteLine("Error: Too Many Container Released"); return(false); } Label_04FD: out2 = new ContInOut(); ContInOutDAL contInOutDAL2 = new ContInOutDAL(); out2 = contInOutDAL2.FillContInOutById(cont.ContInOutId); if (out2.DtmOut.Length > 0) { System.Console.WriteLine("Error: Container " + out2.Cont + " Already Gate Out At " + out2.DtmOut + " !!!"); return(false); } contInOutDAL.UpdateContInOut(cont); if (depo.TruckInDepoId == 0) { System.Console.Write("Step 5. Updating truckindepo at " + DateTime.Now.ToString("hh:mm:ss") + "..."); //depo.Update(null, tr); System.Console.WriteLine("OK"); } System.Console.Write("Step 6. Committing changes at " + DateTime.Now.ToString("hh:mm:ss") + "..."); System.Console.WriteLine("OK"); ContInOut out3 = new ContInOut(); ContInOutDAL contInOutDAL3 = new ContInOutDAL(); out3 = contInOutDAL3.FillContInOutById(cont.ContInOutId); if (out3.DtmOut.Length == 0) { System.Console.WriteLine("Re-Checking: continout dtmout is empty"); return(false); } System.Console.WriteLine("Re-Checking: continout dtmout is OK at " + out3.DtmOut); DoPrintEirOut(cont); return(true); } catch (Exception exception) { System.Console.WriteLine("Error printing : " + exception.Message); return(false); } }