/// <summary> /// Using the sql param retrieve the given customer orders /// </summary> /// <param name="sql"></param> /// <returns></returns> private static List <CustOrder> RetrieveOrders(string sql) { LogIt("In RetrieveOrders " + sql); List <CustOrder> data = new List <CustOrder>(); try { using (iDB2Connection conn = Config.Conn) { dr = ExecuteSql(sql, conn); if (dr.HasRows) { while (dr.Read()) { CustOrder tmp = RowToDict(dr); if (tmp != null) { data.Add(tmp); } } } else { data.Add(new CustOrder() { CustomerCode = customer, OrderNumber = ornu, StatusText = "Order(s) not found" }); } } } catch (iDB2CommErrorException ex) { throw new FaultException <DatabaseFault>(new DatabaseFault() { DbOperation = "Connection to database", DbReason = "Exception accessing database", DbMessage = ex.Message }, "Database connection issue"); } return(data); }
/// <summary> /// Using the data reader build the classes internal collection. /// May have to change this routine if I can not get the serializer /// to work correctly. /// </summary> /// <param name="dr"></param> /// <returns></returns> private static CustOrder RowToDict(iDB2DataReader dr) { CustOrder data = new CustOrder(); for (int i = 0; i < dr.FieldCount; i++) { //row.Add(dr.GetName(i).Trim(), dr.GetValue(i).ToString().Trim()); // we can not use the above techinque we have to load a basic object // switch (dr.GetName(i).Trim()) { case "ITEMNO": data.ItemNumber = dr.GetValue(i).ToString().Trim(); break; case "CUSTNO": data.CustomerCode = dr.GetValue(i).ToString().Trim(); break; case "CUSTNAM": data.CustomerName = dr.GetValue(i).ToString().Trim(); break; case "ORDNO": data.OrderNumber = dr.GetValue(i).ToString().Trim(); break; case "ORLINE": data.LineNumber = dr.GetValue(i).ToString().Trim(); break; case "SHPMTH": data.ShippingMethod = dr.GetValue(i).ToString().Trim(); break; case "TRACK": data.TrackingNumber = dr.GetValue(i).ToString().Trim(); break; case "STATUS": data.Status = dr.GetValue(i).ToString().Trim(); break; case "CSRNAM": data.CsrName = dr.GetValue(i).ToString().Trim(); break; case "CSREML": data.CsrEmail = dr.GetValue(i).ToString().Trim(); break; case "ADVTSR": data.Advertiser = dr.GetValue(i).ToString().Trim(); break; case "DESIGN": data.Design = dr.GetValue(i).ToString().Trim(); break; case "RCVDBY": data.ReceivedBy = dr.GetValue(i).ToString().Trim(); break; case "PONUM": data.PoNumber = dr.GetValue(i).ToString().Trim(); break; case "TGTSDT": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.TargetShipDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "ACTSDT": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.ActualShipDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "TGTDLD": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.TargetDeliveryDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "ACTDLD": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.ActualDeliveryDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; } } switch (data.Status) { case "00500": data.StatusText = "Not Confirmed"; break; case "01000": data.StatusText = "Please upload art"; break; case "02000": data.StatusText = "Order Confirmation"; break; case "03000": data.StatusText = "Proof Ready for Approval"; break; case "04000": data.StatusText = "Proof Approved"; break; case "05000": data.StatusText = "In Production - Ripped"; break; case "06000": data.StatusText = "In Production - Printed"; break; case "07000": data.StatusText = "In Production - Finished"; break; case "08000": data.StatusText = "Shipped"; break; case "09000": data.StatusText = "Delivered"; break; case "10000": data.StatusText = "Order Invoiced"; break; default: data.StatusText = "ERROR"; break; } return(data); }