public static decimal GetCompanyRevenuePercent(int opprotunityId) { var recordset = (Recordset)SapDiConnection.Instance.GetBusinessObject(BoObjectTypes.BoRecordset); string sql = "select ifnull(\"U_Opporcomm\",0) from \"OPR1\" where \"Line\" = \r\n(select max(\"Line\") from \"OPR1\" where \"OpprId\" = \'{0}\' )\r\nand \"OpprId\" = \'{0}\'"; sql = String.Format(sql, opprotunityId); recordset.DoQuery(sql); recordset.MoveFirst(); return(InternalConverters.ConvertStringToDecimal(recordset.Fields.Item(0).Value.ToString())); }
private void BindOpportunityToForm() { try { _opportunity.GetByKey(_opportunityNumber); EditText0.Value = _opportunityNumber.ToString(); EditText3.Value = _opportunity.OpportunityName; EditText1.Value = _opportunity.CardCode; EditText4.Value = _opportunity.CustomerName; EditText12.Value = (_opportunity.WeightedSumLC - (double)InternalConverters.ConvertStringToDecimal(OpportunityRepository.GetOpportunityUsedAmount(_opportunityNumber).ToString())).ToString(); EditText6.Value = SalesPersonRepository.GetNameById(_opportunity.SalesPerson); EditText8.Value = _opportunity.ClosingPercentage + "%"; // var businessPartners = // (BusinessPartners) SapDiConnection.Instance.GetBusinessObject(BoObjectTypes // .oBusinessPartners); // businessPartners.GetByKey(_opportunity.CardCode); // // businessPartners.ContactEmployees.SetCurrentLine(_opportunity.ContactPerson - 1); //// EditText5.Value = businessPartners.ContactEmployees.Name; EditText7.Value = _opportunity.StartDate.ToString("dd.MM.yy"); //add items var items = OpportunityRepository.GetOpportunityItemsById(_opportunityNumber); var count = 1; foreach (var item in items) { Matrix0.AddRow(); ((EditText)Matrix0.Columns.Item("#").Cells.Item(count).Specific).Value = count.ToString(); ((EditText)Matrix0.Columns.Item("Col_0").Cells.Item(count).Specific).Value = item.Id; ((EditText)Matrix0.Columns.Item("Col_1").Cells.Item(count).Specific).Value = item.Name; count++; } //dates EditText9.Value = DateTime.Today.ToString("yyyyMMdd"); EditText10.Value = DateTime.Today.ToString("yyyyMMdd"); EditText11.Value = DateTime.Today.ToString("yyyyMMdd"); EditText16.Value = InternalConverters.StringToDateTypeEdittext(_opportunity.UserFields.Fields.Item("U_ctrctdateto").Value.ToString()); EditText17.Value = InternalConverters.StringToDateTypeEdittext(_opportunity.UserFields.Fields.Item("U_cntrctdateFrom").Value.ToString()); _distrule = _opportunity.UserFields.Fields.Item("U_DistRule").Value.ToString(); _contractMonths = InternalConverters.EditTextToDateTime(EditText17.Value).Subtract(InternalConverters.EditTextToDateTime(EditText16.Value)).Days / (365.25 / 12); _contractMonths = Math.Round(_contractMonths); StaticText25.Caption = _contractMonths + " months"; } catch (Exception exception) { Application.SBO_Application.SetStatusBarMessage(exception.Message); UIAPIRawForm.Close(); } }
public static decimal GetOpportunityUsedAmount(int opprotunityId) { var recordset = (Recordset)SapDiConnection.Instance.GetBusinessObject(BoObjectTypes.BoRecordset); string sql = "select IFNULL(SUM(t1.\"DocTotalFC\"),0) as \"Total\" from \"OPR1\" t0 \r\nleft join \"OINV\" t1 on t1.\"DocNum\" = t0.\"DocNumber\" where t0.\"OpprId\" = {0} and t0.\"ObjType\" = 13\r\nand t1.\"CardCode\" not in (SELECT t2.\"RelatCard\" FROM \"OPR2\" t2 where t2.\"OpportId\" = {0} )\r\n"; sql = String.Format(sql, opprotunityId); recordset.DoQuery(sql); recordset.MoveFirst(); return(InternalConverters.ConvertStringToDecimal(recordset.Fields.Item(0).Value.ToString())); }
private Result CreateType2() { int errCode; string errMSG; var newObjectCode = ""; var percent = OpportunityRepository.GetCompanyRevenuePercent(_opportunityNumber); var partners = OpportunityRepository.GetPartnerList(_opportunityNumber); if (partners.Count == 0) { return new Result { Code = 10, Message = "Check Partners" } } ; var ARInvoice = (Documents)SapDiConnection.Instance.GetBusinessObject(BoObjectTypes.oInvoices); ARInvoice.CardCode = EditText19.Value; ARInvoice.DocDate = InternalConverters.EditTextToDateTime(EditText9.Value); ARInvoice.DocDueDate = InternalConverters.EditTextToDateTime(EditText10.Value); ARInvoice.TaxDate = InternalConverters.EditTextToDateTime(EditText11.Value); ARInvoice.SalesPersonCode = _opportunity.SalesPerson; ARInvoice.DocCurrency = _opportunity.UserFields.Fields.Item("U_CURRENCY").Value.ToString(); ARInvoice.UserFields.Fields.Item("U_OppId").Value = _opportunityNumber; for (var i = 1; i <= Matrix0.RowCount; i++) { ARInvoice.Lines.ItemCode = ((EditText)Matrix0.Columns.Item(1).Cells.Item(i).Specific).Value; ARInvoice.Lines.Quantity = 1; if (_opportunityType == 1 && CheckBox0.Checked) { ARInvoice.Lines.AccountCode = ((int)AccountCodes.insuranceBrokerage).ToString(); } else if (_opportunityType == 2 && CheckBox0.Checked) { ARInvoice.Lines.AccountCode = ((int)AccountCodes.reInsuranceBrokerage).ToString(); } else if (!CheckBox0.Checked) { ARInvoice.Lines.AccountCode = ((int)AccountCodes.clearingFirst).ToString(); } ARInvoice.Lines.Price = (double)InternalConverters.ConvertStringToDecimal(EditText12.Value); ARInvoice.Lines.CostingCode = "B2B"; ARInvoice.Lines.CostingCode2 = _distrule; ARInvoice.Lines.Add(); } ARInvoice.Add(); SapDiConnection.Instance.GetLastError(out errCode, out errMSG); if (errCode != 0) { return new Result { Code = errCode, Message = errMSG } } ; SapDiConnection.Instance.GetNewObjectCode(out newObjectCode); AddStageToOpportunity(newObjectCode, BoAPARDocumentTypes.bodt_Invoice); SapDiConnection.Instance.GetLastError(out errCode, out errMSG); if (errCode != 0) { return new Result { Code = errCode, Message = errMSG } } ; //partners foreach (var partner in partners) { //ap for partner var APInvoiceForPartner = (Documents)SapDiConnection.Instance.GetBusinessObject(BoObjectTypes.oPurchaseInvoices); APInvoiceForPartner.CardCode = partner.Vendor; APInvoiceForPartner.DocDate = InternalConverters.EditTextToDateTime(EditText9.Value); APInvoiceForPartner.DocDueDate = InternalConverters.EditTextToDateTime(EditText10.Value); APInvoiceForPartner.TaxDate = InternalConverters.EditTextToDateTime(EditText11.Value); APInvoiceForPartner.SalesPersonCode = _opportunity.SalesPerson; APInvoiceForPartner.DocCurrency = _opportunity.UserFields.Fields.Item("U_CURRENCY").Value.ToString(); APInvoiceForPartner.UserFields.Fields.Item("U_OppId").Value = _opportunityNumber; for (var i = 1; i <= Matrix0.RowCount; i++) { APInvoiceForPartner.Lines.ItemCode = ((EditText)Matrix0.Columns.Item(1).Cells.Item(i).Specific).Value; APInvoiceForPartner.Lines.Quantity = 1; if (_opportunityType == 1 && CheckBox0.Checked) { APInvoiceForPartner.Lines.AccountCode = ((int)AccountCodes.insuranceBrokerage).ToString(); } else if (_opportunityType == 2 && CheckBox0.Checked) { APInvoiceForPartner.Lines.AccountCode = ((int)AccountCodes.reInsuranceBrokerage).ToString(); } else if (!CheckBox0.Checked) { APInvoiceForPartner.Lines.AccountCode = ((int)AccountCodes.clearingFirst).ToString(); } APInvoiceForPartner.Lines.Price = (double)((InternalConverters.ConvertStringToDecimal(EditText12.Value) / 100) * partner.Rate); APInvoiceForPartner.Lines.CostingCode = "B2B"; APInvoiceForPartner.Lines.CostingCode2 = _distrule; APInvoiceForPartner.Lines.Add(); } APInvoiceForPartner.Add(); SapDiConnection.Instance.GetLastError(out errCode, out errMSG); if (errCode != 0) { return new Result { Code = errCode, Message = errMSG } } ; SapDiConnection.Instance.GetNewObjectCode(out newObjectCode); AddStageToOpportunity(newObjectCode, BoAPARDocumentTypes.bodt_PurchaseInvoice); SapDiConnection.Instance.GetLastError(out errCode, out errMSG); if (errCode != 0) { return new Result { Code = errCode, Message = errMSG } } ; } return(new Result { Code = errCode, Message = errMSG }); }
private List <AccountAction> CreateListOfActionsForAccounts() { List <AccountAction> actions = new List <AccountAction>(); var currency = _opportunity.UserFields.Fields.Item("U_CURRENCY").Value.ToString(); var begda = InternalConverters.EditTextToDateTime(EditText16.Value); var endda = InternalConverters.EditTextToDateTime(EditText17.Value); var diffMonth = Math.Round(endda.Subtract(begda).Days / (365.25 / 12)); var recordset = ((SBObob)SapDiConnection.Instance.GetBusinessObject(BoObjectTypes.BoBridge)).GetCurrencyRate(currency, DateTime.Today); recordset.MoveFirst(); var rate = InternalConverters.ConvertStringToDecimal(recordset.Fields.Item(0).Value.ToString()); var amount = (double)((InternalConverters.ConvertStringToDecimal(EditText12.Value) * (decimal)_opportunity.GrossProfit) / 100) / diffMonth; AccountCodes toAccount = AccountCodes.insuranceBrokerage; if (_opportunityType == 1) { toAccount = AccountCodes.insuranceBrokerage; } else if (_opportunityType == 2) { toAccount = AccountCodes.reInsuranceBrokerage; } amount = amount * (double)rate; for (int i = 0; i < diffMonth; i++) { if (begda < DateTime.Today) { actions.Add(new AccountAction() { //JE Type = 1, OppNumber = _opportunityNumber, ContractNumber = "", RunDate = begda, Amount = amount, Currency = "AZN", FromAccount = AccountCodes.clearingFirst, ToAccount = toAccount }); } else { actions.Add(new AccountAction() { //JE Planning Type = 2, OppNumber = _opportunityNumber, ContractNumber = "", RunDate = begda, Amount = amount, Currency = "AZN", FromAccount = AccountCodes.clearingFirst, ToAccount = toAccount }); } begda = begda.AddMonths(1); } return(actions); }
private void Button0_PressedAfter(object sboObject, SBOItemEventArg pVal) { var answer = Application.SBO_Application.MessageBox("Create Documents For Opportunity ?", 2, "Yes", "No"); if (answer == 2) { return; } if (InternalConverters.ConvertStringToDecimal(EditText12.Value) == 0) { Application.SBO_Application.SetStatusBarMessage("Amount Must Be More Than Zero"); return; } if (ComboBox0.Selected == null) { Application.SBO_Application.SetStatusBarMessage("Please Select Operation Type"); return; } if (Convert.ToDecimal(EditText12.Value) == 0) { Application.SBO_Application.SetStatusBarMessage("Please Fill Amount"); return; } if (string.IsNullOrEmpty(EditText9.Value) || string.IsNullOrEmpty(EditText9.Value) || string.IsNullOrEmpty(EditText9.Value)) { Application.SBO_Application.SetStatusBarMessage("Please Fill Dates"); return; } if (String.IsNullOrEmpty(EditText19.Value)) { Application.SBO_Application.SetStatusBarMessage("Please Select Business Partner"); return; } if (String.IsNullOrEmpty(EditText15.Value)) { Application.SBO_Application.SetStatusBarMessage("Please Select Payment List"); return; } try { var result = new Result(); SapDiConnection.Instance.StartTransaction(); //cretae A/R A/P Documents switch (ComboBox0.Selected.Description) { case "Forma 1": result = CreateType1(); break; case "Forma 2": result = CreateType2(); break; case "Forma 3": result = CreateType3(); break; } if (result.Code != 0) { throw new Exception(result.Message); } //create JE schedule if (!CheckBox0.Checked) { result = CreateJESchedule(); } if (result.Code != 0) { throw new Exception(result.Message); } SapDiConnection.Instance.EndTransaction(BoWfTransOpt.wf_Commit); Application.SBO_Application.MessageBox("Documents Succesfully Created"); UIAPIRawForm.Close(); } catch (Exception exception) { Application.SBO_Application.SetStatusBarMessage(exception.Message); if (SapDiConnection.Instance.InTransaction) { SapDiConnection.Instance.EndTransaction(BoWfTransOpt.wf_RollBack); } Application.SBO_Application.MessageBox(exception.Message); } }