public static void GenerateBill(int id) { InitializeWorkbookBill(); ISheet sheet1 = hssfworkbook.GetSheet("s"); UniversalEntity ue = new UniversalEntity(); //UniversalEntity uev = new UniversalEntity(); UAbonent ua = new UAbonent(); UAbonentDO uado = new UAbonentDO(); UOrder uo = new UOrder(); UOrderDO uodo = new UOrderDO(); UOrderDetailsDO uodDO = new UOrderDetailsDO(); ue = uado.RetrieveByOrderID(id); string header = string.Empty; string actNumber = string.Empty; if (ue.Count > 0) { ua = (UAbonent)ue[0]; header += ua.Title + " \nюр адрес: " + ua.Address + " \n№ св. пл. НДС: " + ua.VATPay + " \n№ ИНН: " + ua.INN + " \nтел.: " + ua.Phone; } ue = uodo.RetrieveUOrderById(id); if (ue.Count > 0) { uo = (UOrder)ue[0]; sheet1.GetRow(4).GetCell(GetLetterNumber("aj")).SetCellValue(uo.ID); sheet1.GetRow(9).GetCell(GetLetterNumber("ai")).SetCellValue(RuDateAndMoneyConverter.DateToTextLongUA(uo.DateIn) + "р."); } ue = uodDO.RetrieveUOrderDetailsByOrderID(id); sheet1.GetRow(16).GetCell(6).SetCellValue(header); int count = ue.Count; double sum = 0; int row = 20; if (count <= 5) { CustomRetrieverDO crDO = new CustomRetrieverDO(); ue = crDO.RetrieveUActByOrderID5Low(id); if (ue.Count > 0) { for (int i = row; i < ue.Count + row; i++) { ArrayList al = (ArrayList)ue[i - row]; sheet1.GetRow(i).GetCell(GetLetterNumber("a")).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}, {1}, {2}", al[0].ToString(), al[1].ToString(), al[2].ToString())); sheet1.GetRow(i).GetCell(GetLetterNumber("ad")).SetCellValue("шт."); sheet1.GetRow(i).GetCell(GetLetterNumber("aj")).SetCellValue(al[4].ToString()); sheet1.GetRow(i).GetCell(GetLetterNumber("ap")).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sheet1.GetRow(i).GetCell(GetLetterNumber("av")).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sum += Convert.ToDouble(al[3]); } } } else { CustomRetrieverDO crDO = new CustomRetrieverDO(); ue = crDO.RetrieveUActByOrderID5High(id); if (ue.Count > 0) { for (int i = row; i < ue.Count + row; i++) { ArrayList al = (ArrayList)ue[i - row]; //FOrderDetailsAct u = (FOrderDetailsAct)fodal[i - row]; sheet1.GetRow(i).GetCell(GetLetterNumber("a")).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}", al[0].ToString())); sheet1.GetRow(i).GetCell(GetLetterNumber("ad")).SetCellValue("шт."); sheet1.GetRow(i).GetCell(GetLetterNumber("aj")).SetCellValue(al[3].ToString()); sheet1.GetRow(i).GetCell(GetLetterNumber("ap")).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sheet1.GetRow(i).GetCell(GetLetterNumber("av")).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sum += Convert.ToDouble(al[2]); } } } /*int row = 20; * double sum = 0; * * * * * * if (ue.Count > 0) * { * for (int i = row; i < ue.Count + row; i++) * { * UOrderDetails u = (UOrderDetails)ue[i - row]; * * sheet1.GetRow(i).GetCell(GetLetterNumber("a")).SetCellValue("Определения метрологических характеристик водомера "); * sheet1.GetRow(i).GetCell(GetLetterNumber("ad")).SetCellValue("шт."); * sheet1.GetRow(i).GetCell(GetLetterNumber("aj")).SetCellValue("1"); * sheet1.GetRow(i).GetCell(GetLetterNumber("ap")).SetCellValue(u.Price.ToString("0.00")); * sheet1.GetRow(i).GetCell(GetLetterNumber("av")).SetCellValue(u.Price.ToString("0.00")); * sum += u.Price; * } * }*/ sheet1.GetRow(31).GetCell(GetLetterNumber("av")).SetCellValue(sum.ToString("0.00")); sheet1.GetRow(32).GetCell(GetLetterNumber("av")).SetCellValue(Utilities.GetVAT(sum).ToString("0.00")); sheet1.GetRow(33).GetCell(GetLetterNumber("av")).SetCellValue((sum + Utilities.GetVAT(sum)).ToString("0.00")); sheet1.GetRow(35).GetCell(GetLetterNumber("a")).SetCellValue("Загальна сума, що підлягає оплаті: " + UADateAndMoneyConverter.CurrencyToTxt((sum + Utilities.GetVAT(sum)), true)); //Загальна сума, що підлягає оплаті //Force excel to recalculate all the formula while open sheet1.ForceFormulaRecalculation = true; WriteToFileB(); }
public static void GenerateUAct(int id) { UniversalEntity ue = new UniversalEntity(); UAbonent ua = new UAbonent(); UAbonentDO uado = new UAbonentDO(); UOrder uo = new UOrder(); UOrderDO uodo = new UOrderDO(); UOrderDetailsDO uodDO = new UOrderDetailsDO(); ue = uado.RetrieveByOrderID(id); string header = string.Empty; string actNumber = string.Empty; if (ue.Count > 0) { ua = (UAbonent)ue[0]; header += ua.Title + " \nюр адрес: " + ua.Address + " \n№ св. пл. НДС: " + ua.VATPay + " \n№ ИНН: " + ua.INN + " \nтел.: " + ua.Phone; } ue = uodo.RetrieveUOrderById(id); if (ue.Count > 0) { uo = (UOrder)ue[0]; if (uo.DateOut.HasValue) { actNumber = " г. Донецк АКТ № " + uo.ID + " от ____________________" + DateTime.Now.Year.ToString() + " г."; } else { actNumber = " г. Донецк АКТ № " + uo.ID + " от ____________________" + DateTime.Now.Year.ToString() + " г."; } } ue = uodDO.RetrieveUOrderDetailsByOrderID(id); InitializeWorkbook(); ISheet sheet1 = hssfworkbook.GetSheet("s"); sheet1.GetRow(11).GetCell(0).SetCellValue(" по договору (письму) № " + uo.ID + " от ____________________" + DateTime.Now.Year.ToString() + " г."); sheet1.GetRow(41).GetCell(0).SetCellValue(" по договору (письму) № " + uo.ID + " от ____________________" + DateTime.Now.Year.ToString() + " г."); //create cell on rows, since rows do already exist,it's not necessary to create rows again. sheet1.GetRow(2).GetCell(3).SetCellValue(header); sheet1.GetRow(32).GetCell(3).SetCellValue(header); sheet1.GetRow(9).GetCell(0).SetCellValue(actNumber); sheet1.GetRow(39).GetCell(0).SetCellValue(actNumber); int rowC = 44; int row = 14; double sum = 0; int count = ue.Count; if (count <= 5) { CustomRetrieverDO crDO = new CustomRetrieverDO(); ue = crDO.RetrieveUActByOrderID5Low(id); if (ue.Count > 0) { for (int i = row; i < ue.Count + row; i++) { ArrayList al = (ArrayList)ue[i - row]; //FOrderDetailsAct u = (FOrderDetailsAct)fodal[i - row]; sheet1.GetRow(i).GetCell(0).SetCellValue(i - row + 1); sheet1.GetRow(i).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}, {1}, {2}", al[0].ToString(), al[1].ToString(), al[2].ToString())); sheet1.GetRow(i).GetCell(2).SetCellValue("калькуляция"); sheet1.GetRow(i).GetCell(3).SetCellValue("шт."); sheet1.GetRow(i).GetCell(4).SetCellValue(al[4].ToString()); sheet1.GetRow(i).GetCell(5).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sheet1.GetRow(i).GetCell(6).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sheet1.GetRow(rowC).GetCell(0).SetCellValue(i - row + 1); sheet1.GetRow(rowC).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}, {1}, {2}", al[0].ToString(), al[1].ToString(), al[2].ToString())); sheet1.GetRow(rowC).GetCell(2).SetCellValue("калькуляция"); sheet1.GetRow(rowC).GetCell(3).SetCellValue("шт."); sheet1.GetRow(rowC).GetCell(4).SetCellValue(al[4].ToString()); sheet1.GetRow(rowC).GetCell(5).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sheet1.GetRow(rowC).GetCell(6).SetCellValue(Convert.ToDouble(al[3]).ToString("0.00")); sum += Convert.ToDouble(al[3]); rowC++; } } } else { CustomRetrieverDO crDO = new CustomRetrieverDO(); ue = crDO.RetrieveUActByOrderID5High(id); if (ue.Count > 0) { for (int i = row; i < ue.Count + row; i++) { ArrayList al = (ArrayList)ue[i - row]; //FOrderDetailsAct u = (FOrderDetailsAct)fodal[i - row]; sheet1.GetRow(i).GetCell(0).SetCellValue(i - row + 1); sheet1.GetRow(i).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}", al[0].ToString())); sheet1.GetRow(i).GetCell(2).SetCellValue("калькуляция"); sheet1.GetRow(i).GetCell(3).SetCellValue("шт."); sheet1.GetRow(i).GetCell(4).SetCellValue(al[3].ToString()); sheet1.GetRow(i).GetCell(5).SetCellValue(Convert.ToDouble(al[1]).ToString("0.00")); sheet1.GetRow(i).GetCell(6).SetCellValue(Convert.ToDouble(al[2]).ToString("0.00")); sheet1.GetRow(rowC).GetCell(0).SetCellValue(i - row + 1); sheet1.GetRow(rowC).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}", al[0].ToString())); sheet1.GetRow(rowC).GetCell(2).SetCellValue("калькуляция"); sheet1.GetRow(rowC).GetCell(3).SetCellValue("шт."); sheet1.GetRow(rowC).GetCell(4).SetCellValue(al[3].ToString()); sheet1.GetRow(rowC).GetCell(5).SetCellValue(Convert.ToDouble(al[1]).ToString("0.00")); sheet1.GetRow(rowC).GetCell(6).SetCellValue(Convert.ToDouble(al[2]).ToString("0.00")); sum += Convert.ToDouble(al[2]); rowC++; } } } /*int rowC = 44; * int row = 14; * double sum = 0; * if (ue.Count > 0) * { * for (int i = row; i < ue.Count + row; i++) * { * UOrderDetails u = (UOrderDetails)ue[i - row]; * * sheet1.GetRow(i).GetCell(0).SetCellValue(i - row+1); * sheet1.GetRow(i).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}, {1}, {2}", al[0].ToString(), al[1].ToString(), al[2].ToString())); * sheet1.GetRow(i).GetCell(2).SetCellValue("калькуляция"); * sheet1.GetRow(i).GetCell(3).SetCellValue("шт."); * sheet1.GetRow(i).GetCell(4).SetCellValue("1"); * sheet1.GetRow(i).GetCell(5).SetCellValue(u.Price.ToString("0.00")); * sheet1.GetRow(i).GetCell(6).SetCellValue(u.Price.ToString("0.00")); * * sheet1.GetRow(rowC).GetCell(0).SetCellValue(i - row + 1); * sheet1.GetRow(rowC).GetCell(1).SetCellValue(string.Format("Определения метрологических характеристик водомера D{0}, {1}, {2}", al[0].ToString(), al[1].ToString(), al[2].ToString())); * sheet1.GetRow(rowC).GetCell(2).SetCellValue("калькуляция"); * sheet1.GetRow(rowC).GetCell(3).SetCellValue("шт."); * sheet1.GetRow(rowC).GetCell(4).SetCellValue("1"); * sheet1.GetRow(rowC).GetCell(5).SetCellValue(u.Price.ToString("0.00")); * sheet1.GetRow(rowC).GetCell(6).SetCellValue(u.Price.ToString("0.00")); * * sum += u.Price; * rowC++; * } * }*/ sheet1.GetRow(19).GetCell(6).SetCellValue(sum.ToString("0.00")); sheet1.GetRow(20).GetCell(6).SetCellValue(Utilities.GetVAT(sum).ToString("0.00")); sheet1.GetRow(21).GetCell(6).SetCellValue((sum + Utilities.GetVAT(sum)).ToString("0.00")); sheet1.GetRow(49).GetCell(6).SetCellValue(sum.ToString("0.00")); sheet1.GetRow(50).GetCell(6).SetCellValue(Utilities.GetVAT(sum).ToString("0.00")); sheet1.GetRow(51).GetCell(6).SetCellValue((sum + Utilities.GetVAT(sum)).ToString("0.00")); /* sheet1.GetRow(2).GetCell(1).SetCellValue(300); * sheet1.GetRow(3).GetCell(1).SetCellValue(500050); * sheet1.GetRow(4).GetCell(1).SetCellValue(8000); * sheet1.GetRow(5).GetCell(1).SetCellValue(110); * sheet1.GetRow(6).GetCell(1).SetCellValue(100); * sheet1.GetRow(7).GetCell(1).SetCellValue(200); * sheet1.GetRow(8).GetCell(1).SetCellValue(210); * sheet1.GetRow(9).GetCell(1).SetCellValue(2300); * sheet1.GetRow(10).GetCell(1).SetCellValue(240); * sheet1.GetRow(11).GetCell(1).SetCellValue(180123); * sheet1.GetRow(12).GetCell(1).SetCellValue(150);*/ //Force excel to recalculate all the formula while open sheet1.ForceFormulaRecalculation = true; WriteToFile(); }