/// <summary> /// MAA R&D /// </summary> /// <param name="FormID"></param> /// <returns></returns> private bool ExportRDDataByFormID(int FormID, int logId) { ExportDataDS.ExportDataDataTable l_dtExportData = new ExportDataDS.ExportDataDataTable(); FormDS.FormRDPaymentRow l_drFormRDPayment = new FormDS.FormRDPaymentDataTable().NewFormRDPaymentRow(); MasterDataBLL masterdatabll = new MasterDataBLL(); FormRDBLL formrdbll = new FormRDBLL(); FormPurchaseBLL formPurchaseBLL = new FormPurchaseBLL(); int Count = 0; FormDS.FormDataTable l_dtform = formrdbll.GetFormByID(FormID); FormDS.FormRow l_drform = l_dtform.NewFormRow(); try { if (l_dtform.Rows.Count > 0) { l_drform = l_dtform[0]; if (l_drform.IsFinanceRemarkNull()) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:财务摘要为空,导出失败!"); return false; } l_drFormRDPayment = formrdbll.GetFormRDPaymentByID(l_drform.FormID); FormDS.FormRDPaymentDetailDataTable l_dtFormRDPaymentDetail = formrdbll.GetFormRDPaymentDetailByPaymentID(FormID); for (int i = 0; i < l_dtFormRDPaymentDetail.Rows.Count; i++) { if (l_dtFormRDPaymentDetail[i].AmountBeforeTax == Decimal.Zero) { Count++; continue; } //PurchaseDS.FormInvoiceDataTable l_dtFormInvoice = formPurchaseBLL.GetFormInvoiceByFormID(FormID); ExportDataDS.ExportDataRow l_drExportData = l_dtExportData.NewExportDataRow(); l_drExportData.FormID = FormID; l_drExportData.CompanyCode = masterdatabll.GetCompanyById(masterdatabll.GetVendorTypeById(masterdatabll.GetVendorByID(l_dtFormRDPaymentDetail[i].VendorID).VendorTypeID).CompanyID).CompanyCode; l_drExportData.VendorCode = masterdatabll.GetVendorByID(l_dtFormRDPaymentDetail[i].VendorID).VendorCode; if (l_drExportData.IsVendorCodeNull() || string.IsNullOrEmpty(l_drExportData.VendorCode)) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:Vendor Code为空,无法导出!"); return false; } //发票号码改为单据编号,单据编号变为10位 l_drExportData.Invoice = l_drform.FormNo; l_drExportData.Invoicedate = l_drform.SubmitDate.ToString("yyyyMMdd"); //if (l_dtFormInvoice.Rows.Count > 1) // l_drExportData.Reference = l_dtFormInvoice[1].InvoiceNo; //if (l_dtFormInvoice.Rows.Count > 0) { // l_drExportData.Invoice = l_dtFormInvoice[0].InvoiceNo; // l_drExportData.Invoicedate = l_dtFormInvoice[0].InvoiceDate.ToString("yyyyMMdd"); //} else { // l_drExportData.Invoice = l_drform.FormNo; // l_drExportData.Invoicedate = l_drform.SubmitDate.ToString("yyyyMMdd"); //} l_drExportData.TotalMoney = l_drFormRDPayment.AmountBeforeTaxRMB; //l_drExportData.Currency = masterdatabll.GetCurrencyByID(formmarkbll.GetFormMarketingApplyByID(l_drMarketingPayment.FormMarketingApplyID)[0].CurrencyID).CurrencyShortName; //l_drExportData.ExchangeRate = formmarkbll.GetFormMarketingApplyByID(l_drMarketingPayment.FormMarketingApplyID)[0].ExchangeRate; l_drExportData.ManageExpenseItem = masterdatabll.GetExpenseItemById(l_dtFormRDPaymentDetail[i].ExpenseItemID).ExpenseItemName; //profit center取AccrualCode,如果没有报错 if (masterdatabll.GetCostCenterById(l_drform.CostCenterID).IsAccrualCodeNull()) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:Profit Center Accrual Code为空,无法导出!"); return false; } else { l_drExportData.CostCenter = masterdatabll.GetCostCenterById(l_drform.CostCenterID).AccrualCode; } if (formrdbll.GetFormRDApplyByID(l_drFormRDPayment.FormRDApplyID)[0].FPeriod.AddMonths(5).Year == l_drform.SubmitDate.AddMonths(5).Year) l_drExportData.AccountCode = masterdatabll.GetExpenseItemById(l_dtFormRDPaymentDetail[i].ExpenseItemID).AccrualAccountingCode; else l_drExportData.AccountCode = masterdatabll.GetExpenseItemById(l_dtFormRDPaymentDetail[i].ExpenseItemID).LastAccountingCode; l_drExportData.DetailMoney = l_dtFormRDPaymentDetail[i].AmountBeforeTax; if (l_drFormRDPayment.IsFormPOIDNull()) { //PurchaseDS.FormPODataTable formPO = formPurchaseBLL.GetFormPOByParentFormID(l_drFormRDPayment.FormRDApplyID); //if (formPO.Rows.Count > 0) { // l_drExportData.PONumber = formPO[0].BPCSPONo; // PurchaseDS.FormPODetailDataTable formPODetail = formPurchaseBLL.GetPODetailByFormPOID(formPO[0].FormPOID); // l_drExportData.POLineNumber = formPODetail.Rows.Count.ToString(); //} else { l_drExportData.PONumber = 0; l_drExportData.POLineNumber = "0"; //} } else { //若已选择PO,取所选PO信息 PurchaseDS.FormPORow formPO = formPurchaseBLL.GetFormPOByID(l_drFormRDPayment.FormPOID); PurchaseDS.FormPODetailDataTable formPODetail = formPurchaseBLL.GetPODetailByFormPOID(l_drFormRDPayment.FormPOID); l_drExportData.PONumber = formPO.BPCSPONo; l_drExportData.POLineNumber = formPODetail.Count.ToString(); } l_drExportData.FinanceRemark = l_drform.FinanceRemark; l_drExportData.FormNo = l_drform.FormNo; l_drExportData.TaxAmt = l_dtFormRDPaymentDetail[i].TaxAmount; l_drExportData.TaxRateCode = masterdatabll.GetVatTypeById(l_drFormRDPayment.VATTypeID)[0].VatTypeName; l_dtExportData.AddExportDataRow(l_drExportData); Count++; } if (l_dtExportData.Rows.Count == 0) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:无明细数据,无法导出!"); return false; } if (l_dtFormRDPaymentDetail.Rows.Count == Count) ExportByFormView(l_dtExportData); else { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:明细数据与导出数据数量不一致!"); return false; } } } catch (Exception e) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:" + e.Message); return false; } return true; }