public void InvoiceReaderMailSendTrowInvoiceTemplete()
        {
            StringBuilder sb = new StringBuilder();
            InvoiceTemplateObj = InvoiceDAL.InvoiceTemplateList();
            InvoiceDataObj = InvoiceDAL.InvoiceDataList();

            if (InvoiceDataObj.GenerateDate.Day == DateTime.Today.Day)
            {
            List<DataRow> emailAccountList = InvoiceDAL.EmailAccountList();
            foreach (DataRow dr in emailAccountList)
            {
                List<DataRow> vendorList = InvoiceDAL.VendorList();
                SewbieAdminID = InvoiceDAL.SewbieAdminID();

                foreach (DataRow drVendor in vendorList)
                {
                    Amount = InvoiceDAL.InvoiceAmount(Convert.ToInt16(drVendor["VendorID"]), SewbieAdminID, InvoiceDataObj.StartDate, InvoiceDataObj.EndDate);
                    if (Amount > 0)
                    {
                    string body = "<b>Dear " + drVendor["CompanyName"].ToString() + ",<b><br><br>";
                    body = body+"<b>Invoice<b><br>";
                    body = body+InvoiceTemplateObj.Body;
                    body = body.Replace("%Date%", InvoiceDataObj.GenerateDate.ToShortDateString());
                    body = body.Replace("%Duedate%", InvoiceDataObj.DueDate.ToShortDateString());
                    body = body.Replace("%Amount%", Convert.ToString(Amount));
                    body = body.Replace("%PayNow%", "<a>PayNow</a>");
                    SendMail(dr["Email"].ToString().Trim(), dr["DisplayName"].ToString().Trim(), drVendor["Email"].ToString().Trim(), InvoiceTemplateObj.Subject, body, Convert.ToBoolean(dr["UseDefaultCredentials"].ToString().Trim()), dr["Host"].ToString().Trim(), Convert.ToInt16(dr["Port"].ToString().Trim()), Convert.ToBoolean(dr["EnableSsl"].ToString().Trim()), dr["Username"].ToString().Trim(), dr["Password"].ToString().Trim());
                    InvoiceId = InvoiceDAL.AddInvoice(Convert.ToInt16(drVendor["VendorID"]), InvoiceDataObj.StartDate, InvoiceDataObj.EndDate, Amount);

                    List<DataRow> receivablesChargeList = InvoiceDAL.ReceivablesChargeList(Convert.ToInt16(drVendor["VendorID"]), SewbieAdminID, InvoiceDataObj.StartDate, InvoiceDataObj.EndDate);
                    foreach (DataRow drReceivablesCharge in receivablesChargeList)
                    {
                        InvoiceDAL.AddInvoiceCharges(InvoiceId, Convert.ToInt16(drReceivablesCharge["ChargeID"]), Convert.ToDecimal(drReceivablesCharge["Amount"]));
                    }

                    List<DataRow> payablesChargeList = InvoiceDAL.PayablesChargeList(Convert.ToInt16(drVendor["VendorID"]), SewbieAdminID, InvoiceDataObj.StartDate, InvoiceDataObj.EndDate);
                    foreach (DataRow drPayablesCharge in payablesChargeList)
                    {
                        InvoiceDAL.AddInvoiceCharges(InvoiceId, Convert.ToInt16(drPayablesCharge["ChargeID"]), -Convert.ToDecimal(drPayablesCharge["Amount"]));
                    }
                    sb = new StringBuilder();
                    }

                }
                }
            }
        }
 public static InvoiceTemplate InvoiceTemplateList()
 {
     InvoiceTemplate InvoiceTemplateObj = new InvoiceTemplate();
     using (SqlConnection Con = new SqlConnection(connString))
     {
         string sqlStmt = "SELECT TOP (1)*  FROM Nop_MessageTemplate INNER JOIN "
                 + "Nop_MessageTemplateLocalized ON Nop_MessageTemplate.MessageTemplateID = Nop_MessageTemplateLocalized.MessageTemplateID "
                 + "WHERE Nop_MessageTemplate.Name = 'Vendor.InvoiceMail'";
         using (SqlDataAdapter dAd = new SqlDataAdapter(sqlStmt, Con))
         {
             DataTable dTable = new DataTable();
             dAd.Fill(dTable);
             foreach (DataRow row in dTable.Rows)
             {
                 InvoiceTemplateObj.BCCEmailAddresses = row["BCCEmailAddresses"].ToString();
                 InvoiceTemplateObj.Body = row["Body"].ToString();
                 InvoiceTemplateObj.EmailAccountId = Convert.ToInt16(row["EmailAccountId"].ToString());
                 InvoiceTemplateObj.IsActive = Convert.ToBoolean(row["IsActive"].ToString());
                 InvoiceTemplateObj.LanguageID = Convert.ToInt16(row["LanguageID"].ToString());
                 InvoiceTemplateObj.MessageTemplateID = Convert.ToInt16(row["MessageTemplateID"].ToString());
                 InvoiceTemplateObj.MessageTemplateLocalizedID = Convert.ToInt16(row["MessageTemplateLocalizedID"].ToString());
                 InvoiceTemplateObj.Name = row["Name"].ToString();
                 InvoiceTemplateObj.Subject = row["Subject"].ToString();
             }
             return InvoiceTemplateObj;
         }
     }
 }