public static List<IMAVenderCostIntervalReportData> GetVenderClientCostByInterval(WoWiModel.WoWiEntities wowidb, DateTime f, DateTime t) { List<IMAVenderCostIntervalReportData> list = new List<IMAVenderCostIntervalReportData>(); IMAVenderCostIntervalReportData temp; try { var venders = (from pr in wowidb.PRs from pj in wowidb.Projects where pr.project_id == pj.Project_Id && pj.Create_Date >= f && pj.Create_Date <= t select pr.vendor_id).Distinct(); decimal TotD = 0, TotQ = 0; foreach (var ven in venders) { decimal venTotD = 0, venTotQ = 0; try { String vName = ""; var prs = from pr in wowidb.PRs where pr.vendor_id == ven select pr; temp = new IMAVenderCostIntervalReportData(); var v = (from i in wowidb.vendors where i.id == ven select i).First(); temp.VenderName = String.IsNullOrEmpty(v.c_name) ? v.name : v.c_name; vName = temp.VenderName; foreach (var p in prs) { try { var pj = (from proj in wowidb.Projects where proj.Project_Id == p.project_id select proj).First(); int month = pj.Create_Date.Month; var quo = (from q in wowidb.Quotation_Version where q.Quotation_Version_Id == pj.Quotation_Id select q).First(); temp.Model = quo.Model_No; int cid = (int)quo.Client_Id; try { var client = (from cli in wowidb.clientapplicants where cli.id == cid select cli).First(); temp.Client = String.IsNullOrEmpty(client.c_companyname) ? client.companyname : client.c_companyname; } catch { } var pri = (from pi in wowidb.PR_item where pi.pr_id == p.pr_id select pi).First(); try { //var tDesc = (from kk in wowidb.Quotation_Target from kkk in wowidb.Targets where pri.quotation_target_id == kk.Quotation_Target_Id && kk.target_id == kkk.target_id select kkk.target_description).First(); var tDesc = (from kk in wowidb.Quotation_Target where pri.quotation_target_id == kk.Quotation_Target_Id select kk.target_description).First(); temp.Country = tDesc; } catch (Exception) { } temp.TotalUSD = ((decimal)pri.amount).ToString("F2"); temp.TotalQTY = ((decimal)pri.quantity).ToString("F0"); list.Add(temp); venTotD += (decimal)pri.amount; venTotQ += (decimal)pri.quantity; } catch (Exception) { //throw; } }//Single vender ends TotD += venTotD; TotQ += venTotQ; if (venTotD!=0) { temp = new IMAVenderCostIntervalReportData() { VenderName = " Total : " }; temp.TotalUSD = venTotD.ToString("F2"); temp.TotalQTY = venTotQ.ToString("F0"); list.Add(temp); } } catch (Exception) { //throw; } }//Vender ends if (TotD != 0) { temp = new IMAVenderCostIntervalReportData() { VenderName = "Balance Total : " }; temp.TotalUSD = TotD.ToString("F2"); temp.TotalQTY = TotQ.ToString("F0"); list.Add(temp); } } catch (Exception) { //throw; } return list; }
public static List<IMAVenderCostIntervalReportData> GetIMACostByInterval(WoWiModel.WoWiEntities wowidb, DateTime f, DateTime t) { List<IMAVenderCostIntervalReportData> list = new List<IMAVenderCostIntervalReportData>(); IMAVenderCostIntervalReportData temp; try { //Find all IMAs var imas = (from pr in wowidb.PRs from pj in wowidb.Projects where pr.project_id == pj.Project_Id && pj.Create_Date >= f && pj.Create_Date <= t select pr.create_user).Distinct(); var venders = (from pr in wowidb.PRs from pj in wowidb.Projects where pr.project_id == pj.Project_Id && pj.Create_Date >= f && pj.Create_Date <= t select pr.vendor_id).Distinct(); decimal TotD = 0, TotQ = 0; foreach (var ima in imas) { decimal imaTotD = 0, imaTotQ = 0; foreach (var ven in venders) { decimal venTotD = 0, venTotQ = 0; try { var prs = from pr in wowidb.PRs where pr.create_user == ima && pr.vendor_id == ven select pr; temp = new IMAVenderCostIntervalReportData() { IMA = ima }; var v = (from i in wowidb.vendors where i.id == ven select i).First(); temp.VenderName = String.IsNullOrEmpty(v.c_name) ? v.name : v.c_name; foreach (var p in prs) { try { var pri = (from pi in wowidb.PR_item where pi.pr_id == p.pr_id select pi).First(); venTotD += (decimal)pri.amount; venTotQ += (decimal)pri.quantity; } catch (Exception) { //throw; } }//Single vender ends imaTotD += venTotD; imaTotQ += venTotQ; temp.TotalUSD = venTotD.ToString("F2"); temp.TotalQTY = venTotQ.ToString("F0"); list.Add(temp); } catch (Exception) { //throw; } }//Vender ends if (imaTotD != 0) { temp = new IMAVenderCostIntervalReportData() { IMA = ima + " Total : " }; TotD += imaTotD; TotQ += imaTotQ; temp.TotalUSD = imaTotD.ToString("F2"); temp.TotalQTY = imaTotQ.ToString("F0"); list.Add(temp); } }//ima ends if (TotD != 0) { temp = new IMAVenderCostIntervalReportData() { IMA = "Balance Total : " }; temp.TotalUSD = TotD.ToString("F2"); temp.TotalQTY = TotQ.ToString("F0"); list.Add(temp); } } catch (Exception) { //throw; } return list; }