public JsonResult MakePaymentData(PaymentModel objPaymentModel, PaymentModel ObjData) { eTracLoginModel ObjLoginModel = null; long Vendor = 0; var result = ""; var resultPayment = new BillPayment(); if (Session["eTrac"] != null) { ObjLoginModel = (eTracLoginModel)(Session["eTrac"]); } try { if (objPaymentModel != null && ObjData != null) { objPaymentModel.UserId = ObjLoginModel.UserId; string realmId = CallbackController.RealMId.ToString(); // Session["realmId"].ToString(); try { if (realmId != null) { string AccessToken = CallbackController.AccessToken.ToString(); //Session["access_token"].ToString(); var principal = User as ClaimsPrincipal; OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken); // Create a ServiceContext with Auth tokens and realmId ServiceContext serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator); serviceContext.IppConfiguration.MinorVersion.Qbo = "23"; DataService commonServiceQBO = new DataService(serviceContext); // Create a QuickBooks QueryService using ServiceContext QueryService <Vendor> querySvc = new QueryService <Vendor>(serviceContext); List <Vendor> vendorList = querySvc.ExecuteIdsQuery("SELECT * FROM Vendor MaxResults 1000").ToList(); QueryService <Account> querySvcAccount = new QueryService <Account>(serviceContext); List <Account> accountData = querySvcAccount.ExecuteIdsQuery("SELECT * FROM Account MaxResults 1000").ToList(); var VendorDetails = _IVendorManagement.GetCompanyQuickBookId(Convert.ToInt64(ObjData.VendorId)); //var getAccountDetails = _IVendorManagement.GetAccountDetailsByVendorId(Convert.ToInt64(objPaymentModel.OpeartorCAD_Id)); // (Convert.ToInt64(ObjData.VendorId)); var getAccountDetails = _IVendorManagement.GetAccountDetailsByVendorId(Convert.ToInt64(objPaymentModel.CompanyAccountId)); // (Convert.ToInt64(ObjData.VendorId)); var getBill = _IBillDataManager.GetBillQBKId(Convert.ToInt64(ObjData.BillNo)); QueryService <Bill> querySvcBill = new QueryService <Bill>(serviceContext); List <Bill> billData = querySvcBill.ExecuteIdsQuery("SELECT * FROM Bill MaxResults 1000").ToList(); var bill = billData.Where(x => x.Id == getBill.ToString()).FirstOrDefault(); // var vendorData = vendorList.Where(x => x.Id == "64").FirstOrDefault(); var payment = new BillPayment(); //Vendor Reference var reference = new ReferenceType(); var accountRef = new AccountBasedExpenseLineDetail(); var billPaymentCheck = new BillPaymentCheck(); var billPaymentCredit = new BillPaymentCreditCard(); var line = new Line(); var lineList = new List <Line>(); if (VendorDetails > 0) { var vendorData = vendorList.Where(x => x.Id == VendorDetails.ToString()).FirstOrDefault(); //Vendor Reference payment.VendorRef = new ReferenceType() { name = vendorData.DisplayName, Value = vendorData.Id }; } line.LineNum = "1"; var any = new IntuitAnyType(); if (getAccountDetails != null) { var ayintuit = new IntuitAnyType(); var accountsDetails = accountData.Where(x => x.Id == getAccountDetails.QuickbookAcountId.ToString()).FirstOrDefault();//getAccountDetails.QuickbookAcountId.ToString() if (ObjData.PaymentMode == "Wired") { payment.PayType = BillPaymentTypeEnum.CreditCard; var CCD = new CreditCardPayment(); billPaymentCredit.CCAccountRef = new ReferenceType() { name = accountsDetails.Name, Value = accountsDetails.Id, }; payment.AnyIntuitObject = billPaymentCredit; } else if (ObjData.PaymentMode == "Card") { payment.PayType = BillPaymentTypeEnum.CreditCard; var CCD = new CreditCardPayment(); billPaymentCredit.CCAccountRef = new ReferenceType() { name = accountsDetails.Name, Value = accountsDetails.Id, }; payment.AnyIntuitObject = billPaymentCredit; } else if (ObjData.PaymentMode == "Check") { var checking = new CheckPayment(); payment.PayType = BillPaymentTypeEnum.Check; billPaymentCheck.BankAccountRef = new ReferenceType() { name = accountsDetails.Name, Value = accountsDetails.Id }; billPaymentCheck.PrintStatus = PrintStatusEnum.NeedToPrint; payment.AnyIntuitObject = billPaymentCheck; } } payment.APAccountRef = new ReferenceType() { name = "Accounts Payable (A/P)", Value = "33" }; QueryService <Department> querySvcDept = new QueryService <Department>(serviceContext); var LocationName = _IBillDataManager.GetLocationDataByLocId(Convert.ToInt64(ObjData.LocationId)); payment.DepartmentRef = new ReferenceType() { name = LocationName.LocationName, Value = LocationName.QBK_Id.ToString() }; line.Amount = Convert.ToDecimal(ObjData.BillAmount); line.AmountSpecified = true; var linkedlist = new List <LinkedTxn>(); var linked = new LinkedTxn(); linked.TxnId = bill.Id; linked.TxnType = "Bill"; linkedlist.Add(linked); line.LinkedTxn = linkedlist.ToArray(); line.DetailType = LineDetailTypeEnum.PaymentLineDetail; lineList.Add(line); payment.Line = lineList.ToArray(); //payment.PayType = BillPaymentTypeEnum.CreditCard; payment.PayTypeSpecified = true; payment.TotalAmt = Convert.ToDecimal(ObjData.BillAmount); payment.TotalAmtSpecified = true; var metaData = new ModificationMetaData(); metaData.CreateTime = Convert.ToDateTime(ObjData.BillDate); payment.MetaData = metaData; payment.PayTypeSpecified = true; resultPayment = commonServiceQBO.Add(payment) as BillPayment; //To close PO after Payment. Update Payment in Quickbook. QueryService <PurchaseOrder> querySvcPO = new QueryService <PurchaseOrder>(serviceContext); List <PurchaseOrder> POList = querySvcPO.ExecuteIdsQuery("SELECT * FROM PurchaseOrder MaxResults 1000").ToList(); if (ObjData.BillType == "PO") { var getPOQData = _IPaymentManager.GetPODetails(objPaymentModel, ObjData); if (getPOQData.QuickBookPOId > 0) { var data = POList.Where(x => x.Id == getPOQData.QuickBookPOId.ToString()).FirstOrDefault(); data.POStatus = PurchaseOrderStatusEnum.Closed; var update = commonServiceQBO.Update(data) as PurchaseOrder; } } } else { ViewBag.Message = CommonMessage.FailureMessage(); result = CommonMessage.FailureMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; return(Json(result, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { ViewBag.Message = ex.Message; ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; } result = _IPaymentManager.MakePayment(objPaymentModel, ObjData); if (result != null) { return(Json(result, JsonRequestBehavior.AllowGet)); } else { ViewBag.Message = CommonMessage.FailureMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; return(Json(result, JsonRequestBehavior.AllowGet)); } } else { ViewBag.Message = CommonMessage.FailureMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; } } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } //return null; return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Create Billable expense /// </summary> /// <param name="context"></param> /// <param name="customer"></param> /// <returns>purchase</returns> public static Purchase BillableExpenseCreate(ServiceContext context, Customer customer) { Account account = QBOHelper.QBO.QueryOrAddAccount(context, "select * from account where AccountSubType='Checking'", AccountTypeEnum.Bank, AccountClassificationEnum.Asset, AccountSubTypeEnum.Checking); Account expenseAccount = QBOHelper.QBO.QueryOrAddAccount(context, "select * from account where AccountType='Expense'", AccountTypeEnum.Expense, AccountClassificationEnum.Expense, AccountSubTypeEnum.AdvertisingPromotional); Vendor vendor = QBOHelper.QBO.QueryOrAddVendor(context); Item item = QBOHelper.QBO.ItemCreate(context); Purchase purchase = new Purchase { PaymentType = PaymentTypeEnum.Cash, PaymentTypeSpecified = true, AccountRef = new ReferenceType { name = account.Name, Value = account.Id }, EntityRef = new ReferenceType { type = EntityTypeEnum.Vendor.ToString(), name = vendor.DisplayName, Value = vendor.Id } }; Line itemLine = new Line { Description = "Item based expense line detail.", DetailType = LineDetailTypeEnum.ItemBasedExpenseLineDetail, DetailTypeSpecified = true }; MarkupInfo markupInfo = new MarkupInfo { PercentBased = true, PercentBasedSpecified = true, PercentSpecified = true, Percent = new Decimal(50) }; ItemBasedExpenseLineDetail itemLineDetail = new ItemBasedExpenseLineDetail { CustomerRef = new ReferenceType { name = customer.DisplayName, Value = customer.Id }, BillableStatus = BillableStatusEnum.Billable, BillableStatusSpecified = true, ItemRef = new ReferenceType { name = item.Name, Value = item.Id }, MarkupInfo = markupInfo, }; itemLine.AnyIntuitObject = itemLineDetail; if (item.UnitPrice > 0) { itemLine.Amount = item.UnitPrice; } else { itemLine.Amount = new Decimal(100); } itemLine.AmountSpecified = true; Line accountLine = new Line { Description = "Account based expense line detail.", DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail, DetailTypeSpecified = true }; AccountBasedExpenseLineDetail accountLineDetail = new AccountBasedExpenseLineDetail { CustomerRef = new ReferenceType { name = customer.DisplayName, Value = customer.Id }, AccountRef = new ReferenceType { name = expenseAccount.Name, Value = expenseAccount.Id }, BillableStatus = BillableStatusEnum.Billable, BillableStatusSpecified = true, MarkupInfo = markupInfo, }; accountLine.AnyIntuitObject = accountLineDetail; accountLine.Amount = new Decimal(100); accountLine.AmountSpecified = true; Line[] lines = { itemLine, accountLine }; purchase.Line = lines; // Add created purchase in QBO Purchase apiResponse = QBOHelper.Helper.AddToQBO(context, purchase); return(apiResponse); }
private Purchase AddCheckPayment(Purchase purchaseExisting) { QueryService <Customer> customerQueryService = new QueryService <Customer>(serviceContext); Customer customer = customerQueryService.ExecuteIdsQuery("Select * From Customer StartPosition 1 MaxResults 1").FirstOrDefault <Customer>(); //Find Bank Account QueryService <Account> accountQueryService = new QueryService <Account>(serviceContext); Account account = accountQueryService.ExecuteIdsQuery("Select * From Account Where AccountType='Bank' StartPosition 1 MaxResults 1").FirstOrDefault <Account>(); //Expense Account Account expenseaccount = accountQueryService.ExecuteIdsQuery("Select * From Account Where AccountType='Expense' StartPosition 1 MaxResults 1").FirstOrDefault <Account>(); Purchase purchase = new Purchase(); //Assign the doc number from previously fetched check purchase purchase.DocNumber = purchaseExisting.DocNumber; purchase.AccountRef = new ReferenceType() { name = account.Name, Value = account.Id }; purchase.PaymentType = PaymentTypeEnum.Check; purchase.PaymentTypeSpecified = true; purchase.EntityRef = new ReferenceType() { name = customer.DisplayName, Value = customer.Id }; purchase.TotalAmt = new Decimal(1000.00); purchase.TotalAmtSpecified = true; purchase.TxnDate = DateTime.UtcNow.Date; purchase.TxnDateSpecified = true; List <Line> lineList = new List <Line>(); Line line = new Line(); //line.LineNum = "LineNum"; line.Description = "Description for Line"; line.Amount = new Decimal(1000.00); line.AmountSpecified = true; line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; AccountBasedExpenseLineDetail lineDetail = new AccountBasedExpenseLineDetail(); lineDetail.AccountRef = new ReferenceType { name = expenseaccount.Name, Value = expenseaccount.Id }; lineDetail.BillableStatus = BillableStatusEnum.NotBillable; lineDetail.TaxAmount = new Decimal(10.00); lineDetail.TaxAmountSpecified = true; line.AnyIntuitObject = lineDetail; lineList.Add(line); purchase.Line = lineList.ToArray(); return(purchase); }
public JsonResult ApproveBillData(BillListApproveModel Obj, long LocationId, List <BillFacilityModel> FacilityData) { eTracLoginModel ObjLoginModel = null; string result = ""; string UserName = ""; string data = ""; long UserId = 0; var resultBill = new Bill(); if (Session["eTrac"] != null) { ObjLoginModel = (eTracLoginModel)(Session["eTrac"]); } try { if (Obj != null && Obj.BillId > 0) { UserName = ObjLoginModel.UserName; UserId = ObjLoginModel.UserId; //if (Session["realmId"] != null) //{ string realmId = CallbackController.RealMId.ToString();// Session["realmId"].ToString(); try { string AccessToken = CallbackController.AccessToken.ToString(); //Session["access_token"].ToString(); if (AccessToken == null) { AccessToken = Session["refresh_token"].ToString(); AccessToken = CallbackController.AccessToken.ToString(); } var principal = User as ClaimsPrincipal; OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken); // Create a ServiceContext with Auth tokens and realmId ServiceContext serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator); serviceContext.IppConfiguration.MinorVersion.Qbo = "23"; DataService commonServiceQBO = new DataService(serviceContext); // Create a QuickBooks QueryService using ServiceContext QueryService <Vendor> querySvc = new QueryService <Vendor>(serviceContext); List <Vendor> vendorList = querySvc.ExecuteIdsQuery("SELECT * FROM Vendor MaxResults 1000").ToList(); QueryService <Account> querySvcBill = new QueryService <Account>(serviceContext); List <Account> BillList = querySvcBill.ExecuteIdsQuery("SELECT * FROM Account MaxResults 1000").ToList(); var VendorDetails = _IVendorManagement.GetCompanyQuickBookId(Convert.ToInt64(Obj.VendorId)); //var vendorData = vendorList.Where(x => x.Id == "64").FirstOrDefault(); //var dataget = BillList.Where(x => x.Name == "Sample1").FirstOrDefault(); var bill = new Bill(); //Vendor Reference var reference = new ReferenceType(); var accountRef = new AccountBasedExpenseLineDetail(); if (VendorDetails > 0) { var vendorData = vendorList.Where(x => x.Id == VendorDetails.ToString()).FirstOrDefault(); //Vendor Reference bill.VendorRef = new ReferenceType() { name = vendorData.DisplayName, Value = vendorData.Id }; } //End Vendor Reference bill.TotalAmt = Convert.ToDecimal(Obj.BillAmount); var metaData = new ModificationMetaData(); metaData.CreateTime = Convert.ToDateTime(Obj.InvoiceDate); bill.MetaData = metaData; //End Time var LocationName = _IBillDataManager.GetLocationDataByLocId(LocationId); bill.DepartmentRef = new ReferenceType() { name = LocationName.LocationName, Value = LocationName.QBK_Id.ToString() }; Line line = new Line(); List <Line> lineList = new List <Line>(); bill.APAccountRef = new ReferenceType() { name = "Accounts Payable (A/P)", Value = "33" }; int i = 1; var costArray = new List <long>(); var costCodeArray = new List <CostCodeListData>(); var costDataModel = new CostCodeListData(); decimal amt = 0; decimal?Total = 0; if (FacilityData != null && FacilityData.Count() > 0) { foreach (var item in FacilityData) { long CostCodeId = Convert.ToInt64(item.CostCodeId); var costCodeName = _IBillDataManager.GetCostCodeData(CostCodeId); var dataget = BillList.Where(x => x.Name == costCodeName.Description).FirstOrDefault(); accountRef.AccountRef = new ReferenceType() { name = dataget.Name, Value = dataget.Id }; if (costCodeArray.Count() > 0) { foreach (var tt in costCodeArray) { if (tt.CostCodeId == item.CostCodeId) { amt = Convert.ToDecimal(item.Amount); Total = amt + tt.Amount; line.Amount = Convert.ToDecimal(Total); } else { line.Amount = Convert.ToDecimal(item.Amount); } } line.AnyIntuitObject = accountRef; line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; //line.Amount = Convert.ToDecimal(item.Amount); // line.Amount = Convert.ToDecimal(objBillDataServiceModel.InvoiceAmount); line.AmountSpecified = true; line.LineNum = Convert.ToString(i); line.Description = "Manual Bill"; lineList.Add(line); } else { line.Amount = Convert.ToDecimal(item.Amount); if (FacilityData.Count() == 1) { line.AnyIntuitObject = accountRef; line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; //line.Amount = Convert.ToDecimal(item.Amount); // line.Amount = Convert.ToDecimal(objBillDataServiceModel.InvoiceAmount); line.AmountSpecified = true; line.LineNum = Convert.ToString(i); line.Description = "Manual Bill"; lineList.Add(line); } } costDataModel.CostCodeId = Convert.ToInt64(item.CostCodeId); costDataModel.Amount = Convert.ToDecimal(item.Amount); costCodeArray.Add(costDataModel); i++; } } else { line.Amount = Convert.ToDecimal(Obj.BillAmount); var dataget = BillList.Where(x => x.Name == "Other Expenses").FirstOrDefault(); accountRef.AccountRef = new ReferenceType() { name = dataget.Name, Value = dataget.Id }; line.AnyIntuitObject = accountRef; line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; //line.Amount = Convert.ToDecimal(item.Amount); // line.Amount = Convert.ToDecimal(objBillDataServiceModel.InvoiceAmount); line.AmountSpecified = true; line.LineNum = Convert.ToString(i); line.Description = "Manual Bill"; lineList.Add(line); } bill.Line = lineList.ToArray(); // bill.ref resultBill = commonServiceQBO.Add(bill) as Bill; } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } //} Obj.QuickBookBillId = Convert.ToInt64(resultBill.Id); result = _IBillDataManager.ApproveBill(Obj, UserName, UserId, LocationId); } else { result = "No data to Approve please check bill data in grid."; } } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } return(Json(result, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Created By: Ashwajit Bansod /// Created Date : 18-OCT-2018 /// Created For : To Approve Miscellaneous. /// </summary> /// <param name="Obj"></param> /// <returns></returns> public JsonResult ApproveData(List <MiscellaneousListModel> Obj, long LocationId) { eTracLoginModel ObjLoginModel = null; bool result; string UserName = ""; string data = ""; long UserId = 0; var resultBill = new Bill(); long VendorDetailsId = 0; if (Session["eTrac"] != null) { ObjLoginModel = (eTracLoginModel)(Session["eTrac"]); } try { if (Obj.Count > 0) { //long VendorId = 0; UserName = ObjLoginModel.UserName; UserId = ObjLoginModel.UserId; //foreach (var item in Obj) //{ // VendorId = item.Vendor; //} //if (Session["realmId"] != null) //{ string realmId = CallbackController.RealMId.ToString();// Session["realmId"].ToString(); try { string AccessToken = CallbackController.AccessToken.ToString(); // Session["access_token"].ToString(); var principal = User as ClaimsPrincipal; OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken); // Create a ServiceContext with Auth tokens and realmId ServiceContext serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator); serviceContext.IppConfiguration.MinorVersion.Qbo = "23"; DataService commonServiceQBO = new DataService(serviceContext); // Create a QuickBooks QueryService using ServiceContext QueryService <Vendor> querySvc = new QueryService <Vendor>(serviceContext); List <Vendor> vendorList = querySvc.ExecuteIdsQuery("SELECT * FROM Vendor MaxResults 1000").ToList(); QueryService <Account> querySvcAccount = new QueryService <Account>(serviceContext); List <Account> accountData = querySvcAccount.ExecuteIdsQuery("SELECT * FROM Account MaxResults 1000").ToList(); /// default elite parking service vendor Id passed hardcoded it will will change in future VendorDetailsId = _IVendorManagement.GetCompanyQuickBookId(Convert.ToInt64(10019)); // var vendorData = vendorList.Where(x => x.Id == "64").FirstOrDefault(); var bill = new Bill(); //Vendor Reference var reference = new ReferenceType(); var accountRef = new AccountBasedExpenseLineDetail(); if (VendorDetailsId > 0) { var vendorData = vendorList.Where(x => x.Id == VendorDetailsId.ToString()).FirstOrDefault(); //Vendor Reference //Set it Hardcoded because need to add vendor , it is mendatory field so as per manager //operating company will pay miscellaneous expense bill.VendorRef = new ReferenceType() { name = vendorData.CompanyName, Value = vendorData.Id }; } bill.APAccountRef = new ReferenceType() { name = "Accounts Payable (A/P)", Value = "33" }; QueryService <Department> querySvcDept = new QueryService <Department>(serviceContext); var LocationName = _IBillDataManager.GetLocationDataByLocId(LocationId); bill.DepartmentRef = new ReferenceType() { name = LocationName.LocationName, Value = LocationName.QBK_Id.ToString() }; Line line = new Line(); List <Line> lineList = new List <Line>(); Line[] line1 = { }; int i = 1; var costArray = new List <long>(); var costCodeArray = new List <CostCodeListData>(); var costDataModel = new CostCodeListData(); decimal amt = 0; decimal?Total = 0; long CostCodeIdData = 0; var date = new DateTime(); long MISNumber = 0; foreach (var item in Obj) { string id = item.MISId.Split('S')[1]; MISNumber = Convert.ToInt64(id); var costCodeId = _IMiscellaneousManager.MiscellaneoousDataById(MISNumber); var CostCodeData = _IBillDataManager.GetCostCodeData(Convert.ToInt64(costCodeId.CostCode)); var dataget = accountData.Where(x => x.Name == CostCodeData.Description).FirstOrDefault(); MISNumber = Convert.ToInt64(item.MISNumber); accountRef.AccountRef = new ReferenceType() { name = dataget.Name, Value = dataget.Id }; //if (costCodeArray.Count() > 0) //{ // foreach (var tt in costCodeArray) // { // if (tt.CostCodeId == costCodeId.CostCode) // { // amt = Convert.ToDecimal(item.InvoiceAmount); // Total = amt + tt.Amount; // line.Amount = Convert.ToDecimal(Total); // } // else // { // line.Amount = Convert.ToDecimal(item.InvoiceAmount); // } // } // date = Convert.ToDateTime(item.MISDate); // line.LineNum = Convert.ToString(i); // line.AnyIntuitObject = accountRef; // line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; // line.DetailTypeSpecified = true; // line.AmountSpecified = true; // bill.Balance = Convert.ToDecimal(item.InvoiceAmount); // line.Amount = Convert.ToDecimal(item.InvoiceAmount); // line.Description = "Miscellaneous"; // //line1(line ); // lineList.Add(line); //} //else //{ // line.Amount = Convert.ToDecimal(item.InvoiceAmount); // if (Obj.Count() == 1) // { // date = Convert.ToDateTime(item.MISDate); // line.LineNum = Convert.ToString(i); // line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; // line.DetailTypeSpecified = true; // line.AnyIntuitObject = accountRef; // line.AmountSpecified = true; // bill.Balance = Convert.ToDecimal(item.InvoiceAmount); // line.Amount = Convert.ToDecimal(item.InvoiceAmount); // line.Description = "Miscellaneous"; // lineList.Add(line); // //line. // } //} //costDataModel.CostCodeId = Convert.ToInt64(costCodeId.CostCode); //costDataModel.Amount = Convert.ToDecimal(item.InvoiceAmount); //costCodeArray.Add(costDataModel); date = Convert.ToDateTime(item.MISDate); line.LineNum = Convert.ToString(i); line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; line.AnyIntuitObject = accountRef; line.AmountSpecified = true; line.Amount = Convert.ToDecimal(item.InvoiceAmount); line.Description = "Miscellaneous"; //line lineList.Add(line); i++; } var metaData = new ModificationMetaData(); metaData.CreateTime = Convert.ToDateTime(date); bill.MetaData = metaData; bill.Line = lineList.ToArray(); resultBill = commonServiceQBO.Add(bill) as Bill; } catch (Exception ex) { ViewBag.Message = ex.Message; ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; } //} long MiscQbkId = Convert.ToInt64(resultBill.Id); result = _IMiscellaneousManager.ApproveMiscellaneous(Obj, UserName, UserId, LocationId, MiscQbkId, VendorDetailsId); if (result == true) { data = CommonMessage.ApproveMiscellaneous(); } else { data = CommonMessage.ErrorMiscellaneous(); } } else { data = "No data to Approve please check miscellaneous data in grid."; } } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } return(Json(data, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Create Payables Bill /// </summary> /// <param name="dtBill"></param> /// <param name="sentDtBillItems"></param> public void CreatePayablesBill(DataTable dtBill, DataTable sentDtBillItems) { Bill bill = new Bill(); bill.DocNumber = Guid.NewGuid().ToString("N").Substring(0, 10); bill.TxnStatus = "Payable"; bill.APAccountRef = new ReferenceType() { type = Enum.GetName(typeof(objectNameEnumType), objectNameEnumType.Account), name = "Account Payable", Value = "QB:1" }; bill.VendorRef = new ReferenceType() { type = Enum.GetName(typeof(objectNameEnumType), objectNameEnumType.Vendor), //name = "sentVendorKey", Value = string.Concat("QB:", ((string)dtBill.Rows[0]["VendorName"])) }; // bill.TxnDate.SetValue((DateTime)dtBill.Rows[0]["BillDate"]); // bill.Memo.SetValue((string)dtBill.Rows[0]["VendorBillMemo"]); // bill.RefNumber.SetValue((string)dtBill.Rows[0]["VendorInvoiceNumber"]); bill.TxnTaxDetail = new TxnTaxDetail(); bill.TxnTaxDetail.DefaultTaxCodeRef = new ReferenceType() { Value = "QB:123", type = Enum.GetName(typeof(objectNameEnumType), objectNameEnumType.TaxCode), name = "TaxCodeName" }; bill.TxnTaxDetail.TotalTax = new Decimal(0.00); bill.TxnTaxDetail.TotalTaxSpecified = true; Line[] lines = new Line[sentDtBillItems.Rows.Count]; int billLineCnt = 0; foreach (System.Data.DataRow poItemrow in sentDtBillItems.Rows) { Line line1 = new Line(); line1.Amount = (decimal)poItemrow["POLineQty"]; line1.AmountSpecified = true; line1.Description = poItemrow["VendorItemNbr"].ToString(); line1.LineNum = poItemrow["POLinePrintOrder"].ToString(); line1.Id = (billLineCnt + 1).ToString(); //PurchaseOrderItemLineDetail purchaseOrderItemLineDetail = new PurchaseOrderItemLineDetail(); //purchaseOrderItemLineDetail.Qty = (decimal)poItemrow["POLineQty"]; //purchaseOrderItemLineDetail.QtySpecified = true; //purchaseOrderItemLineDetail.AnyIntuitObject = (decimal)(poItemrow["POLinePrice"]); //purchaseOrderItemLineDetail.ItemElementName = ItemChoiceType.UnitPrice; //line1.AnyIntuitObject = purchaseOrderItemLineDetail; AccountBasedExpenseLineDetail accountBasedExpenseLineDetail = new AccountBasedExpenseLineDetail(); accountBasedExpenseLineDetail.AccountRef = new ReferenceType() { Value = poItemrow["AccountNumber"].ToString() }; accountBasedExpenseLineDetail.ClassRef = new ReferenceType() { Value = poItemrow["Class"].ToString() }; accountBasedExpenseLineDetail.BillableStatus = BillableStatusEnum.Billable; line1.AnyIntuitObject = accountBasedExpenseLineDetail; lines[billLineCnt] = line1; billLineCnt++; } bill.Line = lines; Bill resultBill = services.Add(bill) as Bill; }
public JsonResult SavePOTypeDetails(POTypeDataModel objPOTypeDataModel, List <GridDataPO> obj, List <QuestionAnswerModel> objQuestioAsnwerList)//, HttpPostedFileBase file)//(POTypeDataModel objPOTypeDataModel) { eTracLoginModel ObjLoginModel = null; HttpFileCollectionBase files = Request.Files; bool savedStatus = false; var resultSave = new PurchaseOrder(); if (Session["eTrac"] != null) { ObjLoginModel = (eTracLoginModel)(Session["eTrac"]); } try { objPOTypeDataModel.UserId = ObjLoginModel.UserId; if (objPOTypeDataModel != null && objPOTypeDataModel.POId == 0) { if (objPOTypeDataModel.POD_EmergencyPODocumentFile != null) { string AttachmentName = ObjLoginModel.UserId + "_" + DateTime.Now.Ticks.ToString() + "_" + Convert.ToString(objPOTypeDataModel.POD_EmergencyPODocumentFile.FileName); CommonHelper.StaticUploadImage(objPOTypeDataModel.POD_EmergencyPODocumentFile, Server.MapPath(ConfigurationManager.AppSettings["EmergencyDocuments"]), AttachmentName); objPOTypeDataModel.POD_EmergencyPODocument = AttachmentName; } bool IsManager = true; string realmId = CallbackController.RealMId.ToString();//Session["realmId"].ToString(); if (realmId != null) { try { string AccessToken = CallbackController.AccessToken.ToString(); // Session["access_token"].ToString(); string refreshToken = CallbackController.RefreshToken; var principal = User as ClaimsPrincipal; OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken); ServiceContext serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator); serviceContext.IppConfiguration.MinorVersion.Qbo = "23"; DataService commonServiceQBO = new DataService(serviceContext); // Create a QuickBooks QueryService using ServiceContext Account account = new Account(); QueryService <Account> querySvcCompany = new QueryService <Account>(serviceContext); List <Account> listAccount = querySvcCompany.ExecuteIdsQuery("SELECT * FROM Account MaxResults 1000") .ToList(); QueryService <Vendor> querySvc = new QueryService <Vendor>(serviceContext); List <Vendor> vendorList = querySvc.ExecuteIdsQuery("SELECT * FROM Vendor MaxResults 1000").ToList(); //var Vendor = _IVendorManagement.GetVendorId(objListData.CompanyName); var VendorDetails = _IVendorManagement.GetCompanyQuickBookId(Convert.ToInt64(objPOTypeDataModel.Vendor)); ReferenceType parentReference = new ReferenceType(); var purchaseOrder = new PurchaseOrder(); //var lineDetailType = new LineDetailTypeEnum(); if (VendorDetails > 0) { var vendorData = vendorList.Where(x => x.Id == VendorDetails.ToString()).FirstOrDefault(); //Vendor Reference purchaseOrder.VendorRef = new ReferenceType() { name = vendorData.DisplayName, Value = vendorData.Id }; } var LocationName = _IBillDataManager.GetLocationDataByLocId(Convert.ToInt64(objPOTypeDataModel.Location)); purchaseOrder.DepartmentRef = new ReferenceType() { name = LocationName.LocationName, Value = LocationName.QBK_Id.ToString() }; purchaseOrder.POStatus = PurchaseOrderStatusEnum.Open; //Line line = new Line(); List <Line> lineList = new List <Line>(); var accountRef = new AccountBasedExpenseLineDetail(); purchaseOrder.APAccountRef = new ReferenceType() { name = "Accounts Payable (A/P)", Value = "33" }; foreach (var item in obj) { var line = new Line(); line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; long CostCodeId = Convert.ToInt64(item.CostCode); var costCodeName = _IBillDataManager.GetCostCodeData(CostCodeId); var dataget = listAccount.Where(x => x.Name == costCodeName.Description).FirstOrDefault(); if (dataget != null) { accountRef.AccountRef = new ReferenceType() { name = dataget.Name, Value = dataget.Id }; } line.AnyIntuitObject = accountRef; line.DetailTypeSpecified = true; line.Amount = Convert.ToDecimal(item.Quantity) * Convert.ToDecimal(item.UnitPrice); line.AmountSpecified = true; line.Description = item.COM_Facility_Desc; lineList.Add(line); } purchaseOrder.Line = lineList.ToArray(); resultSave = commonServiceQBO.Add(purchaseOrder) as PurchaseOrder; } catch (Exception ex) { ViewBag.Message = ex.Message; ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; } } if (resultSave.Id != null) { objPOTypeDataModel.QBK_Id = Convert.ToInt64(resultSave.Id); } else { objPOTypeDataModel.QBK_Id = 0; } savedStatus = _IPOTypeDetails.SavePODetails(objPOTypeDataModel, obj, objQuestioAsnwerList, IsManager); if (savedStatus == true) { ViewBag.Message = CommonMessage.SaveSuccessMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Success; return(Json(savedStatus, JsonRequestBehavior.AllowGet)); } else { ViewBag.Message = CommonMessage.FailureMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;// store the failure message in tempdata to display in view. return(Json(savedStatus, JsonRequestBehavior.AllowGet)); } } else { bool IsManager = true; savedStatus = _IPOTypeDetails.SavePODetails(objPOTypeDataModel, obj, objQuestioAsnwerList, IsManager); if (savedStatus == true) { ViewBag.Message = CommonMessage.UpdateSuccessMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Success; return(Json(savedStatus, JsonRequestBehavior.AllowGet)); //return RedirectToAction("AllPOList", "POTypeData"); //return View("AllPOList"); } else { ViewBag.Message = CommonMessage.FailureMessage(); ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger;// store the failure message in tempdata to display in view. //return RedirectToAction("AllPOList", "POTypeData"); return(Json(savedStatus, JsonRequestBehavior.AllowGet)); //return View("AllPOList"); } } //var objModel = new POTypeDataModel(); //return View("AllPOList"); //return Json(savedStatus, JsonRequestBehavior.AllowGet); } catch (Exception ex) { ViewBag.Message = ex; ViewBag.AlertMessageClass = ObjAlertMessageClass.Danger; throw ex; } finally { ViewBag.PONumber = _IPOTypeDetails.PONumberData(); ViewBag.POType = _IPOTypeDetails.POTypeList(); } //return View("AllPOList"); }
/* * Create's a Bill * A Bill object is an AP transaction representing a request-for-payment from a third party for goods/services rendered, received, or both. */ private Bill CreateBill(ServiceContext serviceContext, Vendor vendors) { DataService dataService = new DataService(serviceContext); #region create customer Random random = new Random(); Customer customer = new Customer(); customer.GivenName = "Bob" + random.Next(); customer.FamilyName = "Serling"; customer.DisplayName = customer.CompanyName; Customer customeradded = dataService.Add <Customer>(customer); #endregion #region create liability account //Get a liability account. If not present create one QueryService <Account> accountQuerySvc = new QueryService <Account>(serviceContext); Account liabilityAccount = accountQuerySvc.ExecuteIdsQuery("SELECT * FROM Account WHERE AccountType='Accounts Payable' AND Classification='Liability'").FirstOrDefault(); if (liabilityAccount == null) { Account accountp = new Account(); String guid = Guid.NewGuid().ToString("N"); accountp.Name = "Name_" + guid; // accountp.FullyQualifiedName = liabilityAccount.Name; accountp.Classification = AccountClassificationEnum.Liability; accountp.ClassificationSpecified = true; accountp.AccountType = AccountTypeEnum.AccountsPayable; accountp.AccountTypeSpecified = true; accountp.CurrencyRef = new ReferenceType() { name = "United States Dollar", Value = "USD" }; liabilityAccount = dataService.Add <Account>(accountp); } #endregion #region create expense account //Get a Expense account. If not present create one Account expenseAccount = accountQuerySvc.ExecuteIdsQuery("SELECT * FROM Account WHERE AccountType='Expense' AND Classification='Expense'").FirstOrDefault(); if (expenseAccount == null) { Account accounte = new Account(); String guid = Guid.NewGuid().ToString("N"); accounte.Name = "Name_" + guid; // accounte.FullyQualifiedName = expenseAccount.Name; accounte.Classification = AccountClassificationEnum.Liability; accounte.ClassificationSpecified = true; accounte.AccountType = AccountTypeEnum.AccountsPayable; accounte.AccountTypeSpecified = true; accounte.CurrencyRef = new ReferenceType() { name = "United States Dollar", Value = "USD" }; expenseAccount = dataService.Add <Account>(accounte); } #endregion #region create bill for the added vendor //Create a bill and add a vendor reference Bill bill = new Bill(); bill.DueDate = DateTime.UtcNow.Date; bill.DueDateSpecified = true; bill.VendorRef = new ReferenceType() { name = vendors.DisplayName, Value = vendors.Id }; bill.APAccountRef = new ReferenceType() { name = liabilityAccount.Name, Value = liabilityAccount.Id }; bill.TotalAmt = new Decimal(100.00); bill.TotalAmtSpecified = true; bill.Balance = new Decimal(100.00); bill.BalanceSpecified = true; bill.TxnDate = DateTime.UtcNow.Date; bill.TxnDateSpecified = true; //Create a line for the bill List <Line> lineList = new List <Line>(); Line line = new Line(); line.Description = "Description"; line.Amount = new Decimal(100.00); line.AmountSpecified = true; line.DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail; line.DetailTypeSpecified = true; lineList.Add(line); bill.Line = lineList.ToArray(); //Create an AccountBasedExpenseLineDetail AccountBasedExpenseLineDetail detail = new AccountBasedExpenseLineDetail(); detail.CustomerRef = new ReferenceType { name = customeradded.DisplayName, Value = customeradded.Id }; detail.AccountRef = new ReferenceType { name = expenseAccount.Name, Value = expenseAccount.Id }; detail.BillableStatus = BillableStatusEnum.NotBillable; line.AnyIntuitObject = detail; Bill billadded = dataService.Add <Bill>(bill); return(billadded); #endregion }