protected override Event doGet(int ID) { m_command.CommandText = CustomerInvoice.GetByIDSQL(ID); MySql.Data.MySqlClient.MySqlDataReader r = m_command.ExecuteReader(); CustomerInvoice st = CustomerInvoice.TransformReader(r); r.Close(); m_command.CommandText = CustomerInvoiceItem.GetByEventIDSQL(ID); r = m_command.ExecuteReader(); IList stis = CustomerInvoiceItem.TransformReaderList(r); r.Close(); foreach (CustomerInvoiceItem sti in stis) { sti.EVENT = st; sti.PART = PartRepository.GetByID(m_command, sti.PART.ID); sti.STOCK_CARD_ENTRY = StockCardEntryRepository.FindStockCardEntryByEventItem(m_command, sti.ID, sti.STOCK_CARD_ENTRY_TYPE); if (sti.DO_ITEM.ID > 0) { sti.DO_ITEM = DeliveryOrderRepository.FindDeliveryOrderItem(m_command, sti.DO_ITEM.ID); } st.EVENT_ITEMS.Add(sti); } return(st); }
public static IList TransformReaderList(MySql.Data.MySqlClient.MySqlDataReader aReader) { IList result = new ArrayList(); while (aReader.Read()) { CustomerInvoiceItem transaction = new CustomerInvoiceItem(); transaction.ID = Convert.ToInt32(aReader["cii_id"]); transaction.EVENT = new CustomerInvoice(Convert.ToInt32(aReader["ci_id"])); transaction.PART = new Part(Convert.ToInt32(aReader["part_id"])); transaction.WAREHOUSE = new Warehouse(Convert.ToInt32(aReader["warehouse_id"])); transaction.QYTAMOUNT = Convert.ToDouble(Convert.ToInt32(aReader["cii_amount"])); transaction.STOCK_CARD_ENTRY = new StockCardEntry(Convert.ToInt32(aReader["sce_id"])); transaction.STOCK_CARD_ENTRY_TYPE = (StockCardEntryType)Enum.Parse(typeof(StockCardEntryType), aReader["cii_scentrytype"].ToString()); transaction.STOCK_CARD = new StockCard(Convert.ToInt32(aReader["sc_id"])); transaction.UNIT = new Unit(Convert.ToInt32(aReader["unit_id"])); transaction.PRICE = Convert.ToDouble(Convert.ToInt32(aReader["cii_price"])); transaction.DISC_PERCENT = Convert.ToDouble(Convert.ToInt32(aReader["cii_discpercent"])); transaction.DISC_AMOUNT = Convert.ToDouble(Convert.ToInt32(aReader["cii_discamount"])); transaction.TOTAL_DISCOUNT = Convert.ToDouble(Convert.ToInt32(aReader["cii_totaldisc"])); transaction.SUBTOTAL = Convert.ToDouble(Convert.ToInt32(aReader["cii_subtotal"])); transaction.NOTES = aReader["cii_notes"].ToString(); transaction.DISC_A = Convert.ToDouble(Convert.ToInt32(aReader["cii_disca"])); transaction.DISC_B = Convert.ToDouble(Convert.ToInt32(aReader["cii_discb"])); transaction.DISC_C = Convert.ToDouble(Convert.ToInt32(aReader["cii_discc"])); transaction.DISC_ABC = aReader["cii_discabc"].ToString(); transaction.DO_ITEM = new DeliveryOrderItem(Convert.ToInt32(aReader["doi_id"])); result.Add(transaction); } return(result); }
public override bool Equals(object obj) { CustomerInvoiceItem e = (CustomerInvoiceItem)obj; if (e == null) { return(false); } return(e.ID == this.ID); }
public static CustomerInvoiceItem FindCustomerInvoiceItem(MySql.Data.MySqlClient.MySqlCommand cmd, int poiID) { cmd.CommandText = CustomerInvoiceItem.GetByIDSQL(poiID); MySql.Data.MySqlClient.MySqlDataReader r = cmd.ExecuteReader(); CustomerInvoiceItem result = CustomerInvoiceItem.TransformReader(r); r.Close(); result.EVENT = SalesOrderRepository.GetHeaderOnly(cmd, result.EVENT.ID); result.EVENT.EVENT_ITEMS.Add(result); return(result); }
public double GetTheLatestSIPrice(int supID, int partID, int unitID) { m_command.CommandText = CustomerInvoiceItem.GetTheLatestSOPrice(supID, partID, unitID); object r = m_command.ExecuteScalar(); if (r == null) { return(0d); } double result = Convert.ToDouble(r); return(result); }
public IList FindSIbyPartAndPONo(string find, IList exceptPOI, int supplierID, DateTime trDate) { StringBuilder poisSB = new StringBuilder(); foreach (int i in exceptPOI) { poisSB.Append(i.ToString()); poisSB.Append(','); } string pois = poisSB.ToString(); pois = exceptPOI.Count > 0?pois.Substring(0, pois.Length - 1):""; m_command.CommandText = CustomerInvoiceItem.GetSearchByPartAndPONo(find, supplierID, pois, trDate); MySql.Data.MySqlClient.MySqlDataReader r = m_command.ExecuteReader(); IList result = CustomerInvoiceItem.TransformReaderList(r); r.Close(); foreach (CustomerInvoiceItem t in result) { m_command.CommandText = CustomerInvoice.GetByIDSQL(t.EVENT.ID); r = m_command.ExecuteReader(); t.EVENT = CustomerInvoice.TransformReader(r); r.Close(); m_command.CommandText = Part.GetByIDSQLStatic(t.PART.ID); r = m_command.ExecuteReader(); t.PART = Part.GetPart(r); r.Close(); m_command.CommandText = Unit.GetByIDSQLstatic(t.UNIT.ID); r = m_command.ExecuteReader(); t.UNIT = Unit.GetUnit(r); r.Close(); m_command.CommandText = TermOfPayment.GetByIDSQLStatic(((CustomerInvoice)t.EVENT).TOP.ID); r = m_command.ExecuteReader(); ((CustomerInvoice)t.EVENT).TOP = TermOfPayment.GetTOP(r); r.Close(); m_command.CommandText = Warehouse.GetByIDSQLStatic(t.WAREHOUSE.ID); r = m_command.ExecuteReader(); t.WAREHOUSE = Warehouse.GetWarehouse(r); r.Close(); m_command.CommandText = Unit.GetByIDSQLstatic(t.PART.UNIT.ID); r = m_command.ExecuteReader(); t.PART.UNIT = Unit.GetUnit(r); r.Close(); } return(result); }
private void assertInvoiceAlreadyGenerated(DeliveryOrderItem item) { m_command.CommandText = CustomerInvoiceItem.GetDOUseByCustomerInvoice(item.ID); MySql.Data.MySqlClient.MySqlDataReader r = m_command.ExecuteReader(); IList invs = CustomerInvoiceItem.TransformReaderList(r); r.Close(); foreach (CustomerInvoiceItem x in invs) { m_command.CommandText = CustomerInvoice.GetByIDSQL(x.EVENT.ID); r = m_command.ExecuteReader(); x.EVENT = CustomerInvoice.TransformReader(r); r.Close(); } if (invs.Count > 0) { throw new Exception("DO Part [" + item.PART.CODE + "] is used by Customer Invoice [" + ((CustomerInvoiceItem)invs[0]).EVENT.CODE + "], please delete customer invoice first."); } }
protected override void doSave(Event e) { MySql.Data.MySqlClient.MySqlTransaction trc = m_connection.BeginTransaction(); try { m_command.Transaction = trc; DateTime trDate = DateTime.Today; string codesample = AutoNumberSetupRepository.GetCodeSampleByDomainName(m_command, "CustomerInvoice"); Event codeDate = FindLastCodeAndTransactionDate(codesample); string lastCode = codeDate == null ? string.Empty : codeDate.CODE; DateTime lastDate = codeDate == null ? trDate : codeDate.TRANSACTION_DATE; int trCount = RecordCount(); e.CODE = AutoNumberSetupRepository.GetAutoNumberByDomainName(m_command, "CustomerInvoice", e.CODE, lastCode, lastDate, trDate, trCount == 0); CustomerInvoice stk = (CustomerInvoice)e; m_command.CommandText = e.GetInsertSQL(); m_command.ExecuteNonQuery(); m_command.CommandText = CustomerInvoice.SelectMaxIDSQL(); stk.ID = Convert.ToInt32(m_command.ExecuteScalar()); foreach (CustomerInvoiceItem item in stk.EVENT_ITEMS) { item.PART.UNIT_CONVERSION_LIST = PartRepository.GetUnitConversionsStatic(m_command, item.PART.ID); m_command.CommandText = item.GetInsertSQL(); m_command.ExecuteNonQuery(); m_command.CommandText = CustomerInvoiceItem.SelectMaxIDSQL(); item.ID = Convert.ToInt32(m_command.ExecuteScalar()); } trc.Commit(); } catch (Exception x) { e.ID = 0; foreach (EventItem item in e.EVENT_ITEMS) { item.ID = 0; } trc.Rollback(); throw x; } }
public static StockCard FindStockCardHeader(MySql.Data.MySqlClient.MySqlCommand cmd, long partId, long locationId, Period periodId, DateTime trDate) { cmd.CommandText = String.Format("select * from table_stockcard where part_id = {0} and warehouse_id = {1} and period_id = {2}", partId, locationId, periodId.ID); MySql.Data.MySqlClient.MySqlDataReader r = cmd.ExecuteReader(); StockCard sc = StockCard.TransformReader(r); r.Close(); if (sc != null) { sc.PERIOD = PeriodRepository.FindPeriod(cmd, sc.PERIOD.ID); sc.WAREHOUSE = StockCardRepository.FindWarehouse(cmd, sc.WAREHOUSE.ID); cmd.CommandText = StockCardEntry.FindByStockCard(sc.ID, periodId.START_DATE, trDate); MySql.Data.MySqlClient.MySqlDataReader rx = cmd.ExecuteReader(); sc.STOCK_CARD_ENTRIES = StockCardEntry.TransformReaderList(rx); rx.Close(); foreach (StockCardEntry e in sc.STOCK_CARD_ENTRIES) { if (e.STOCK_CARD_ENTRY_TYPE == StockCardEntryType.SupplierInvoice) { cmd.CommandText = SupplierInvoiceItem.GetByIDSQL(e.EVENT_ITEM.ID); rx = cmd.ExecuteReader(); e.EVENT_ITEM = SupplierInvoiceItem.TransformReader(rx); rx.Close(); } if (e.STOCK_CARD_ENTRY_TYPE == StockCardEntryType.CustomerInvoice) { cmd.CommandText = CustomerInvoiceItem.GetByIDSQL(e.EVENT_ITEM.ID); rx = cmd.ExecuteReader(); e.EVENT_ITEM = CustomerInvoiceItem.TransformReader(rx); rx.Close(); } } } return(sc); }
protected override void doDelete(Event e) { CustomerInvoice st = (CustomerInvoice)e; MySql.Data.MySqlClient.MySqlTransaction trc = m_connection.BeginTransaction(); m_command.Transaction = trc; try { if (getEventStatus(st.ID) == EventStatus.Confirm) { throw new Exception("Revise before delete"); } m_command.CommandText = CustomerInvoiceItem.DeleteAllByEventSQL(st.ID); m_command.ExecuteNonQuery(); m_command.CommandText = CustomerInvoice.DeleteSQL(st.ID); m_command.ExecuteNonQuery(); trc.Commit(); } catch (Exception x) { trc.Rollback(); throw x; } }
protected override void doUpdate(Event en) { MySql.Data.MySqlClient.MySqlTransaction trc = m_connection.BeginTransaction(); m_command.Transaction = trc; try { CustomerInvoice e = (CustomerInvoice)en; m_command.CommandText = e.GetUpdateSQL(); m_command.ExecuteNonQuery(); foreach (CustomerInvoiceItem sti in e.EVENT_ITEMS) { sti.PART.UNIT_CONVERSION_LIST = PartRepository.GetUnitConversionsStatic(m_command, sti.PART.ID); if (sti.ID > 0) { m_command.CommandText = sti.GetUpdateSQL(); m_command.ExecuteNonQuery(); } else { m_command.CommandText = sti.GetInsertSQL(); m_command.ExecuteNonQuery(); m_command.CommandText = CustomerInvoiceItem.SelectMaxIDSQL(); sti.ID = Convert.ToInt32(m_command.ExecuteScalar()); } } m_command.CommandText = CustomerInvoiceItem.DeleteUpdate(e.ID, e.EVENT_ITEMS); m_command.ExecuteNonQuery(); trc.Commit(); } catch (Exception x) { trc.Rollback(); throw x; } }
public void recalculateAvailable() { BALANCE_AVAILABLE = 0; BOOK_AVAILABLE = 0; BACK_ORDER_AVAILABLE = 0; if (STOCK_CARD_ENTRIES.Count == 0) { return; } foreach (StockCardEntry item in STOCK_CARD_ENTRIES) { switch (item.STOCK_CARD_ENTRY_TYPE) { case StockCardEntryType.OpeningStock: BALANCE_AVAILABLE += item.AMOUNT; break; case StockCardEntryType.StockTaking: BALANCE_AVAILABLE += item.AMOUNT; assertNotMinusBalanceStock(); break; case StockCardEntryType.PurchaseOrder: BACK_ORDER_AVAILABLE += item.AMOUNT; break; case StockCardEntryType.GoodReceiveNote: BALANCE_AVAILABLE += item.AMOUNT; BACK_ORDER_AVAILABLE -= item.AMOUNT; break; case StockCardEntryType.SalesOrder: BOOK_AVAILABLE += item.AMOUNT; break; case StockCardEntryType.DeliveryOrder: BOOK_AVAILABLE -= item.AMOUNT; BALANCE_AVAILABLE -= item.AMOUNT; break; case StockCardEntryType.PurchaseReturn: BALANCE_AVAILABLE -= item.AMOUNT; break; case StockCardEntryType.SalesReturn: BALANCE_AVAILABLE += item.AMOUNT; break; case StockCardEntryType.SupplierInvoice: SupplierInvoiceItem sit = (SupplierInvoiceItem)item.EVENT_ITEM; if (sit.GRN_ITEM != null) { if (sit.GRN_ITEM.ID == 0) { BALANCE += item.AMOUNT; } } break; case StockCardEntryType.CustomerInvoice: CustomerInvoiceItem cit = (CustomerInvoiceItem)item.EVENT_ITEM; if (cit.DO_ITEM != null) { if (cit.DO_ITEM.ID == 0) { BALANCE -= item.AMOUNT; } } break; case StockCardEntryType.POS: BALANCE -= item.AMOUNT; break; default: break; } } BALANCE_AVAILABLE_RECALCULATE = BALANCE_AVAILABLE; BOOK_AVAILABLE_RECALCULATE = BOOK_AVAILABLE; BACK_ORDER_AVAILABLE_RECALCULATE = BACK_ORDER_AVAILABLE; }
public void ProcessConfirm(EventItem item) { assertSamePartLocation(item.PART, item.WAREHOUSE); assertPeriodIsCurrent(); assertInPeriodRange(item.EVENT.TRANSACTION_DATE); double qty = item.GetAmountInSmallestUnit(); recalculateAvailable(); switch (item.STOCK_CARD_ENTRY_TYPE) { case StockCardEntryType.OpeningStock: BALANCE += qty; BALANCE_AVAILABLE_RECALCULATE += qty; break; case StockCardEntryType.StockTaking: BALANCE += qty; BALANCE_AVAILABLE_RECALCULATE += qty; assertNotMinusBalanceStock(); break; case StockCardEntryType.PurchaseOrder: BACK_ORDER += qty; BACK_ORDER_AVAILABLE_RECALCULATE += qty; break; case StockCardEntryType.GoodReceiveNote: BALANCE += qty; BALANCE_AVAILABLE_RECALCULATE += qty; BACK_ORDER -= qty; BACK_ORDER_AVAILABLE_RECALCULATE -= qty; assertNotMinusBackOrderStock(); break; case StockCardEntryType.SalesOrder: BOOKED += qty; BOOK_AVAILABLE_RECALCULATE += qty; break; case StockCardEntryType.DeliveryOrder: BOOKED -= qty; BOOK_AVAILABLE_RECALCULATE -= qty; assertNotMinusBookedStock(); BALANCE -= qty; BALANCE_AVAILABLE_RECALCULATE -= qty; assertNotMinusBalanceStock(); break; case StockCardEntryType.PurchaseReturn: BALANCE -= qty; BALANCE_AVAILABLE_RECALCULATE -= qty; assertNotMinusBalanceStock(); break; case StockCardEntryType.SalesReturn: BALANCE += qty; BALANCE_AVAILABLE_RECALCULATE += qty; break; case StockCardEntryType.SupplierInvoice: SupplierInvoiceItem sit = (SupplierInvoiceItem)item; if (sit.GRN_ITEM != null) { if (sit.GRN_ITEM.ID == 0) { BALANCE += qty; BALANCE_AVAILABLE_RECALCULATE += qty; } } break; case StockCardEntryType.CustomerInvoice: CustomerInvoiceItem cit = (CustomerInvoiceItem)item; if (cit.DO_ITEM != null) { if (cit.DO_ITEM.ID == 0) { BALANCE -= qty; BALANCE_AVAILABLE_RECALCULATE -= qty; assertNotMinusBalanceStock(); } } break; case StockCardEntryType.POS: BALANCE -= qty; BALANCE_AVAILABLE_RECALCULATE -= qty; assertNotMinusBalanceStock(); break; default: break; } createStockCardEntry(item); }
public DataSet GetStockReport(bool allPart, string partStart, string partEnd, bool allGroup, string groupStart, string groupEnd, DateTime asOfDate) { DataSet ds = new DataSet(); m_cmd.CommandText = "delete from table_temp"; m_cmd.ExecuteNonQuery(); m_cmd.CommandText = Part.GetStockReport(allPart, partStart, partEnd, allGroup, groupStart, groupEnd); MySql.Data.MySqlClient.MySqlDataReader rdr = m_cmd.ExecuteReader(); IList result = Part.GetAllStaticForReport(rdr); rdr.Close(); //IList stockcards = new ArrayList(); foreach (Part p in result) { p.UNIT = PartRepository.GetUnitByID(m_cmd, p.UNIT.ID); p.PART_GROUP = PartRepository.GetPartGroupByID(m_cmd, p.PART_GROUP.ID); StockCard sc = new StockCard(p, null, null); m_cmd.CommandText = StockCardEntry.FindByStockCardEntryByPart(p.ID, new DateTime(2000, 1, 1), asOfDate); rdr = m_cmd.ExecuteReader(); sc.STOCK_CARD_ENTRIES = StockCardEntry.TransformReaderList(rdr); rdr.Close(); foreach (StockCardEntry e in sc.STOCK_CARD_ENTRIES) { if (e.STOCK_CARD_ENTRY_TYPE == StockCardEntryType.SupplierInvoice) { m_cmd.CommandText = SupplierInvoiceItem.GetByIDSQL(e.EVENT_ITEM.ID); rdr = m_cmd.ExecuteReader(); e.EVENT_ITEM = SupplierInvoiceItem.TransformReader(rdr); rdr.Close(); } if (e.STOCK_CARD_ENTRY_TYPE == StockCardEntryType.CustomerInvoice) { m_cmd.CommandText = CustomerInvoiceItem.GetByIDSQL(e.EVENT_ITEM.ID); rdr = m_cmd.ExecuteReader(); e.EVENT_ITEM = CustomerInvoiceItem.TransformReader(rdr); rdr.Close(); } } sc.recalculateAvailable(); m_cmd.CommandText = string.Format(@"insert into table_temp ( string1,string2,string3,double1,double2 ) values ( '{0}','{1}','{2}',{3},{4} )", p.PART_GROUP.NAME + " ~ " + p.PART_GROUP.CODE, p.CODE, p.UNIT.NAME, sc.BALANCE_AVAILABLE, p.MINIMUM_STOCK ); m_cmd.ExecuteNonQuery(); //stockcards.Add(sc); } return(ds); }
//------------- //public void UpdatePart() //{ // MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); // cmd.Connection = m_connection; // m_connection.Open(); // cmd.CommandText = m_entity.GetAllSQL(); // MySql.Data.MySqlClient.MySqlDataReader r = cmd.ExecuteReader(); // IList result = new ArrayList(); // while (r.Read()) // { // PartUnit pu = new PartUnit(); // pu.PART = Convert.ToInt32(r["part_id"]); // pu.UNIT = Convert.ToInt32(r["unit_id"]); // result.Add(pu); // } // r.Close(); // foreach (PartUnit e in result) // { // cmd.CommandText = UnitConversion.GetByPartAndUnitConIDSQL(e.PART, e.UNIT); // r = cmd.ExecuteReader(); // UnitConversion uc = UnitConversion.GetUnitConversion(r); // r.Close(); // if (uc == null) // { // uc = new UnitConversion(); // uc.BARCODE = e.BARCODE; // uc.CONVERSION_QTY = 1; // uc.CONVERSION_UNIT = e.UNIT; // uc.COST_PRICE = e.COST_PRICE; // uc.ORIGINAL_QTY = 1; // uc.PART = e; // uc.SELL_PRICE = e.SELL_PRICE; // cmd.CommandText = uc.GetInsertSQL(); // cmd.ExecuteNonQuery(); // } // } //} //private class PartUnit //{ // public int PART, UNIT; //} public IList GetAllEvents(int partID) { ArrayList result = new ArrayList(); OpenConnection(); MySql.Data.MySqlClient.MySqlDataReader rdr; Part p = PartRepository.GetByID(m_cmd, partID); m_cmd.CommandText = PurchaseOrderItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList pois = PurchaseOrderItem.TransformReaderList(rdr); rdr.Close(); foreach (PurchaseOrderItem itm in pois) { itm.EVENT = PurchaseOrderRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = SalesOrderItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList sois = SalesOrderItem.TransformReaderList(rdr); rdr.Close(); foreach (SalesOrderItem itm in sois) { itm.EVENT = SalesOrderRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = GoodReceiveNoteItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList grnis = GoodReceiveNoteItem.TransformReaderList(rdr); rdr.Close(); foreach (GoodReceiveNoteItem itm in grnis) { itm.EVENT = GoodReceiveNoteRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = PurchaseReturnItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList prnis = PurchaseReturnItem.TransformReaderList(rdr); rdr.Close(); foreach (PurchaseReturnItem itm in prnis) { itm.EVENT = PurchaseReturnRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = SalesReturnItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList srnis = SalesReturnItem.TransformReaderList(rdr); rdr.Close(); foreach (SalesReturnItem itm in srnis) { itm.EVENT = SalesReturnRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = SupplierInvoiceItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList piis = SupplierInvoiceItem.TransformReaderList(rdr); rdr.Close(); foreach (SupplierInvoiceItem itm in piis) { itm.EVENT = SupplierInvoiceRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; if (itm.GRN_ITEM.ID == 0) { result.Add(itm); } } m_cmd.CommandText = CustomerInvoiceItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList ciis = CustomerInvoiceItem.TransformReaderList(rdr); rdr.Close(); foreach (CustomerInvoiceItem itm in ciis) { itm.EVENT = CustomerInvoiceRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; if (itm.DO_ITEM.ID == 0) { result.Add(itm); } } m_cmd.CommandText = POSItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList posi = POSItem.TransformReaderList(rdr); rdr.Close(); foreach (POSItem itm in posi) { itm.EVENT = POSRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; if (itm.DO_ITEM.ID == 0) { result.Add(itm); } } m_cmd.CommandText = StockTakingItems.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList sti = StockTakingItems.TransformReaderList(rdr); rdr.Close(); foreach (StockTakingItems itm in sti) { itm.EVENT = StockTakingRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = OpeningStockItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList opi = OpeningStockItem.TransformReaderList(rdr); rdr.Close(); foreach (OpeningStockItem itm in opi) { itm.EVENT = OpeningStockRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } m_cmd.CommandText = DeliveryOrderItem.GetByPartIDSQL(partID); rdr = m_cmd.ExecuteReader(); IList doi = DeliveryOrderItem.TransformReaderList(rdr); rdr.Close(); foreach (DeliveryOrderItem itm in doi) { itm.EVENT = DeliveryOrderRepository.GetHeaderOnly(m_cmd, itm.EVENT.ID); itm.PART = p; result.Add(itm); } result.Sort(new EventDateComparer()); return(result); }
public IList FindDOItemlistByCustomerDate(string find, int supID, DateTime trdate, IList doIDS) { m_command.CommandText = CustomerInvoiceItem.GetDOUseByCustomerInvoice(); MySql.Data.MySqlClient.MySqlDataReader r = m_command.ExecuteReader(); if (r.HasRows) { while (r.Read()) { int id = Convert.ToInt32(r[0]); if (!doIDS.Contains(id)) { doIDS.Add(id); } } } r.Close(); StringBuilder poisSB = new StringBuilder(); foreach (int i in doIDS) { poisSB.Append(i.ToString()); poisSB.Append(','); } string pois = poisSB.ToString(); pois = doIDS.Count > 0 ? pois.Substring(0, pois.Length - 1) : ""; if (find == "") { m_command.CommandText = DeliveryOrderItem.GetDOItemByCusDate(supID, trdate, pois); } else { m_command.CommandText = DeliveryOrderItem.GetSearchByPartAndDONo(find, supID, pois, trdate); } r = m_command.ExecuteReader(); IList result = DeliveryOrderItem.TransformReaderList(r); r.Close(); foreach (DeliveryOrderItem t in result) { m_command.CommandText = DeliveryOrder.GetByIDSQL(t.EVENT.ID); r = m_command.ExecuteReader(); t.EVENT = DeliveryOrder.TransformReader(r); r.Close(); m_command.CommandText = Part.GetByIDSQLStatic(t.PART.ID); r = m_command.ExecuteReader(); t.PART = Part.GetPart(r); r.Close(); m_command.CommandText = Unit.GetByIDSQLstatic(t.UNIT.ID); r = m_command.ExecuteReader(); t.UNIT = Unit.GetUnit(r); r.Close(); m_command.CommandText = Warehouse.GetByIDSQLStatic(t.WAREHOUSE.ID); r = m_command.ExecuteReader(); t.WAREHOUSE = Warehouse.GetWarehouse(r); r.Close(); m_command.CommandText = Unit.GetByIDSQLstatic(t.PART.UNIT.ID); r = m_command.ExecuteReader(); t.PART.UNIT = Unit.GetUnit(r); r.Close(); } return(result); }