public SingleResponeMessage <ContractPrintModel> GetProint(int id, string _userID) { SingleResponeMessage <ContractPrintModel> ret = new SingleResponeMessage <ContractPrintModel>(); try { ContractPrintModel item = ContractService.GetInstance().GetNegotiationPrintModel(id, _userID); if (item == null) { ret.isSuccess = false; ret.err.msgCode = "001"; ret.err.msgString = "no Negotiation found"; return(ret); } ret.item = item; ret.isSuccess = true; } catch (Exception ex) { ret.isSuccess = false; ret.err.msgCode = "Internal Error !!!"; ret.err.msgString = ex.ToString(); } return(ret); }
public ContractPrintModel GetNegotiationPrintModel(int contractID, string _userID) { ContractPrintModel record = new ContractPrintModel(); NegotiationInfo info = new NegotiationInfo(); SqlConnectionFactory sqlConnection = new SqlConnectionFactory(); NewContractInfo contractInfo = getContractNew(contractID, _userID); using (SqlConnection connection = sqlConnection.GetConnection()) { info = NegotiationDataLayer.GetInstance().getNegotiation(connection, contractInfo.NegotiationID, _userID); if (record == null || info == null) { return(null); } CustomerInfo cusInfo = CustomerDataLayer.GetInstance().getCustomer(connection, info.CustomerID); record.ContractCode = contractInfo.ContractCode; record.DateIn = contractInfo.DateIn; record.ASide = "BỆNH VIỆN TRUYỀN MÁU HUYẾT HỌC"; record.BSide = info.CustomerName; record.ALocation = info.Location; record.APhone = info.Phone; record.AFax = info.Fax; record.ABankID = info.BankID; record.ATaxCode = info.TaxCode; record.ARepresent = info.Represent; record.APosition = info.Position; record.BLocation = cusInfo.Address; record.BPhone = cusInfo.Phone; record.BFax = cusInfo.Fax; record.BBankID = cusInfo.BankNumber + " " + cusInfo.BankName; record.BTaxCode = cusInfo.TaxCode; record.BRepresent = cusInfo.Surrogate; record.BPosition = cusInfo.Position; record.NegotiationTime = info.DateIn; record.Term = info.Term; record.NegotiationCode = info.NegotiationCode; record.VATNumber = info.VATNumber; record.IsVAT = info.IsVAT; record.QuoteTotalCost = info.QuoteTotalCost; record.Items = QuoteDataLayer.GetInstance().getSelectedItemsQuote(connection, record.QuoteID); record.QuoteID = info.QuoteID; record.QuoteCode = info.QuoteCode; record.BidType = info.BidType; record.BidExpirated = info.BidExpirated; record.BidExpiratedUnit = info.BidExpiratedUnit; record.Items = QuoteDataLayer.GetInstance().getSelectedItemsQuote(connection, record.QuoteID); return(record); } }
public static MemoryStream GetTemplate(int id, string path, out string code, string _userID) { double Totalcost = 0; var memoryStream = new MemoryStream(); ContractPrintModel item = ContractService.GetInstance().GetNegotiationPrintModel(id, _userID); code = item.NegotiationCode; QuoteRelation relation = ProposalService.GetInstance().getQuoteRelation(item.QuoteID); item.AuditCode = relation.AuditCode; item.AuditTime = relation.AuditTime; item.BidPlanCode = relation.BidPlanCode; item.BidPlanTime = relation.BidPlanTime; item.NegotiationCode = relation.NegotiationCode; item.NegotiationTime = relation.NegotiationTime; using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)) fileStream.CopyTo(memoryStream); // code = item.ProposalCode; using (var document = WordprocessingDocument.Open(memoryStream, true)) { document.ChangeDocumentType(WordprocessingDocumentType.Document); // change from template to document DateTime date = DateTime.Now; string currentDate = " Ngày " + date.ToString("dd/MM/yyyy"); var body = document.MainDocumentPart.Document.Body; var paras = body.Elements <Paragraph>(); List <string> headers = new List <string>(); List <List <string> > items = new List <List <string> >(); headers.Add("STT"); headers.Add("Tên gói thầu"); headers.Add("Giá gói thầu"); headers.Add("Nguồn vốn"); headers.Add("Hình thức phương thức lựa chọn nhà thầu"); headers.Add("Thời gian tổ chức lựa chọn nhà thầu"); headers.Add("Loại hợp đồng"); headers.Add("Thời gian thực hiện hợp đồng"); foreach (ItemInfo record in item.Items) { Totalcost += record.ItemPrice * record.Amount; } if (item.IsVAT) { Totalcost = Totalcost * (item.VATNumber + 100) / 100; } List <string> row = new List <string>(); Table tableData = CreateTable(item, Totalcost); string dateInStr = ""; string negoationtime = ""; string desiciontime = ""; dateInStr = item.DateIn.Hour + " giờ "; if (item.DateIn.Minute != 0) { dateInStr += item.DateIn.Minute + " phút "; } dateInStr += ", ngày" + item.DateIn.Day + " tháng " + item.DateIn.Month + " năm " + item.DateIn.Year; desiciontime += " ngày" + item.DecisionTime.Day + "/" + item.DecisionTime.Month + "/" + item.DecisionTime.Year; negoationtime += " ngày" + item.NegotiationTime.Day + "/" + item.NegotiationTime.Month + "/" + item.NegotiationTime.Year; foreach (var text in body.Descendants <Text>()) { text.Text = text.Text.Replace("#", ""); text.Text = text.Text.Replace("contractcode", WordUtils.checkNull(item.ContractCode)); text.Text = text.Text.Replace("contracttime", WordUtils.checkNull(dateInStr)); text.Text = text.Text.Replace("vatnumber", WordUtils.checkNull(item.VATNumber.ToString())); text.Text = text.Text.Replace("desicioncode", WordUtils.checkNull(item.ContractCode)); text.Text = text.Text.Replace("desiciontime", WordUtils.checkNull(desiciontime)); text.Text = text.Text.Replace("negoationcode", WordUtils.checkNull(item.ContractCode)); text.Text = text.Text.Replace("negoationtime", WordUtils.checkNull(negoationtime)); text.Text = text.Text.Replace("inputcode", WordUtils.checkNull(item.Code)); //A side text.Text = text.Text.Replace("aaddress", WordUtils.checkNull(HardData.location[Int32.Parse(item.ALocation) - 1])); text.Text = text.Text.Replace("aside", WordUtils.checkNull(item.ASide)); text.Text = text.Text.Replace("aphone", WordUtils.checkNull(item.APhone)); text.Text = text.Text.Replace("arepresent", WordUtils.checkNull(item.ARepresent)); text.Text = text.Text.Replace("afax", WordUtils.checkNull(item.AFax)); text.Text = text.Text.Replace("aposition", WordUtils.checkNull(item.APosition)); text.Text = text.Text.Replace("atax", WordUtils.checkNull(item.ATaxCode)); text.Text = text.Text.Replace("abankidlabel", WordUtils.checkNull(HardData.NegotiationBankIDArr[Int32.Parse(item.ABankID) - 1])); //B side text.Text = text.Text.Replace("baddress", WordUtils.checkNull(item.BLocation)); text.Text = text.Text.Replace("bside", WordUtils.checkNull(item.BSide)); text.Text = text.Text.Replace("bphone", WordUtils.checkNull(item.BPhone)); text.Text = text.Text.Replace("brepresent", WordUtils.checkNull(item.BRepresent)); text.Text = text.Text.Replace("bfax", WordUtils.checkNull(item.BFax)); text.Text = text.Text.Replace("bposition", WordUtils.checkNull(item.BPosition)); text.Text = text.Text.Replace("btax", WordUtils.checkNull(item.BTaxCode)); text.Text = text.Text.Replace("bbankidlabel", WordUtils.checkNull(item.BBankID)); text.Text = text.Text.Replace("term", WordUtils.checkNull(item.Term.ToString())); text.Text = text.Text.Replace("costnumber", string.Format("{0:0,0}", Totalcost).Replace(",", ".")); text.Text = text.Text.Replace("coststring", WordUtils.checkNull(Utils.NumberToTextVN((decimal)Totalcost))); text.Text = text.Text.Replace("bidtype", item.BidType); text.Text = text.Text.Replace("bidtime", item.BidExpirated + " " + item.BidExpiratedUnit); if (text.Text == "table") { DocumentFormat.OpenXml.OpenXmlElement textP1 = text.Parent; DocumentFormat.OpenXml.OpenXmlElement textP2 = textP1.Parent; body.InsertAfter(tableData, textP2); textP1.Remove(); } } document.Save(); document.Close(); } return(memoryStream); }
private static Table CreateTable(ContractPrintModel item, double Totalcost) { //prepare ITEMs List <string> headers = new List <string>(); List <List <string> > items = new List <List <string> >(); headers.Add("STT"); headers.Add("Tên và mô tả thiết bị"); headers.Add("Đơn vị tính"); headers.Add("Số lượng"); headers.Add("Đơn giá(VNĐ)"); headers.Add("Thành tiền (VNĐ)"); int[] widths = { 1000, 3000, 1600, 1600, 1600, 2100 }; int index = 1; foreach (ItemInfo record in item.Items) { List <string> row = new List <string>(); row.Add(index.ToString()); row.Add(record.ItemName); row.Add(record.ItemUnit); row.Add(record.Amount.ToString()); row.Add(string.Format("{0:0,0}", record.ItemPrice).Replace(",", ".")); row.Add(string.Format("{0:0,0}", record.ItemPrice * record.Amount).Replace(",", ".")); items.Add(row); index++; } //// Create a new table Table tbl = new Table(); //// Create the table properties TableProperties tblProperties = new TableProperties(); TableJustification just = new TableJustification(); just.Val = TableRowAlignmentValues.Center; //// Create Table Borders TableBorders tblBorders = new TableBorders(); TopBorder topBorder = new TopBorder(); topBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); topBorder.Color = "000000"; tblBorders.AppendChild(topBorder); BottomBorder bottomBorder = new BottomBorder(); bottomBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); bottomBorder.Color = "000000"; tblBorders.AppendChild(bottomBorder); RightBorder rightBorder = new RightBorder(); rightBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); rightBorder.Color = "000000"; tblBorders.AppendChild(rightBorder); LeftBorder leftBorder = new LeftBorder(); leftBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); leftBorder.Color = "000000"; tblBorders.AppendChild(leftBorder); InsideHorizontalBorder insideHBorder = new InsideHorizontalBorder(); insideHBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); insideHBorder.Color = "000000"; tblBorders.AppendChild(insideHBorder); InsideVerticalBorder insideVBorder = new InsideVerticalBorder(); insideVBorder.Val = new EnumValue <BorderValues>(BorderValues.Thick); insideVBorder.Color = "000000"; tblBorders.AppendChild(insideVBorder); //// Add the table borders to the properties tblProperties.AppendChild(tblBorders); tblProperties.AppendChild(just); //// Add the table properties to the table tbl.AppendChild(tblProperties); //// Add a cell to each column in the row /// List <TableCell> headerCells = new List <TableCell>(); TableCell tcName1; foreach (string itemHeaders in headers) { tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Center }), new Run(FontTable(), new Text(itemHeaders)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "3000" })); headerCells.Add(tcName1); } //// Create a new row TableRow tr = new TableRow(); tr.Append(headerCells.ToArray()); tbl.AppendChild(tr); List <TableCell> dataCells = new List <TableCell>(); foreach (List <string> rowItems in items) { dataCells = new List <TableCell>(); foreach (string data in rowItems) { tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Center }), new Run(FontTable(), new Text(data)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "3000" })); dataCells.Add(tcName1); } TableRow tr1 = new TableRow(); tr1.Append(dataCells.ToArray()); tbl.AppendChild(tr1); } TableCellProperties cellOneProperties = new TableCellProperties(); //if VAT if (item.IsVAT) { // total row tr = new TableRow(); dataCells = new List <TableCell>(); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text("Tổng công (chưa bao gồm VAT)")))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "1000" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); for (int loopindex = 1; loopindex < widths.Length - 1; loopindex++) { tcName1 = new TableCell(new Paragraph()); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = widths[loopindex].ToString() })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Continue }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); } double totalCostWithoutVAT = 0; totalCostWithoutVAT = Totalcost / ((item.VATNumber + 100) / 100); var totalCostWithoutVATstr = string.Format("{0:0,0}", totalCostWithoutVAT).Replace(",", "."); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text(totalCostWithoutVATstr)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "1900" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); tr.Append(dataCells.ToArray()); tbl.AppendChild(tr); // total row tr = new TableRow(); dataCells = new List <TableCell>(); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text("Thuế VAT " + item.VATNumber.ToString() + "%")))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "200" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); for (int loopindex = 1; loopindex < widths.Length - 1; loopindex++) { tcName1 = new TableCell(new Paragraph()); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = widths[loopindex].ToString() })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Continue }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); } double vatCost = 0; if (item.VATNumber != 0) { vatCost = (Totalcost * item.VATNumber) / 100; } else { vatCost = Totalcost; } var vatCoststr = string.Format("{0:0,0}", vatCost).Replace(",", "."); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text(vatCoststr)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "1900" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); tr.Append(dataCells.ToArray()); tbl.AppendChild(tr); // total row tr = new TableRow(); dataCells = new List <TableCell>(); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text("TỔNG CỘNG (đã bao gồm VAT)")))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "200" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); for (int loopindex = 1; loopindex < widths.Length - 1; loopindex++) { tcName1 = new TableCell(new Paragraph()); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = widths[loopindex].ToString() })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Continue }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); } var TotalCostfm = string.Format("{0:0,0}", Totalcost).Replace(",", "."); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text(TotalCostfm)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "1900" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); tr.Append(dataCells.ToArray()); tbl.AppendChild(tr); } else { // total row tr = new TableRow(); dataCells = new List <TableCell>(); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text("TỔNG CỘNG ")))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "200" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); for (int loopindex = 1; loopindex < widths.Length - 1; loopindex++) { tcName1 = new TableCell(new Paragraph()); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = widths[loopindex].ToString() })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Continue }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); } var TotalCostfm = string.Format("{0:0,0}", Totalcost).Replace(",", "."); tcName1 = new TableCell(new Paragraph(new ParagraphProperties(new Justification() { Val = JustificationValues.Right }), new Run(FontTable(), new Text(TotalCostfm)))); tcName1.Append(new TableCellProperties( new TableCellWidth() { Type = TableWidthUnitValues.Dxa, Width = "1900" })); cellOneProperties = new TableCellProperties(); cellOneProperties.Append(new HorizontalMerge() { Val = MergedCellValues.Restart }); tcName1.Append(cellOneProperties); dataCells.Add(tcName1); tr.Append(dataCells.ToArray()); tbl.AppendChild(tr); } return(tbl); }