Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dataset is something like this:
- DocumentNo |SiteID| CltInvNumber | InvDate | ... | GrossAmount | TotalAmt
- BKRA24112015|3060 | BKLF152 |24-11-2015| ... | 128.448 | 128.448
- FTRA24112015|3062 | FTCB274 |24-11-2015| ... | 200 |
- FTRA24112015|3062 | FTCB275 |24-11-2015| ... | 4 |
- FTRA24112015|3062 | FTCB276 |24-11-2015| ... | 12 |
- FTRA24112015|3062 | FTLF163 |24-11-2015| ... | 2372.892 | 2588.89
- HYRA24112015|3061 | HYCB66 |24-11-2015| ... | 12 |
- HYRA24112015|3061 | HYLF142 |24-11-2015| ... | 0.012 | 12.012
- private void GenerateDirectDebitStatement(string SiteId, string DocumentNo, List<string> ClientInvoiceNumber, string ShortInvoiceDate, string ShortDueDate, List<decimal> GrossAmount, string CustomerNo, string CustVATNo, string SiteName, string ClientName, string Address1, string Email, string AlternetEmail, string PaymentMethod, string SortCode, string Telephone, string AccountNo, string Currency, string TotalAmount)
- {
- //DataSet dt = this.GetSummaryData();
- using (StringWriter sw = new StringWriter())
- {
- using (HtmlTextWriter hw = new HtmlTextWriter(sw))
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("<table width='100%' cellpadding='2'>");
- sb.Append("<tr><td align='center'><h2><u><b>DIRECT DEBIT STATEMENT</b></u></h2></td></tr>");
- sb.Append("<tr><td colspan = '2'></td></tr>");
- sb.Append("</table>");
- sb.Append("<br/>");
- sb.Append("<img src='logo.png' width='50' height='75'/>");
- sb.Append("<br/>");
- sb.Append("<p><b>PARK GARAGE GROUP PLC</b></p>");
- //sb.Append("<br/>");
- sb.Append("<table cellpadding ='0'>");
- //sb.Append("<tr><td></td><td></td><td></td></tr>");
- sb.Append("<tr><td><font size ='1'>Registered in England No. 34970229</font></td>");
- sb.Append("<td bgcolor='#C6C3C3' align ='right'><font size ='1'>Document No:</td><td bgcolor='#C6C3C3'> " + DocumentNo + "</font></td></tr>");
- sb.Append("<tr><td><font size ='1'>1-3 Station Approach</font></td>");
- sb.Append("<td align ='right'><font size ='1'></td><td></font></td></tr>");
- sb.Append("<tr><td><font size ='1'>Hayes, Kent</font></td>");
- sb.Append("<td align ='right'><font size ='1'>Customer No:</td><td> " + CustomerNo + "</font></td></tr>");
- sb.Append("<tr><td><font size ='1'>BR2 7EQ</font></td>");
- sb.Append("<td align ='right'><font size ='1'>Document Date:</td><td> " + ShortInvoiceDate + "</font></td></tr>");
- sb.Append("<tr><td><font size ='1'>VAT Registration No. 726 799969</font></td>");
- sb.Append("<td align ='right'><font size ='1'>Payment Amount:</td><td> " + TotalAmount + "</font></td></tr>");
- sb.Append("<tr><td><font size ='1'>Tel: 02083158340</font></td>");
- sb.Append("<td align ='right'><font size ='1'></td><td></font></td></tr>");
- sb.Append("<tr><td><font size ='1'>Fax: 02083158341</font></td>");
- sb.Append("<td align ='right'><font size ='1'></td><td></font></td></tr>");
- //sb.Append("<td align ='right'></td><td></td></tr>");
- sb.Append("</table>");
- sb.Append("<br />");
- sb.Append("<table width='100%' cellpadding='0'>");
- sb.Append("<tr><td width = '50%'><font size ='1'>To,</font></td>");
- sb.Append("<td align ='right'></td><td></td></tr>");
- sb.Append("<tr><td width='50%'><font size ='1'><b>" + SiteName + " [" + SiteId + "]</b></td>");
- sb.Append("<td bgcolor='#C6C3C3' align ='right' width='20%'>Value Date:</td><td bgcolor='#C6C3C3'> " + ShortDueDate + "</td></tr>");
- sb.Append("<tr><td><b>" + ClientName + "</b></td>");
- sb.Append("<td align ='right'>Payment Method:</td><td> " + PaymentMethod + "</td></tr>");
- sb.Append("<tr><td><b>" + Address1 + "</b></td>");
- sb.Append("<td align ='right'>Sort Code:</td><td> " + SortCode + "</td></tr>");
- sb.Append("<tr><td><b>" + AlternetEmail + "</b></td>");
- sb.Append("<td align ='right'>Account No:</td><td> " + AccountNo + "</td></tr>");
- sb.Append("<tr><td><b>Tel: " + Telephone + "</b></td>");
- sb.Append("<td align ='right'>Currency:</td><td> " + Currency + "</td></tr>");
- sb.Append("<tr><td></td>");
- sb.Append("<td align ='right'>Customer VAT No:</td><td> " + CustVATNo + "</td></tr>");
- sb.Append("</table>");
- sb.Append("<br />");
- sb.Append("<p>Payment for the following item(s) will be credited to your bank account:</p>");
- sb.Append("<table width='100%' cellpadding='0'>");
- sb.Append("<tr><font><b><th>Document No</th><th>Document Date</th><th>Due Date</th><th>Gross Amount</th></b></font></tr>");
- //sb.Append("<tr align='center'><td height='400'>" + Itype + "</td><td> " + DescriptionItem1 + "</td><td> " + UnitPrice + " <td> " + VATPercent + "</td><td> 1 </td><td> " + VATAmount + " </td><td>" + NetAmount + "</td><td>" + GrossAmount + " </td></tr>");
- for(int i=0; i < ClientInvoiceNumber.Count; i++)
- {
- sb.Append("<tr>");
- sb.Append("<td>");
- sb.Append(ClientInvoiceNumber[i]);
- sb.Append("</td>");
- sb.Append("<td>");
- sb.Append(ShortInvoiceDate);
- sb.Append("</td>");
- sb.Append("<td>");
- sb.Append(ShortDueDate);
- sb.Append("</td>");
- sb.Append("<td>");
- sb.Append(GrossAmount[i]);
- sb.Append("</td>");
- sb.Append("</tr>");
- }
- sb.Append("</table>");
- sb.Append("</div>");
- sb.Append("<br />");
- sb.Append("<table width='100%' bgcolor='#C6C3C3' cellpadding='0'>");
- sb.Append("<tr><td align='right' width='90%'><b>Total Amount: </td><td width='10%' align='right'> " + TotalAmount + " </td></b></font></tr>"); //
- sb.Append("</table>");
- sb.Append("<br />");
- sb.Append("<div>");
- sb.Append("<table>");
- sb.Append("<tr><td><p><font size= '1'><b><u>Terms and Conditions:</u></b> Park Garage Group Plc. If any of your details are <br />incorrect, please inform us at your earliest convenience. If no tax point date <br />exists then use the document date as tax point date. </p></td></tr>");
- sb.Append("</table>");
- sb.Append("</div>");
- StringReader sr = new StringReader(sb.ToString());
- Document pdfDoc = new Document(PageSize.A4, 20f, 20f, 20f, 0f);
- HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
- using (MemoryStream memoryStream = new MemoryStream())
- {
- PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
- pdfDoc.Open();
- htmlparser.Parse(sr);
- pdfDoc.Close();
- byte[] bytes = memoryStream.ToArray();
- memoryStream.Close();
- MailMessage mm = new MailMessage("site@pggplc.com", "naimeshjani@pggplc.com");
- mm.Subject = "Direct Debit Statement";
- mm.Body = "Direct Debit Statement Attached";
- mm.Attachments.Add(new Attachment(new MemoryStream(bytes), "DirectDebitStatement.pdf"));
- mm.IsBodyHtml = true;
- SmtpClient smtp = new SmtpClient("nexgen.simplyms.com");
- smtp.EnableSsl = true;
- NetworkCredential NetworkCred = new NetworkCredential();
- NetworkCred.UserName = "site@pggplc.com";
- NetworkCred.Password = "pggplc";
- smtp.UseDefaultCredentials = true;
- smtp.Credentials = NetworkCred;
- smtp.Send(mm);
- }
- }
- }
- }
- public void GetSummaryData()
- {
- string conString = "Data Source=PGGPLC;Initial Catalog=Park;Integrated Security=True";
- string query = "Select (a.ShortName+'RA'+REPLACE(CONVERT(CHAR(10),[InvoiceDate],103),'/','')) AS DocumentNo,a.SiteId, i.ClientInvoiceNumber, i.InvoiceDate, i.taxpointdate,"
- + " i.DueDate, i.PGGFileNo, "
- + " a.CustomerNo, a.CustVATNo, a.SiteName, a.ClientName, a.Address1, "
- + " a.Email, a.AlternetEmail, a.PaymentMethod, a.SortCode, a.AccountNo,"
- + " a.Currency, a.Telephone, "
- + " I.SiteId, I.DueDate, I.GrossAmount,"
- + " CASE WHEN I.ClientInvoiceNumber = (SELECT TOP 1 ClientInvoiceNumber "
- + " FROM [Park].[dbo].[IMS_ProcessedInvoicesAndSBTIs_test]"
- + " WHERE SiteId = I.SiteId and GrossAmount > 0"
- + " ORDER BY ClientInvoiceNumber desc) "
- + " THEN (SELECT CAST(SUM(GrossAmount) AS CHAR(10))"
- + " FROM [Park].[dbo].[IMS_ProcessedInvoicesAndSBTIs_test]"
- + " WHERE ClientInvoiceNumber <= I.ClientInvoiceNumber "
- + " AND SiteId = I.SiteId and GrossAmount > 0)"
- + " ELSE ' ' END AS 'TotalAmount'"
- + " FROM [Park].[dbo].[IMS_ProcessedInvoicesAndSBTIs_test] I, [Park].[dbo].[IMS_CommSiteMaster] a"
- + " WHERE I.SiteId = a.SiteId AND InvoiceGenerated = 'N' and GrossAmount > 0"
- + " ORDER BY ClientInvoiceNumber";
- SqlConnection sqlConn = new SqlConnection(conString);
- try
- {
- sqlConn.Open();
- SqlCommand cmd = new SqlCommand(query, sqlConn);
- SqlDataAdapter sqlDa = new SqlDataAdapter();
- sqlDa.SelectCommand = cmd;
- DataSet ds = new DataSet();
- sqlDa.Fill(ds, "Summary");
- var count = ds.Tables[0].Rows.Count;
- string documentNo= ""; string siteId= ""; string customerNo= ""; string custVATNo= ""; string siteName= ""; string clientName= ""; string address1= ""; string email= ""; string alternameEmail= ""; string paymentMethod= ""; string sortCode= ""; string telephone= ""; string accountNo= ""; string currency= ""; string totalAmount= ""; string ShortInvoiceDate= ""; string ShortDueDate= ""; string ShortTaxPointDate = "";
- DateTime? InvoiceDate;
- DateTime? DueDate;
- DateTime? TaxPointDate;
- List<string> ClientInvoiceNumber = new List<string>();
- List<decimal> GrossAmount = new List<decimal>();
- foreach (DataRow row in ds.Tables[0].Rows)
- {
- var currentDocumentNo = row["DocumentNo"].ToString();
- if (documentNo == string.Empty)
- documentNo = currentDocumentNo;
- if (documentNo == currentDocumentNo)
- {
- InvoiceDate = DateTime.Parse(row["InvoiceDate"].ToString());
- ShortInvoiceDate = InvoiceDate.Value.ToShortDateString();
- DueDate = DateTime.Parse(row["DueDate"].ToString());
- ShortDueDate = DueDate.Value.ToShortDateString();
- TaxPointDate = DateTime.Parse(row["TaxPointDate"].ToString());
- ShortTaxPointDate = TaxPointDate.Value.ToShortDateString();
- documentNo = row["DocumentNo"].ToString();
- siteId = row["SiteId"].ToString();
- customerNo = row["CustomerNo"].ToString();
- custVATNo = row["CustVATNo"].ToString();
- siteName = row["SiteName"].ToString();
- clientName = row["ClientName"].ToString();
- address1 = row["Address1"].ToString();
- email = row["Email"].ToString();
- alternameEmail = row["alternetEmail"].ToString();
- paymentMethod = row["PaymentMethod"].ToString();
- sortCode = row["SortCode"].ToString();
- telephone = row["Telephone"].ToString();
- accountNo = row["AccountNo"].ToString();
- currency = row["Currency"].ToString();
- totalAmount = row["TotalAmount"].ToString();
- ClientInvoiceNumber.Add(row["ClientInvoiceNumber"].ToString());
- GrossAmount.Add(decimal.Parse(row["GrossAmount"].ToString()));
- }
- else
- {
- if (decimal.Parse(row["GrossAmount"].ToString()) > 0)
- {
- GenerateDirectDebitStatement(siteId, documentNo, ClientInvoiceNumber, ShortInvoiceDate, ShortDueDate, GrossAmount, customerNo, custVATNo, siteName, clientName, address1, email, alternameEmail, paymentMethod, sortCode, telephone, accountNo, currency, totalAmount);//(DateTime date, string firstRef, string secRef));
- documentNo = "";
- ClientInvoiceNumber.Clear();
- GrossAmount.Clear();
- }
- }
- }
- }
- catch (Exception ex)
- {
- lbErrMess.Text = "Error: " + ex.Message;
- }
- finally
- {
- sqlConn.Close();
- }
- }
- if (documentNo == string.Empty)
- documentNo = currentDocumentNo;
- if (documentNo == currentDocumentNo)
- {
- ....
Add Comment
Please, Sign In to add comment