Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion IRP/src/CommonModules/CurrenciesServer/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -1719,6 +1719,12 @@ Procedure DebitCreditNoteDifference(Parameters)
Result = GetAmountByRecordType(Table, "VendorsAdvancesClosing", AccumulationRecordType.Expense);
TotalExpense = Result.TotalAmount;

ElsIf Parameters.Object.SendDebtType = Enums.DebtTypes.EmployeeReceivable Then

Table = Parameters.PostingDataTables[Metadata.AccumulationRegisters.R3027B_EmployeeCashAdvance].PrepareTable;
Result = GetAmountByRecordType(Table, "", AccumulationRecordType.Expense);
TotalExpense = Result.TotalAmount;

EndIf;

// Receive (receipt)
Expand Down Expand Up @@ -1759,6 +1765,14 @@ Procedure DebitCreditNoteDifference(Parameters)
TotalReceipt = Result.TotalAmount;
LegalCurrency = Result.LegalCurrency;

ElsIf Parameters.Object.ReceiveDebtType = Enums.DebtTypes.EmployeeReceivable Then

Table = Parameters.PostingDataTables[Metadata.AccumulationRegisters.R3027B_EmployeeCashAdvance].PrepareTable;
Result = GetAmountByRecordType(Table, "", AccumulationRecordType.Receipt);
BalanceType = "active";
TotalReceipt = Result.TotalAmount;
LegalCurrency = Result.LegalCurrency;

EndIf;

If TotalExpense = TotalReceipt Then
Expand Down Expand Up @@ -1884,7 +1898,7 @@ Function GetAmountByRecordType(Table, IgnoreColumnName, RecordType)
Result = New Structure("LegalCurrency, TotalAmount", Undefined, 0);

For Each Row In Table Do
If ValueIsFilled(Row[IgnoreColumnName]) Then
If ValueIsFilled(IgnoreColumnName) And ValueIsFilled(Row[IgnoreColumnName]) Then
Continue;
EndIf;

Expand Down
152 changes: 75 additions & 77 deletions IRP/src/Documents/DebitCreditNote/ManagerModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -1270,54 +1270,64 @@ EndFunction

#Region Accounting_Analytics

Function GetAnalytics_R5020B_PartnersBalance(Parameters)
AccountingAnalytics = AccountingServer.GetAccountingAnalyticsResult(Parameters);
AccountParameters = AccountingServer.GetAccountParameters(Parameters);

Function GetAdditionalAnalytics(Parameters)
// Sender
AdditionalAnalytics_Sender = New Structure();
AdditionalAnalytics_Sender.Insert("Partner" , Parameters.ObjectData.SendPartner);
AdditionalAnalytics_Sender.Insert("LegalName" , Parameters.ObjectData.SendLegalName);
AdditionalAnalytics_Sender.Insert("Agreement" , Parameters.ObjectData.SendAgreement);
AdditionalAnalytics_Sender.Insert("Contract" , Parameters.ObjectData.SendLegalNameContract);
AdditionalAnalytics_Sender.Insert("Order" , Parameters.ObjectData.SendOrder);
AdditionalAnalytics_Sender.Insert("BasisDocument" , Parameters.ObjectData.SendBasisDocument);
AdditionalAnalytics_Sender.Insert("Currency" , Parameters.ObjectData.SendCurrency);
Sender = New Structure();
Sender.Insert("Partner" , Parameters.ObjectData.SendPartner);
Sender.Insert("LegalName" , Parameters.ObjectData.SendLegalName);
Sender.Insert("Agreement" , Parameters.ObjectData.SendAgreement);
Sender.Insert("Contract" , Parameters.ObjectData.SendLegalNameContract);
Sender.Insert("Order" , Parameters.ObjectData.SendOrder);
Sender.Insert("BasisDocument" , Parameters.ObjectData.SendBasisDocument);
Sender.Insert("Currency" , Parameters.ObjectData.SendCurrency);

// Receiver
AdditionalAnalytics_Receiver = New Structure();
AdditionalAnalytics_Receiver.Insert("Partner" , Parameters.ObjectData.ReceivePartner);
AdditionalAnalytics_Receiver.Insert("LegalName" , Parameters.ObjectData.ReceiveLegalName);
AdditionalAnalytics_Receiver.Insert("Agreement" , Parameters.ObjectData.ReceiveAgreement);
AdditionalAnalytics_Receiver.Insert("Contract" , Parameters.ObjectData.ReceiveLegalNameContract);
AdditionalAnalytics_Receiver.Insert("Order" , Parameters.ObjectData.ReceiveOrder);
AdditionalAnalytics_Receiver.Insert("BasisDocument" , Parameters.ObjectData.ReceiveBasisDocument);
AdditionalAnalytics_Receiver.Insert("Currency" , Parameters.ObjectData.ReceiveCurrency);
Receiver = New Structure();
Receiver.Insert("Partner" , Parameters.ObjectData.ReceivePartner);
Receiver.Insert("LegalName" , Parameters.ObjectData.ReceiveLegalName);
Receiver.Insert("Agreement" , Parameters.ObjectData.ReceiveAgreement);
Receiver.Insert("Contract" , Parameters.ObjectData.ReceiveLegalNameContract);
Receiver.Insert("Order" , Parameters.ObjectData.ReceiveOrder);
Receiver.Insert("BasisDocument" , Parameters.ObjectData.ReceiveBasisDocument);
Receiver.Insert("Currency" , Parameters.ObjectData.ReceiveCurrency);

AccountVariantsMapping = New Map();
AccountVariantsMapping.Insert(Enums.DebtTypes.AdvanceVendor , "AccountAdvancesVendor");
AccountVariantsMapping.Insert(Enums.DebtTypes.TransactionCustomer , "AccountTransactionsCustomer");
AccountVariantsMapping.Insert(Enums.DebtTypes.OtherPartnerReceivable , "AccountTransactionsOther");
AccountVariantsMapping.Insert(Enums.DebtTypes.EmployeeReceivable , "AccountCashAdvance");
AccountVariantsMapping.Insert(Enums.DebtTypes.TransactionVendor , "AccountTransactionsVendor");
AccountVariantsMapping.Insert(Enums.DebtTypes.AdvanceCustomer , "AccountAdvancesCustomer");
AccountVariantsMapping.Insert(Enums.DebtTypes.OtherPartnerPayable , "AccountTransactionsOther");
AccountVariantsMapping.Insert(Enums.DebtTypes.EmployeePayable , "AccountCashAdvance");

Return New Structure("Sender, Receiver", Sender, Receiver);
EndFunction

Function GetAccountVariantsMapping()
Mapping = New Map();
Mapping.Insert(Enums.DebtTypes.AdvanceVendor , "AccountAdvancesVendor");
Mapping.Insert(Enums.DebtTypes.TransactionCustomer , "AccountTransactionsCustomer");
Mapping.Insert(Enums.DebtTypes.OtherPartnerReceivable , "AccountTransactionsOther");
Mapping.Insert(Enums.DebtTypes.EmployeeReceivable , "AccountCashAdvance");
Mapping.Insert(Enums.DebtTypes.TransactionVendor , "AccountTransactionsVendor");
Mapping.Insert(Enums.DebtTypes.AdvanceCustomer , "AccountAdvancesCustomer");
Mapping.Insert(Enums.DebtTypes.OtherPartnerPayable , "AccountTransactionsOther");
Mapping.Insert(Enums.DebtTypes.EmployeePayable , "AccountCashAdvance");
Return Mapping;
EndFunction

Function GetAnalytics_R5020B_PartnersBalance(Parameters)
AccountingAnalytics = AccountingServer.GetAccountingAnalyticsResult(Parameters);
AccountParameters = AccountingServer.GetAccountParameters(Parameters);

AdditionalAnalytics = GetAdditionalAnalytics(Parameters);
AccountVariantsMapping = GetAccountVariantsMapping();

QueryParams = GetAdditionalQueryParameters(Undefined);

Debit_AccountKey = Undefined;
Credit_AccountKey = Undefined;

If QueryParams.ArrayOfReceivable.Find(Parameters.ObjectData.SendDebtType) <> Undefined Then
Credit_Analytics = AdditionalAnalytics_Sender;
Credit_Analytics = AdditionalAnalytics.Sender;
Credit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.SendDebtType);
Debit_Analytics = AdditionalAnalytics_Receiver;
Debit_Analytics = AdditionalAnalytics.Receiver;
Debit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.ReceiveDebtType);
ElsIf QueryParams.ArrayOfPayable.Find(Parameters.ObjectData.SendDebtType) <> Undefined Then
Debit_Analytics = AdditionalAnalytics_Sender;
Debit_Analytics = AdditionalAnalytics.Sender;
Debit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.SendDebtType);
Credit_Analytics = AdditionalAnalytics_Receiver;
Credit_Analytics = AdditionalAnalytics.Receiver;
Credit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.ReceiveDebtType);
Else
Raise StrTemplate("Unsupported send debt type[%1]", Parameters.ObjectData.SendDebtType);
Expand Down Expand Up @@ -1420,19 +1430,22 @@ Function GetAnalytics_DR_R5020B_PartnersBalance_CR_R5021_Revenues(Parameters)
AccountingAnalytics = AccountingServer.GetAccountingAnalyticsResult(Parameters);
AccountParameters = AccountingServer.GetAccountParameters(Parameters);

AdditionalAnalytics_Partner = New Structure();
AdditionalAnalytics_Partner.Insert("Partner" , Parameters.ObjectData.ReceivePartner);
AdditionalAnalytics_Partner.Insert("LegalName" , Parameters.ObjectData.ReceiveLegalName);
AdditionalAnalytics_Partner.Insert("Agreement" , Parameters.ObjectData.ReceiveAgreement);
AdditionalAnalytics_Partner.Insert("Contract" , Parameters.ObjectData.ReceiveLegalNameContract);
AdditionalAnalytics_Partner.Insert("Order" , Parameters.ObjectData.ReceiveOrder);
AdditionalAnalytics_Partner.Insert("BasisDocument" , Parameters.ObjectData.ReceiveBasisDocument);
AdditionalAnalytics = GetAdditionalAnalytics(Parameters);
AccountVariantsMapping = GetAccountVariantsMapping();

Accounts_Partner = AccountingServer.GetT9012S_AccountsPartner(AccountParameters,
Parameters.ObjectData.ReceivePartner,
Parameters.ObjectData.ReceiveAgreement,
Parameters.ObjectData.ReceiveCurrency);
Debit_Analytics = AdditionalAnalytics.Receiver;
Debit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.ReceiveDebtType);

If Upper(Debit_AccountKey) = Upper("AccountCashAdvance") Then
Debit_AccountVariants = AccountingServer.GetT9016S_AccountsEmployee(AccountParameters,
Debit_Analytics.Partner);
Else
Debit_AccountVariants = AccountingServer.GetT9012S_AccountsPartner(AccountParameters,
Debit_Analytics.Partner,
Debit_Analytics.Agreement,
Debit_Analytics.Currency);
EndIf;

AdditionalAnalytics_Revenue = New Structure();
AdditionalAnalytics_Revenue.Insert("RevenueType" , Parameters.ObjectData.RevenueType);
AdditionalAnalytics_Revenue.Insert("ProfitCenter" , Parameters.ObjectData.ProfitCenter);
Expand All @@ -1441,17 +1454,8 @@ Function GetAnalytics_DR_R5020B_PartnersBalance_CR_R5021_Revenues(Parameters)
Parameters.ObjectData.RevenueType,
Parameters.ObjectData.ProfitCenter);

// Debit
If Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.TransactionCustomer Then
AccountingAnalytics.Debit = Accounts_Partner.AccountTransactionsCustomer;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.AdvanceCustomer Then
AccountingAnalytics.Debit = Accounts_Partner.AccountAdvancesCustomer;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.TransactionVendor Then
AccountingAnalytics.Debit = Accounts_Partner.AccountTransactionsVendor;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.AdvanceVendor Then
AccountingAnalytics.Debit = Accounts_Partner.AccountAdvancesVendor;
EndIf;
AccountingServer.SetDebitExtDimensions(Parameters, AccountingAnalytics, AdditionalAnalytics_Partner);
AccountingAnalytics.Debit = Debit_AccountVariants[Debit_AccountKey];
AccountingServer.SetDebitExtDimensions(Parameters, AccountingAnalytics, Debit_Analytics);

// Credit
AccountingAnalytics.Credit = Accounts_Revenue.AccountRevenue;
Expand All @@ -1464,18 +1468,20 @@ Function GetAnalytics_DR_R5022T_Expenses_CR_R5020B_PartnersBalance(Parameters)
AccountingAnalytics = AccountingServer.GetAccountingAnalyticsResult(Parameters);
AccountParameters = AccountingServer.GetAccountParameters(Parameters);

AdditionalAnalytics_Partner = New Structure();
AdditionalAnalytics_Partner.Insert("Partner" , Parameters.ObjectData.ReceivePartner);
AdditionalAnalytics_Partner.Insert("LegalName" , Parameters.ObjectData.ReceiveLegalName);
AdditionalAnalytics_Partner.Insert("Agreement" , Parameters.ObjectData.ReceiveAgreement);
AdditionalAnalytics_Partner.Insert("Contract" , Parameters.ObjectData.ReceiveLegalNameContract);
AdditionalAnalytics_Partner.Insert("Order" , Parameters.ObjectData.ReceiveOrder);
AdditionalAnalytics_Partner.Insert("BasisDocument" , Parameters.ObjectData.ReceiveBasisDocument);
AdditionalAnalytics = GetAdditionalAnalytics(Parameters);
AccountVariantsMapping = GetAccountVariantsMapping();

Accounts_Partner = AccountingServer.GetT9012S_AccountsPartner(AccountParameters,
Parameters.ObjectData.ReceivePartner,
Parameters.ObjectData.ReceiveAgreement,
Parameters.ObjectData.ReceiveCurrency);
Credit_Analytics = AdditionalAnalytics.Receiver;
Credit_AccountKey = AccountVariantsMapping.Get(Parameters.ObjectData.ReceiveDebtType);

If Upper(Credit_AccountKey) = Upper("AccountCashAdvance") Then
Credit_AccountVariants = AccountingServer.GetT9016S_AccountsEmployee(AccountParameters, Credit_Analytics.Partner);
Else
Credit_AccountVariants = AccountingServer.GetT9012S_AccountsPartner(AccountParameters,
Credit_Analytics.Partner,
Credit_Analytics.Agreement,
Credit_Analytics.Currency);
EndIf;

AdditionalAnalytics_Expense = New Structure();
AdditionalAnalytics_Expense.Insert("ExpenseType" , Parameters.ObjectData.ExpenseType);
Expand All @@ -1490,16 +1496,8 @@ Function GetAnalytics_DR_R5022T_Expenses_CR_R5020B_PartnersBalance(Parameters)
AccountingServer.SetDebitExtDimensions(Parameters, AccountingAnalytics, AdditionalAnalytics_Expense);

// Credit
If Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.TransactionCustomer Then
AccountingAnalytics.Credit = Accounts_Partner.AccountTransactionsCustomer;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.AdvanceCustomer Then
AccountingAnalytics.Credit = Accounts_Partner.AccountAdvancesCustomer;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.TransactionVendor Then
AccountingAnalytics.Credit = Accounts_Partner.AccountTransactionsVendor;
ElsIf Parameters.ObjectData.ReceiveDebtType = Enums.DebtTypes.AdvanceVendor Then
AccountingAnalytics.Credit = Accounts_Partner.AccountAdvancesVendor;
EndIf;
AccountingServer.SetCreditExtDimensions(Parameters, AccountingAnalytics, AdditionalAnalytics_Partner);
AccountingAnalytics.Credit = Credit_AccountVariants[Credit_AccountKey];
AccountingServer.SetCreditExtDimensions(Parameters, AccountingAnalytics, Credit_Analytics);

Return AccountingAnalytics;
EndFunction
Expand Down
12 changes: 12 additions & 0 deletions IRP/src/Enums/DebtTypes/ManagerModule.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

Procedure ChoiceDataGetProcessing(ChoiceData, Parameters, StandardProcessing)
StandardProcessing = False;
ChoiceData = New ValueList();
ChoiceData.Add(AdvanceVendor);
ChoiceData.Add(TransactionVendor);
ChoiceData.Add(AdvanceCustomer);
ChoiceData.Add(TransactionCustomer);
ChoiceData.Add(OtherPartnerPayable);
ChoiceData.Add(OtherPartnerReceivable);
ChoiceData.Add(EmployeeReceivable);
EndProcedure