Add Fuchs_Database SSDT project (schema source of truth)
Adds the SQL Server Data Tools project for the fuchs_fds database — tables, table types, functions and stored procedures that the backend calls (e.g. fds__getInvoice, fds__merge_bankingtransactions, fds__tt__bankingtransactions, fds__admin_getReportCatalog, fis_* auth). Build/model caches (bin, obj, *.dbmdl, *.jfm, *.user) are git-ignored. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
<Solution>
|
||||
<Project Path="FuchsDatabase.sqlproj" Id="c062672e-866d-4c74-b6de-8d660a42e885">
|
||||
<Build />
|
||||
<Deploy />
|
||||
</Project>
|
||||
</Solution>
|
||||
@@ -0,0 +1,424 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<Name>FuchsDatabase</Name>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>4.1</ProjectVersion>
|
||||
<ProjectGuid>{c062672e-866d-4c74-b6de-8d660a42e885}</ProjectGuid>
|
||||
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql170DatabaseSchemaProvider</DSP>
|
||||
<OutputType>Database</OutputType>
|
||||
<RootPath>
|
||||
</RootPath>
|
||||
<RootNamespace>FuchsDatabase</RootNamespace>
|
||||
<AssemblyName>FuchsDatabase</AssemblyName>
|
||||
<ModelCollation>1033, CI</ModelCollation>
|
||||
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
|
||||
<DeployToDatabase>True</DeployToDatabase>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<TargetLanguage>CS</TargetLanguage>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<SqlServerVerification>False</SqlServerVerification>
|
||||
<IncludeCompositeObjects>True</IncludeCompositeObjects>
|
||||
<TargetDatabaseSet>True</TargetDatabaseSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
|
||||
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
|
||||
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
|
||||
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties" />
|
||||
<Folder Include="dbo\" />
|
||||
<Folder Include="dbo\Tables\" />
|
||||
<Folder Include="dbo\Views\" />
|
||||
<Folder Include="Security\" />
|
||||
<Folder Include="dbo\Functions\" />
|
||||
<Folder Include="dbo\Stored Procedures\" />
|
||||
<Folder Include="dbo\User Defined Types\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Build Include="dbo\Tables\tmp__fds__invoice_servicerequests.sql" />
|
||||
<Build Include="dbo\Tables\tmp__fds__bankingtransactions.sql" />
|
||||
<Build Include="dbo\Tables\mfr__xl__servicerequests.sql" />
|
||||
<Build Include="dbo\Tables\mfr__users.sql" />
|
||||
<Build Include="dbo\Tables\mfr__timeevents.sql" />
|
||||
<Build Include="dbo\Tables\mfr__tags.sql" />
|
||||
<Build Include="dbo\Tables\mfr__stockmovements.sql" />
|
||||
<Build Include="dbo\Tables\mfr__steps.sql" />
|
||||
<Build Include="dbo\Tables\mfr__steplisttemplates.sql" />
|
||||
<Build Include="dbo\Tables\mfr__steplisttemplateinstances.sql" />
|
||||
<Build Include="dbo\Tables\mfr__servicerequests.sql" />
|
||||
<Build Include="dbo\Tables\mfr__serviceobjects.sql" />
|
||||
<Build Include="dbo\Tables\mfr__reports.sql" />
|
||||
<Build Include="dbo\Tables\mfr__qualifications.sql" />
|
||||
<Build Include="dbo\Tables\mfr__products.sql" />
|
||||
<Build Include="dbo\Tables\mfr__itemunits.sql" />
|
||||
<Build Include="dbo\Tables\mfr__itemtypes.sql" />
|
||||
<Build Include="dbo\Tables\mfr__items.sql" />
|
||||
<Build Include="dbo\Tables\mfr__invoices.sql" />
|
||||
<Build Include="dbo\Tables\mfr__documents.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_timeevents.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_stockmovements.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_steps.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_items.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_comments.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_appointments.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d__PartnerSet.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_#locations.sql" />
|
||||
<Build Include="dbo\Tables\mfr__d_#customvalues.sql" />
|
||||
<Build Include="dbo\Tables\mfr__costcenters.sql" />
|
||||
<Build Include="dbo\Tables\mfr__contacts.sql" />
|
||||
<Build Include="dbo\Tables\mfr__companies.sql" />
|
||||
<Build Include="dbo\Tables\mfr__comments.sql" />
|
||||
<Build Include="dbo\Tables\mfr__attachments.sql" />
|
||||
<Build Include="dbo\Tables\mfr__appointments.sql" />
|
||||
<Build Include="dbo\Tables\mfr___PartnerSet.sql" />
|
||||
<Build Include="dbo\Tables\mfr__#locations.sql" />
|
||||
<Build Include="dbo\Tables\mfr__#customvalues.sql" />
|
||||
<Build Include="dbo\Tables\fuchs_planner_traffic.sql" />
|
||||
<Build Include="dbo\Tables\fuchs_planner_options.sql" />
|
||||
<Build Include="dbo\Tables\fuchs_planner_groups.sql" />
|
||||
<Build Include="dbo\Tables\fuchs_planner.sql" />
|
||||
<Build Include="dbo\Tables\fuchs_debug.sql" />
|
||||
<Build Include="dbo\Tables\fis_widgets_cache.sql" />
|
||||
<Build Include="dbo\Tables\fis_widgets.sql" />
|
||||
<Build Include="dbo\Tables\fis_widget_subscriptions.sql" />
|
||||
<Build Include="dbo\Tables\fis_usergroups_members.sql" />
|
||||
<Build Include="dbo\Tables\fis_usergroups.sql" />
|
||||
<Build Include="dbo\Tables\fis_useraccounts_settings.sql" />
|
||||
<Build Include="dbo\Tables\fis_useraccounts.sql" />
|
||||
<Build Include="dbo\Tables\fis_module_auth.sql" />
|
||||
<Build Include="dbo\Tables\fis_admin_debuglog.sql" />
|
||||
<Build Include="dbo\Tables\fds__status.sql" />
|
||||
<Build Include="dbo\Tables\fds__removed.sql" />
|
||||
<Build Include="dbo\Tables\fds__reminder.sql" />
|
||||
<Build Include="dbo\Tables\fds__payments.sql" />
|
||||
<Build Include="dbo\Tables\fds__mfr_updaterequests.sql" />
|
||||
<Build Include="dbo\Tables\fds__mfr_invoicefiles.sql" />
|
||||
<Build Include="dbo\Tables\fds__log.sql" />
|
||||
<Build Include="dbo\Tables\fds__invoices.sql" />
|
||||
<Build Include="dbo\Tables\fds__invoice_servicerequests.sql" />
|
||||
<Build Include="dbo\Tables\fds__invoice_items.sql" />
|
||||
<Build Include="dbo\Tables\fds__invoice_details.sql" />
|
||||
<Build Include="dbo\Tables\fds__emaillog.sql" />
|
||||
<Build Include="dbo\Tables\fds__debuglog.sql" />
|
||||
<Build Include="dbo\Tables\fds__custom_vat.sql" />
|
||||
<Build Include="dbo\Tables\fds__custom_servicerequest.sql" />
|
||||
<Build Include="dbo\Tables\fds__custom_invoiceinfo.sql" />
|
||||
<Build Include="dbo\Tables\fds__bankingtransactions_settings.sql" />
|
||||
<Build Include="dbo\Tables\fds__bankingtransactions_assigns.sql" />
|
||||
<Build Include="dbo\Tables\fds__bankingtransactions.sql" />
|
||||
<Build Include="dbo\Tables\fds__admin_settings.sql" />
|
||||
<Build Include="dbo\Tables\fds__admin_reportcatalog.sql" />
|
||||
<Build Include="dbo\Tables\fds__admin_dberrors.sql" />
|
||||
<Build Include="dbo\Tables\fds__admin_activity.sql" />
|
||||
<Build Include="dbo\Views\ocms_fn_rand.sql" />
|
||||
<Build Include="Security\fuchs_rwe.sql" />
|
||||
<Build Include="Security\fds_rwe.sql" />
|
||||
<Build Include="Security\fuchs_web.sql" />
|
||||
<Build Include="Security\fuchs_fds.sql" />
|
||||
<Build Include="dbo\Functions\vat_val.sql" />
|
||||
<Build Include="dbo\Functions\strings_replaceSpecialCharsInHTML.sql" />
|
||||
<Build Include="dbo\Functions\strings_removeLeading0_255.sql" />
|
||||
<Build Include="dbo\Functions\strings_removeLeading0.sql" />
|
||||
<Build Include="dbo\Functions\strings_encodeHTML.sql" />
|
||||
<Build Include="dbo\Functions\ott_remove_csv.sql" />
|
||||
<Build Include="dbo\Functions\ott_random_int.sql" />
|
||||
<Build Include="dbo\Functions\ott_quote_255.sql" />
|
||||
<Build Include="dbo\Functions\ott_quote.sql" />
|
||||
<Build Include="dbo\Functions\ott_min_float.sql" />
|
||||
<Build Include="dbo\Functions\ott_min_date.sql" />
|
||||
<Build Include="dbo\Functions\ott_min.sql" />
|
||||
<Build Include="dbo\Functions\ott_merge_csv.sql" />
|
||||
<Build Include="dbo\Functions\ott_max_float.sql" />
|
||||
<Build Include="dbo\Functions\ott_max.sql" />
|
||||
<Build Include="dbo\Functions\ott_jcsv_containskey.sql" />
|
||||
<Build Include="dbo\Functions\ott_jcsv_contains.sql" />
|
||||
<Build Include="dbo\Functions\ott_jcontent.sql" />
|
||||
<Build Include="dbo\Functions\ott_csv_contains.sql" />
|
||||
<Build Include="dbo\Functions\ott_b26.sql" />
|
||||
<Build Include="dbo\Functions\ott_b10.sql" />
|
||||
<Build Include="dbo\Functions\net_val.sql" />
|
||||
<Build Include="dbo\Functions\ne.sql" />
|
||||
<Build Include="dbo\Functions\mfr_fn_dateSent_fromNotes.sql" />
|
||||
<Build Include="dbo\Functions\mfr__schema.sql" />
|
||||
<Build Include="dbo\Functions\fis_getModuleAuth.sql" />
|
||||
<Build Include="dbo\Functions\fis_fn_useraccount_id.sql" />
|
||||
<Build Include="dbo\Functions\fis_fn_id.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_testGroupMembership.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserSetting.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserName_rev_byID.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserName_rev.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserName_byID.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserName.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserEmail_byID.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAuth.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAddressForm.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_checkUserExists.sql" />
|
||||
<Build Include="dbo\Functions\fds__updateNeed.sql" />
|
||||
<Build Include="dbo\Functions\fds__r_getBalanceThisMonth.sql" />
|
||||
<Build Include="dbo\Functions\fds__newInvoiceId.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanyNameAddress.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanyName.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanyEmail.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanyAddress.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_vatfrombalances.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_ReminderDocumentName.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_reminder_id.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_isInvoiceCancelled.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_invoice-srq_id.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_InvoicePaymentAmount_full.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_InvoicePaymentAmount.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_InvoiceIDs_mfr.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_InvoiceIdByName.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_invoice_id.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_invoice_customerid.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_IntermediateIsAllocatedToOther.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_DocumentName.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_creanupTransactionInfo.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_combineAddress.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_bankingtransaction_id.sql" />
|
||||
<Build Include="dbo\Functions\date_weekfirst.sql" />
|
||||
<Build Include="dbo\Functions\date_weekend.sql" />
|
||||
<Build Include="dbo\Functions\date_nextFirst.sql" />
|
||||
<Build Include="dbo\Functions\date_monthfirst.sql" />
|
||||
<Build Include="dbo\Functions\date_monthend.sql" />
|
||||
<Build Include="dbo\Functions\date_addcustom.sql" />
|
||||
<Build Include="dbo\Functions\date_add.sql" />
|
||||
<Build Include="dbo\Functions\bo_val.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__r_getBalanceThisMonth.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__fn_InvoiceIdByName.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__fn_invoice_customerid.sql" />
|
||||
<Build Include="dbo\Functions\AddBusinessDays.sql" />
|
||||
<Build Include="dbo\Functions\string_SplitString_ordered.sql" />
|
||||
<Build Include="dbo\Functions\ott_20_randomStrings.sql" />
|
||||
<Build Include="dbo\Functions\json_diffObjectArrays.sql" />
|
||||
<Build Include="dbo\Functions\json_compareObjectArrays.sql" />
|
||||
<Build Include="dbo\Functions\fis_getONEPersonWidgets.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserGroupList.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAccountList.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAccount_Namelist.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAccount_byemail.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_getUserAccount.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_authenticate_byID.sql" />
|
||||
<Build Include="dbo\Functions\fis_admin_authenticate.sql" />
|
||||
<Build Include="dbo\Functions\fds__getUpdateableTables.sql" />
|
||||
<Build Include="dbo\Functions\fds__getUpdateableRequests.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_bankingtransactions_perInvoice.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_bankingtransactions.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__fn_bankingtransactions.sql" />
|
||||
<Build Include="dbo\Functions\fis_getModuleAuthList.sql" />
|
||||
<Build Include="dbo\Functions\fds__getRequestTreeIds.sql" />
|
||||
<Build Include="dbo\Functions\fds__getInvoiceTreeIds.sql" />
|
||||
<Build Include="dbo\Functions\fds__getInvoiceCredits.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanysContacts.sql" />
|
||||
<Build Include="dbo\Functions\fds__getCompanyContacts.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_unpaidInvoices.sql" />
|
||||
<Build Include="dbo\Functions\fds__fn_requestsforinvoice.sql" />
|
||||
<Build Include="dbo\Functions\fds__admin_reminderSettings.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__getInvoiceTreeIds.sql" />
|
||||
<Build Include="dbo\Functions\backup__fds__fn_unpaidInvoices.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__users.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__timeevents.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__tags.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__stockmovements.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__steps.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__steplisttemplates.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__steplisttemplateinstances.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__servicerequests.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__serviceobjects.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__reports.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__qualifications.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__products.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__itemunits.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__itemtypes.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__items.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__invoices.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__documents.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__costcenters.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__contacts.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__companies.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__comments.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__attachments.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__appointments.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt___PartnerSet.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__#locations.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__updt__#customvalues.sql" />
|
||||
<Build Include="dbo\Stored Procedures\mfr__getSchema.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fuchs_planner_submit.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fuchs_planner_getSummary.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fuchs_planner_getPrev.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fuchs_planner_getNext.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_widgets_setCache.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_widgets_getCache.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_setUserGroup.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_setUserAccount_activeStatus.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_setUserAccount.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_setNewPassword.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_resetUserPassword.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_remGroupMember.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_delUserGroup.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_delUserAccount.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_debug.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_createUserAccount.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fis_admin_addGroupMember.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__toggleRequestHidden.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setStatus.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setReportVAT.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setReminderSent.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setReminderFinal.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setReminderFile.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setMFRInvoiceFile.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoiceUNPayed.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoiceSent.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoicePaymentStatus_auto_single.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoicePaymentStatus_auto.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoicePayed.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoiceFinal.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoiceFile.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoiceCancelled__deprecated.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setInvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setBankingtransaction_done.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setBankingtransaction_autoAssigns.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__setBankingtransaction_assignToIvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__remInvoice_ServiceRequests.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__remInvoice_Items.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__remInvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__r_getBalanceTrendByYear.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__r_getBalanceTrendByMonth.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__r_getBalanceByYearTopMaterial.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__r_getBalanceByYearTopCustomer.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__r_getBalanceByMonth.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__prepStorno_recreate.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__prepReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__prepInvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__merge_bankingtransactions.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__maint__updateCancelledStatus.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__lookupReminders.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__logEmail.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getRequests_list2.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getRequests_list.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getRequest_details.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getReportDocument.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvRequestItems.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvPayments.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvoices_list2.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvoices_list_vario.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvoices_list.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvoiceReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getInvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getFDSDocument.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getDatevExports.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getBankingtransfers_questionable.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getBankingtransfers_list2.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__getBankingtransfers_list.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__fn_getMFRInvoicesWithoutfiles.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createStorno_simple.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createStorno_copy.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createInvoice_ServiceRequest.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createInvoice_Details.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createInvoice.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__createCredit_simple.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__admin_updateconflicttables.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__admin_removeconflicttables.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__admin_logdebug.sql" />
|
||||
<Build Include="dbo\Stored Procedures\fds__admin_getReportCatalog.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__setInvoicePayed.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__setBankingtransaction_autoAssigns.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__r_getBalanceTrendByYear.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__r_getBalanceTrendByMonth.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__r_getBalanceByYearTopMaterial.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__r_getBalanceByYearTopCustomer.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__r_getBalanceByMonth.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__prepStorno_recreate.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__prepReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__lookupReminders.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getRequests_list2.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getRequests_list.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getRequest_details.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getReportDocument.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getInvRequestItems.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getInvoices_list2.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getInvoices_list_vario.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getInvoiceReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getDatevExports.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getBankingtransfers_questionable.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__getBankingtransfers.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__createStorno_simple.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__createReminder.sql" />
|
||||
<Build Include="dbo\Stored Procedures\backup__fds__createCredit_simple.sql" />
|
||||
<Build Include="dbo\Stored Procedures\_BackupAndClearInvoiceFile.sql" />
|
||||
<Build Include="dbo\User Defined Types\json_data_maxU.sql" />
|
||||
<Build Include="dbo\User Defined Types\hash_256.sql" />
|
||||
<Build Include="dbo\User Defined Types\datetime_utc.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__users.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__timeevents.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__tags.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__stockmovements.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__steps.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__steplisttemplates.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__steplisttemplateinstances.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__servicerequests.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__serviceobjects.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__reports.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__qualifications.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__products.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__itemunits.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__itemtypes.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__items.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__invoices.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__documents.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__costcenters.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__contacts.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__companies.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__comments.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__attachments.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__appointments.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt___PartnerSet.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__#locations.sql" />
|
||||
<Build Include="dbo\User Defined Types\mfr__tt__#customvalues.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__reminder_core.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__mfr_steps.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__mfr_items.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__invoice_servicerequests.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__invoice_items.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__invoice_core.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__invoice_base.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__idlist_vchar.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__idlist.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__bankingtransactions.sql" />
|
||||
<Build Include="dbo\User Defined Types\fds__tt__admin_ReportAdminTable.sql" />
|
||||
<Build Include="Security\fuchs_enc_1.sql" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE ROLE [fds_rwe]
|
||||
AUTHORIZATION [dbo];
|
||||
|
||||
|
||||
GO
|
||||
ALTER ROLE [fds_rwe] ADD MEMBER [fuchs_fds];
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
CREATE SYMMETRIC KEY [fuchs_enc_1]
|
||||
AUTHORIZATION [dbo]
|
||||
WITH ALGORITHM = AES_256
|
||||
ENCRYPTION BY PASSWORD = N'lwppdri?q{jdzus&bkuaheklmsFT7_&#$!~<dhle,zJ,q3th';
|
||||
|
||||
|
||||
GO
|
||||
GRANT CONTROL
|
||||
ON SYMMETRIC KEY::[fuchs_enc_1] TO [fds_rwe];
|
||||
|
||||
|
||||
GO
|
||||
GRANT CONTROL
|
||||
ON SYMMETRIC KEY::[fuchs_enc_1] TO [fuchs_rwe];
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
CREATE USER [fuchs_fds] FOR LOGIN [fuchs_fds];
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE ROLE [fuchs_rwe]
|
||||
AUTHORIZATION [dbo];
|
||||
|
||||
|
||||
GO
|
||||
ALTER ROLE [fuchs_rwe] ADD MEMBER [fuchs_web];
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
CREATE USER [fuchs_web] FOR LOGIN [fuchs_web];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
CREATE FUNCTION[dbo].[AddBusinessDays](@Date DATE,@n INT)
|
||||
RETURNS DATE AS
|
||||
BEGIN
|
||||
DECLARE @d INT,@f INT,@DW INT;
|
||||
SET @f=CAST(abs(1^SIGN(DATEPART(DW, @Date)-(7-@@DATEFIRST))) AS BIT)
|
||||
SET @DW=DATEPART(DW,@Date)-(7-@@DATEFIRST)*(@f^1)+@@DATEFIRST*(@f&1)
|
||||
SET @d=4-SIGN(@n)*(4-@DW);
|
||||
RETURN DATEADD(D,@n+((ABS(@n)+(@d%(8+SIGN(@n)))-2)/5)*2*SIGN(@n)-@d/7,@Date);
|
||||
END
|
||||
@@ -0,0 +1,27 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__fn_InvoiceIdByName]
|
||||
(
|
||||
@nme varchar(255)
|
||||
)
|
||||
RETURNS varchar(20)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Id varchar(20);
|
||||
|
||||
SET @nme = TRIM((SELECT TOP(1) [value] FROM string_split(@nme, '(')));
|
||||
|
||||
SET @Id = ISNULL(
|
||||
(SELECT TOP(1) [Id] FROM (
|
||||
SELECT TOP(1) [Id], [fds] = 1 FROM [dbo].[fds__invoices] WHERE [InvoiceId] = @nme
|
||||
UNION
|
||||
SELECT TOP(1) try_Cast([Id] as varchar(20)), [fds] = 0 FROM [dbo].[mfr__invoices] WHERE [InvoiceId] = @nme
|
||||
)z ORDER BY [fds] DESC
|
||||
),'');
|
||||
|
||||
RETURN @id;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,83 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__fn_bankingtransactions]
|
||||
(
|
||||
@startdate date = NULL
|
||||
,@enddate date = NULL
|
||||
,@invoice_startdate date = NULL
|
||||
,@invoice_enddate date = NULL
|
||||
,@invoice_idlist [dbo].[fds__tt__idlist_vchar] READONLY
|
||||
)
|
||||
RETURNS @bankingtransactions TABLE
|
||||
(
|
||||
[uid] bigint
|
||||
,[AccountIdentification] varchar(50)
|
||||
,[ValueDate] date
|
||||
,[Amount] numeric(9,2)
|
||||
,[AccountNumberOfPayer] varchar(30)
|
||||
,[NameOfPayer] nvarchar(60)
|
||||
,[SepaRemittanceInformation] varchar(150)
|
||||
,[EndToEndReference] varchar(50)
|
||||
,[manu] bit
|
||||
,[InvId] varchar(15)
|
||||
,[done_manually] bit
|
||||
,[fds] bit
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- Fill the table variable with the rows for your result set
|
||||
DECLARE @firstever date = '1900-01-01', @tomorrow date = DATEADD(dAy, 1, GETDATE());
|
||||
SELECT @invoice_startdate = ISNULL(@invoice_startdate, @firstever), @invoice_enddate = ISNULL(@invoice_enddate, @tomorrow);
|
||||
DECLARE @idlistempty bit = IIF(EXISTS (SELECT 0 FROM @invoice_idlist) ,0,1);
|
||||
|
||||
with bt as (
|
||||
SELECT [uid],[AccountIdentification],[ValueDate],[Amount],AccountNumberOfPayer,NameOfPayer, SepaRemittanceInformation, EndToEndReference
|
||||
FROM [dbo].[fds__bankingtransactions] as bt_
|
||||
where (@startdate is null OR bt_.ValueDate >= @startdate)
|
||||
AND (@enddate is null or bt_.ValueDate <= @enddate)
|
||||
), bs0manu as (
|
||||
SELECT bs.[banking_uid], [invid] = spl.[value], [manu] = cast(1 as bit)
|
||||
FROM [dbo].[fds__bankingtransactions_settings] as bs
|
||||
CROSS APPLY STRING_SPLIT(bs.assigned_invoice_id, ',') as spl
|
||||
JOIN bt on bt.[uid] = bs.[banking_uid]
|
||||
WHERE bs.assigned_invoice_id is not null
|
||||
), bs1 as (
|
||||
SELECT * FROM bs0manu
|
||||
UNION
|
||||
SELECT bs.[banking_uid], [invid] = spl.[value], [manu] = cast(0 as bit)
|
||||
FROM [dbo].[fds__bankingtransactions_settings] as bs
|
||||
CROSS APPLY STRING_SPLIT(bs.auto_invoice_id, ',') as spl
|
||||
JOIN bt on bt.[uid] = bs.[banking_uid]
|
||||
WHERE bs.auto_invoice_id is not null
|
||||
and bt.[uid] NOT IN (SELECT [banking_uid] FROM bs0manu)
|
||||
), bs as (
|
||||
SELECT banking_uid, [invid], manu = CAST(MAX(CAST([manu] as int)) as bit)
|
||||
from bs1
|
||||
WHERE @idlistempty = 1 OR bs1.[invid] in (SELECT [id] FROM @invoice_idlist)
|
||||
GROUP BY banking_uid, [invid]
|
||||
)
|
||||
INSERT INTO @bankingtransactions
|
||||
SELECT
|
||||
bt.[uid]
|
||||
,[AccountIdentification]
|
||||
, bt.[ValueDate]
|
||||
, [Amount]
|
||||
,bt.AccountNumberOfPayer
|
||||
,bt.NameOfPayer
|
||||
,bt.SepaRemittanceInformation
|
||||
,bt.EndToEndReference
|
||||
,[manu]
|
||||
,[invid]
|
||||
,[done_manually] = IIF(ISNULL(bs2.[done_manually],'') <> '', 1,0)
|
||||
,[fds] = IIF(mi.id is null, 1, 0)
|
||||
FROM bt
|
||||
JOIN bs ON bt.[uid] = bs.[banking_uid]
|
||||
LEFT JOIN [dbo].[fds__bankingtransactions_settings] as bs2 ON bt.[uid] = bs2.[banking_uid]
|
||||
LEFT JOIN [dbo].[fds__invoices] as fi on bs.[invid] = fi.[id] AND fi.[DateFinalized] BETWEEN @invoice_startdate AND @invoice_enddate
|
||||
LEFT JOIN [dbo].[mfr__invoices] as mi on try_cast(bs.[invid] as bigint) = mi.[id] AND mi.[DateOfCreation] BETWEEN @invoice_startdate AND @invoice_enddate;
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,26 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__fn_invoice_customerid]
|
||||
(
|
||||
@InvId varchar(15)
|
||||
)
|
||||
RETURNS bigint
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret bigint;
|
||||
|
||||
SELECT TOP(1) @ret = [customerid] FROM dbo.[fds__invoices] WHERE [id] = @InvId;
|
||||
|
||||
IF @ret is null
|
||||
SELECT TOP(1) @ret = [customerid] FROM (SELECT TOP(1) [invid] = p.[PartnerId], s.[CustomerId], cy.[supportmail], cy.[Name]
|
||||
FROM dbo.[mfr__*PartnerSet] as p
|
||||
JOIN [dbo].[mfr__servicerequests] as s on p.[EntityId] = s.[Id] AND p.[Property] = 'ServiceRequest:Invoices'
|
||||
JOIN [dbo].[mfr__companies] as cy on s.[CustomerId] = cy.id
|
||||
WHERE p.PartnerId = TRY_CAST(@invId as bigint))z;
|
||||
|
||||
RETURN @ret;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,48 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__fn_unpaidInvoices]
|
||||
(
|
||||
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
WITH inv as (
|
||||
SELECT [Id] = cast([id] as varchar(15))
|
||||
,[Invoiceid]
|
||||
,[DateFinalized]
|
||||
,[InvoiceBalance]
|
||||
,[DocumentName]
|
||||
,[file]
|
||||
,[InvoiceTitle]
|
||||
,[customerid]
|
||||
,[dateSent]
|
||||
,[fds] = CAST(1 as bit)
|
||||
FROM [dbo].[fds__invoices] as iv
|
||||
WHERE [isfinal] = 1 and CAST(CASE WHEN ISNULL(iv.[IsCanceled],0) = 1 THEN 1 ELSE ISNULL([IsPayed],0) END as bit) = 0
|
||||
and InvoiceBalance > 0
|
||||
UNION
|
||||
SELECT [Id] = cast([id] as varchar(15))
|
||||
,[Invoiceid]
|
||||
,[DateFinalized] = [DateOfCreation]
|
||||
,[InvoiceBalance]
|
||||
,[DocumentName]
|
||||
,[file] = NULL
|
||||
,[InvoiceTitle] = ''
|
||||
,[customerid] = [dbo].[fds__fn_invoice_customerid](mfri.[id])
|
||||
,[datesent] = NULL
|
||||
,[fds] = CAST(0 as bit)
|
||||
FROM [dbo].[mfr__invoices] as mfri
|
||||
LEFT JOIN [dbo].[fds__custom_invoiceinfo] as ivi on mfri.[id] = ivi.[invid]
|
||||
WHERE [invoicestate] in ('eIsSent','eIsOpen')
|
||||
AND ISNULL(ivi.isPayed,0) = 0
|
||||
AND not [invoiceId] like 'preview'
|
||||
and InvoiceBalance > 0
|
||||
)
|
||||
SELECT * /*[Rechnung] = [invoiceId], [Name] = [InvoiceTitle] + CHAR(10) + ' (' + (SELECT TOP(1) c.[name] FROM [dbo].[mfr__companies] as c WHERE inv.[customerid] = c.[id]) + ')', [Betrag (net)] = FORMAT([invoicebalance], '#0.00€', 'de'), [Datum] = FORMAT([DateFinalized], 'dd.MM.yy' , 'de'), [Zahlungen] = FORMAT([dbo].[fds__fn_InvoicePaymentAmount]([id]), '#0.00€', 'de'), [order] = ROW_NUMBER() OVER (ORDER BY [DateFinalized], [DateSent]) */
|
||||
FROM inv
|
||||
)
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__getInvoiceTreeIds]
|
||||
(
|
||||
@invid varchar(20)
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
with mfr_inv as (
|
||||
SELECT [type] = 'invoice', [id] = [id] FROM [dbo].[mfr__invoices] as _mfri where _mfri.[id] = TRY_CAST(@invid as bigint)
|
||||
), mfr_srq as (
|
||||
SELECT DISTINCT [type] = 'servicerequest', [id] = mfrs.[id] FROM mfr_inv
|
||||
JOIN [dbo].[mfr__*PartnerSet] as ps on Property = 'Invoice:SourceServiceRequest' and ps.EntityId = mfr_inv.[id]
|
||||
JOIN [dbo].[mfr__servicerequests] as mfrs on ps.[PartnerId] = mfrs.id
|
||||
), fds_srq as (
|
||||
SELECT distinct [type] = 'servicerequest', [id] = mfrs.[id]
|
||||
FROM [dbo].[fds__invoices] as _fi
|
||||
JOIN [dbo].[fds__invoice_servicerequests] as _fs on _fi.Id = _fs.[InvId] and _fs.[mfr__servicerequest] is not null
|
||||
JOIN [dbo].[mfr__servicerequests] as mfrs on _fs.[mfr__servicerequest] = mfrs.id
|
||||
WHERE _fi.[Id] = @invid
|
||||
)
|
||||
SELECT * FROM mfr_inv
|
||||
union
|
||||
SELECT * FROM mfr_srq
|
||||
union
|
||||
SELECT * FROM fds_srq
|
||||
)
|
||||
@@ -0,0 +1,42 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[backup__fds__r_getBalanceThisMonth](
|
||||
@authuser varchar(100)
|
||||
)
|
||||
RETURNS varchar(25)
|
||||
BEGIN
|
||||
DECLARE @today date = GETDATE();
|
||||
DECLARE @tomorrow date = DATEADD(DAY,1,@today);
|
||||
DECLARE @thismonthfirst date = [dbo].[date_monthfirst](@today);
|
||||
DECLARE @ret varchar(25) = ''
|
||||
|
||||
IF [dbo].[fis_getModuleAuth]('fds_reports', @authuser) < 2
|
||||
SET @ret = '';
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
WITH inv as (
|
||||
SELECT
|
||||
i.[Dateofcreation]
|
||||
,i.[InvoiceBalance]
|
||||
,i.[InvoiceBalanceNetto]
|
||||
FROM [dbo].[mfr__invoices] as i
|
||||
where --i.[invoicestate] in('eIsSent','eIsPaid','eIsOpen') and
|
||||
i.[FileType] in( 'PdfInvoice','PdfCancelInvoice','PdfPartialInvoice') and ISNULL(InvoiceId,'') not in ('Preview','')
|
||||
AND [dbo].[date_monthfirst](i.[Dateofcreation]) = @thismonthfirst
|
||||
UNION
|
||||
SELECT
|
||||
[Dateofcreation] = i.[DateFinalized]
|
||||
,i.[InvoiceBalance]
|
||||
,[InvoiceBalanceNetto] = i.[InvoiceBalance_net]
|
||||
FROM [dbo].[fds__invoices] as i
|
||||
WHERE i.[isFinal] = 1 AND [dbo].[date_monthfirst](i.[DateFinalized]) = @thismonthfirst
|
||||
)
|
||||
SELECT TOP(1) @ret = FORMAT( SUM( ISNULL(inv.[InvoiceBalanceNetto],0) ) * 0.001, '#,0 k€', 'de') FROM inv;
|
||||
END
|
||||
|
||||
RETURN @ret;
|
||||
END
|
||||
@@ -0,0 +1,22 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[bo_val]
|
||||
(
|
||||
@price numeric(10,3)
|
||||
,@quantityhours numeric(10,3)
|
||||
,@discount numeric(10,3)
|
||||
,@VAT numeric(10,3)
|
||||
)
|
||||
RETURNS numeric(10,2)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Ret numeric(10,2)
|
||||
|
||||
SET @RET = [dbo].[net_val](@price, @quantityhours, @discount) * (1 + (ISNULL(@vat, 19.0) * 0.01));
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,58 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_add]
|
||||
(
|
||||
@date date
|
||||
,@addition varchar(10)
|
||||
,@shift_to_first bit = 1
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Ret date = @date;
|
||||
SET @addition = LOWER(ISNULL(@addition,''));
|
||||
DECLARE @negative bit = 0;
|
||||
IF LEFT(@addition,1) = '-'
|
||||
BEGIN
|
||||
SET @negative = 1;
|
||||
SET @addition = REPLACE(@addition, '-', '');
|
||||
END
|
||||
|
||||
IF @addition like '[1-9]%[dwmqy]'
|
||||
BEGIN
|
||||
DECLARE @num int = TRY_CONVERT(int, LEFT(@addition, patindex('%[^0-9]%', @addition) - 1)) * IIF(@negative = 1, -1, 1), @unit varchar(2) = LOWER(RIGHT(@addition, LEN(@addition) - patindex('%[^0-9]%', @addition) + 1)) ;
|
||||
if @num is not null
|
||||
BEGIN
|
||||
|
||||
SET @ret = CASE WHEN ISNULL(@shift_to_first,1) = 1 THEN
|
||||
CASE
|
||||
WHEN @unit = 'y' THEN DATEADD(YEAR, @num - 1, dbo.date_nextFirst(@date, 'y'))
|
||||
WHEN @unit = 'q' THEN DATEADD(QUARTER, @num - 1, dbo.date_nextFirst(@date, 'q'))
|
||||
WHEN @unit = 'm' THEN DATEADD(Month, @num - 1, dbo.date_nextFirst(@date, 'm'))
|
||||
WHEN @unit = 'w' THEN DATEADD(WEEK, @num - 1, dbo.date_nextFirst(@date, 'w'))
|
||||
WHEN @unit = 'd' THEN DATEADD(DAY, @num - 1, dbo.date_nextFirst(@date, 'd'))
|
||||
WHEN @unit in ('bd','wd') THEN [dbo].[AddBusinessDays](@date, @num)
|
||||
ELSE @date
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN @unit = 'y' THEN DATEADD(YEAR, @num, @date)
|
||||
WHEN @unit = 'q' THEN DATEADD(QUARTER, @num, @date)
|
||||
WHEN @unit = 'm' THEN DATEADD(Month, @num, @date)
|
||||
WHEN @unit = 'w' THEN DATEADD(WEEK, @num, @date)
|
||||
WHEN @unit = 'd' THEN DATEADD(DAY, @num, @date)
|
||||
WHEN @unit in ('bd','wd') THEN [dbo].[AddBusinessDays](@date, @num)
|
||||
ELSE @date
|
||||
END
|
||||
END;
|
||||
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
RETURN @ret;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,27 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_addcustom]
|
||||
(
|
||||
@date date
|
||||
,@phrase varchar(10)
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @returndate date, @numpart integer = TRY_PARSE(left(@phrase, patindex('%[^0-9]%', @phrase + '.') - 1) as integer), @defpart varchar(10) = LOWER(RIGHT(@phrase, LEN(@phrase) - patindex('%[^0-9]%', @phrase + '.') + 1));
|
||||
|
||||
SET @returndate = CASE WHEN @numpart is null then null
|
||||
WHEN @defpart = 'wd' THEN [dbo].[AddBusinessDays](@date, @numpart)
|
||||
WHEN @defpart = 'd' THEN DATEADD(DAY, @numpart, @date)
|
||||
WHEN @defpart = 'y' THEN DATEADD(YEAR, @numpart, @date)
|
||||
WHEN @defpart = 'm' THEN DATEADD(Month, @numpart, @date)
|
||||
WHEN @defpart = 'wk' THEN DATEADD(WEEK, @numpart, @date)
|
||||
ELSE @date
|
||||
END;
|
||||
|
||||
RETURN @returndate;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_monthend]
|
||||
(
|
||||
@date date
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @monthend date = CASE WHEN @date is null THEN NULL ELSE DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(@date), MONTH(@date),1))) END;
|
||||
|
||||
return @monthend;
|
||||
END
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_monthfirst]
|
||||
(
|
||||
@date date
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @monthfirst date = CASE WHEN @date is null THEN NULL ELSE DATEFROMPARTS(YEAR(@date), MONTH(@date), 1) END;
|
||||
|
||||
return @monthfirst;
|
||||
END
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_nextFirst]
|
||||
(
|
||||
@date date
|
||||
,@unit varchar(1)
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret date;
|
||||
SET @unit = LOWER(ISNULL(@unit, ''));
|
||||
|
||||
SET @ret = CASE
|
||||
WHEN @unit = 'y' THEN DATEADD(YEAR, 1, DATEFROMPARTS(YEAR(@date), 1,1))
|
||||
WHEN @unit = 'q' THEN DATEADD(MONTH, 4 - Month(@date) % 3, DATEFROMPARTS(YEAR(@date),MONTH(@date),1))
|
||||
WHEN @unit = 'm' THEN DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(@date), MONTH(@date),1))
|
||||
WHEN @unit = 'w' THEN DATEADD(WEEK, 1, [dbo].[date_weekfirst](@date))
|
||||
WHEN @unit = 'd' THEN DATEADD(DAY, 1, @date)
|
||||
ELSE NULL
|
||||
END;
|
||||
|
||||
RETURN @ret
|
||||
|
||||
END
|
||||
@@ -0,0 +1,17 @@
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: 31.01.2013
|
||||
-- Description: first day of week
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_weekend]
|
||||
(
|
||||
@TargetDate date
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @Corretor smallint = -((@@DATEFIRST % 7) - 1);
|
||||
DECLARE @ret date = CASE WHEN @TargetDate is null THEN null ELSE dateadd(d ,-((datepart(weekday,@TargetDate) - 1 - @Corretor)%7), @TargetDate) END;
|
||||
return DATEADD(DAY, 6, @ret);
|
||||
END
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: 31.01.2013
|
||||
-- Description: first day of week
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[date_weekfirst]
|
||||
(
|
||||
@TargetDate date
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @Corretor smallint = -((@@DATEFIRST % 7) - 1);
|
||||
DECLARE @ret date = CASE WHEN @TargetDate is null THEN null ELSE dateadd(d ,-((datepart(weekday,@TargetDate) - 1 - @Corretor)%7), @TargetDate) END;
|
||||
return @ret;
|
||||
END
|
||||
@@ -0,0 +1,18 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__admin_reminderSettings]
|
||||
(
|
||||
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
WITH rs as ( SELECT * FROM [dbo].[fds__admin_settings] WHERE [type] = 'reminder' )
|
||||
SELECT [stage1] = (SELECT TOP(1) [value] FROM rs WHERE [key] = 1)
|
||||
, [stage2] = (SELECT TOP(1) [value] FROM rs WHERE [key] = 2)
|
||||
, [stage3] = (SELECT TOP(1) [value] FROM rs WHERE [key] = 3)
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_DocumentName]
|
||||
(
|
||||
@InvoiceId varchar(10)
|
||||
, @InvoiceType char(1)
|
||||
, @InvoiceTitle varchar(100)
|
||||
, @DateFinalized datetime
|
||||
)
|
||||
RETURNS varchar(50)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @doc varchar(50);
|
||||
|
||||
SET @doc = CASE WHEN @DateFinalized is null THEN ''
|
||||
WHEN ISNULL(@InvoiceTitle,'') <> '' THEN @InvoiceTitle + ' ' + @InvoiceId
|
||||
WHEN @InvoiceType = 'a' THEN 'Abschlagsrechnung ' + @InvoiceId
|
||||
WHEN @InvoiceType = 'c' THEN 'Stornorechnung ' + @InvoiceId
|
||||
WHEN @InvoiceType = 'f' THEN 'Schlussrechnung ' + @InvoiceId
|
||||
ELSE 'Rechnung ' + @InvoiceId
|
||||
END;
|
||||
|
||||
RETURN @doc + '.pdf';
|
||||
|
||||
END
|
||||
@@ -0,0 +1,22 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_IntermediateIsAllocatedToOther]
|
||||
(
|
||||
@Intermediate_InvID varchar(10)
|
||||
,@Target_InvID varchar(10)
|
||||
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @IsA bit = CASE WHEN EXISTS (SELECT * FROM [dbo].[fds__invoices] as intermediates JOIN [dbo].[fds__invoice_details] as id on intermediates.[Id] = id.[InvId] and id.[AllocatedTo_InvId] is not null
|
||||
JOIN [dbo].[fds__invoices] as non_intermediates ON id.[AllocatedTo_InvId] = non_intermediates.[Id] and id.[AllocatedTo_InvId] is not null
|
||||
WHERE intermediates.[Id] = @Intermediate_InvID and (@Target_InvID is null or non_intermediates.[Id] <> @Target_InvID))
|
||||
THEN 1 ELSE 0 END;
|
||||
|
||||
RETURN @isA;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,30 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_InvoiceIDs_mfr]
|
||||
(
|
||||
@invoiceid varchar(255),
|
||||
@other varchar(1000)
|
||||
)
|
||||
RETURNS varchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET varchar(1000) = REPLACE(LTRIM(ISNULL(@invoiceid,'')),'Preview','');
|
||||
|
||||
IF @RET <> ''
|
||||
SET @RET = TRIM(REPLACE(@RET, ' ', ' '));
|
||||
|
||||
IF @RET <> ''
|
||||
SET @RET = REPLACE(@RET, ' ',' (mfr)' + CHAR(10)) + ' (mfr)';
|
||||
|
||||
IF @RET <> '' AND ISNULL(@other, '') <> ''
|
||||
SET @RET = @RET + CHAR(10);
|
||||
|
||||
SET @RET = @RET + ISNULL(@other, '');
|
||||
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,21 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_InvoiceIdByName]
|
||||
(
|
||||
@nme varchar(255)
|
||||
)
|
||||
RETURNS varchar(20)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Id varchar(20);
|
||||
|
||||
SET @nme = TRIM((SELECT TOP(1) [value] FROM string_split(@nme, '(')));
|
||||
|
||||
SET @Id = ISNULL((SELECT TOP(1) [Id] FROM [dbo].[fds__invoices] WHERE [InvoiceId] = @nme),'');
|
||||
|
||||
RETURN @id;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,30 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_InvoicePaymentAmount]
|
||||
(
|
||||
@InvID varchar(15)
|
||||
)
|
||||
RETURNS numeric(9,2)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES numeric(9,2);
|
||||
DECLARE @invoice_idlist [dbo].[fds__tt__idlist_vchar];
|
||||
INSERT INTO @invoice_idlist VALUES(@invid);
|
||||
|
||||
With bs as (
|
||||
SELECT * FROM [dbo].[fds__fn_bankingtransactions](null,null, null, null,@invoice_idlist)
|
||||
), b as (
|
||||
SELECT
|
||||
[InvID] = @InvID
|
||||
,[amount] = SUM(ISNULL(bs.[amount], 0.0))
|
||||
FROM bs
|
||||
WHERE bs.[invid] = @InvID
|
||||
)
|
||||
SELECT TOP(1) @RES = [amount] FROM b;
|
||||
|
||||
RETURN ISNULL(@RES, 0.0);
|
||||
|
||||
END
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_InvoicePaymentAmount_full]
|
||||
(
|
||||
@InvID varchar(15)
|
||||
)
|
||||
RETURNS numeric(9,2)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES numeric(9,2);
|
||||
DECLARE @invoice_idlist [dbo].[fds__tt__idlist_vchar];
|
||||
INSERT INTO @invoice_idlist VALUES(@invid);
|
||||
|
||||
With bs as (
|
||||
SELECT * FROM [dbo].[fds__fn_bankingtransactions](null,null, null, null,@invoice_idlist)
|
||||
), ci as(
|
||||
SELECT [InvId] = d.[StornoTo_InvId], [amount] = ISNULL(i.[InvoiceBalance],0.0) * -1 FROM [dbo].[fds__invoices] as i JOIN [dbo].[fds__invoice_details] as d on i.[Id] = d.[InvId] where d.[StornoTo_InvId] = @InvID AND i.[IsFinal] = 1
|
||||
), tp as (
|
||||
SELECT [InvId], [amount] from bs where [invid] = @InvID
|
||||
union
|
||||
SELECT [InvId], [amount] from ci
|
||||
), b as (
|
||||
SELECT
|
||||
[InvID] = @InvID
|
||||
,[amount] = SUM(ISNULL(tp.[amount], 0.0))
|
||||
FROM tp
|
||||
WHERE tp.[invid] = @InvID
|
||||
)
|
||||
SELECT TOP(1) @RES = [amount] FROM b;
|
||||
|
||||
RETURN ISNULL(@RES, 0.0);
|
||||
|
||||
END
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_ReminderDocumentName]
|
||||
(
|
||||
@ReminderType char(1)
|
||||
, @ReminderTitle varchar(100)
|
||||
, @DateFinalized datetime
|
||||
, @InvoiceId varchar(10)
|
||||
|
||||
)
|
||||
RETURNS varchar(50)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @doc varchar(50);
|
||||
|
||||
SET @doc = CASE WHEN @DateFinalized is null THEN ''
|
||||
WHEN ISNULL(@ReminderTitle,'') <> '' THEN @ReminderTitle
|
||||
WHEN @ReminderType = 'f' THEN 'Zahlungserinnerung ' + @InvoiceId
|
||||
WHEN @ReminderType = 'c' THEN 'Mahnung ' + @InvoiceId
|
||||
WHEN @ReminderType = 'f' THEN 'Mahnung ' + @InvoiceId
|
||||
ELSE 'Zahlungserinnerung ' + @InvoiceId
|
||||
END;
|
||||
|
||||
RETURN @doc + '.pdf';
|
||||
|
||||
END
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fds__fn_bankingtransaction_id] (
|
||||
)
|
||||
RETURNS varchar(10)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewAccount varchar(7) = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
|
||||
WHILE EXISTS( SELECT * FROM [dbo].[fds__bankingtransactions] WITH (SERIALIZABLE) WHERE [taID] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
END
|
||||
|
||||
RETURN @NewAccount;
|
||||
END;
|
||||
@@ -0,0 +1,88 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_bankingtransactions]
|
||||
(
|
||||
@startdate date = NULL
|
||||
,@enddate date = NULL
|
||||
,@invoice_startdate date = NULL
|
||||
,@invoice_enddate date = NULL
|
||||
,@invoice_idlist [dbo].[fds__tt__idlist_vchar] READONLY
|
||||
)
|
||||
RETURNS @bankingtransactions TABLE
|
||||
(
|
||||
[taID] varchar(10)
|
||||
,[AccountIdentification] varchar(50)
|
||||
,[ValueDate] date
|
||||
,[Amount] numeric(9,2)
|
||||
,[AccountNumberOfPayer] varchar(30)
|
||||
,[NameOfPayer] nvarchar(60)
|
||||
,[SepaRemittanceInformation] varchar(150)
|
||||
,[EndToEndReference] varchar(50)
|
||||
,[manu] bit
|
||||
,[InvId] varchar(15)
|
||||
,[done_manually] bit
|
||||
,[fds] bit
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- Fill the table variable with the rows for your result set
|
||||
DECLARE @firstever date = '1900-01-01', @tomorrow date = DATEADD(dAy, 1, GETDATE());
|
||||
SELECT @invoice_startdate = ISNULL(@invoice_startdate, @firstever), @invoice_enddate = ISNULL(@invoice_enddate, @tomorrow);
|
||||
DECLARE @idlistempty bit = IIF(EXISTS (SELECT 0 FROM @invoice_idlist) ,0,1);
|
||||
|
||||
with bt as (
|
||||
SELECT [taID],[AccountIdentification],[ValueDate],[Amount],AccountNumberOfPayer,NameOfPayer, SepaRemittanceInformation, EndToEndReference
|
||||
FROM [dbo].[fds__bankingtransactions] as bt_
|
||||
where (@startdate is null OR bt_.ValueDate >= @startdate)
|
||||
AND (@enddate is null or bt_.ValueDate <= @enddate)
|
||||
AND (bt_.[DebitCreditMark] in ('C')
|
||||
AND NOT (ISNULL(bt_.[AccountNumberOfPayer],'') IN ('DE52301502000002091478') AND ISNULL(bt_.[SepaRemittanceInformation],'') like ('%umbuchung%'))
|
||||
AND NOT (ISNULL(bt_.[AccountNumberOfPayer],'') IN ('DE23501108006161606386') AND ISNULL(bt_.[SepaRemittanceInformation],'') like ('%ebay%'))
|
||||
AND NOT (ISNULL(bt_.[SepaRemittanceInformation],'') like ('%Umsatzsteuer%'))
|
||||
AND ISNULL(bt_.AccountNumberOfPayer,'') <> ''
|
||||
)
|
||||
), bs0manu as (
|
||||
SELECT bs.[taID], [invid] = spl.[value], [manu] = cast(1 as bit)
|
||||
FROM [dbo].[fds__bankingtransactions_settings] as bs
|
||||
CROSS APPLY STRING_SPLIT(bs.assigned_invoice_id, ',') as spl
|
||||
JOIN bt on bt.[taID] = bs.[taID]
|
||||
WHERE bs.assigned_invoice_id is not null
|
||||
), bs1 as (
|
||||
SELECT * FROM bs0manu
|
||||
UNION
|
||||
SELECT bs.[taID], [invid] = spl.[value], [manu] = cast(0 as bit)
|
||||
FROM [dbo].[fds__bankingtransactions_settings] as bs
|
||||
CROSS APPLY STRING_SPLIT(bs.auto_invoice_id, ',') as spl
|
||||
JOIN bt on bt.[taID] = bs.[taID]
|
||||
WHERE bs.auto_invoice_id is not null
|
||||
and bt.[taID] NOT IN (SELECT [taID] FROM bs0manu)
|
||||
), bs as (
|
||||
SELECT [taID], [invid], manu = CAST(MAX(CAST([manu] as int)) as bit)
|
||||
from bs1
|
||||
WHERE @idlistempty = 1 OR bs1.[invid] in (SELECT [id] FROM @invoice_idlist)
|
||||
GROUP BY [taID], [invid]
|
||||
)
|
||||
INSERT INTO @bankingtransactions
|
||||
SELECT
|
||||
bt.[taID]
|
||||
,[AccountIdentification]
|
||||
, bt.[ValueDate]
|
||||
, [Amount]
|
||||
,bt.AccountNumberOfPayer
|
||||
,bt.NameOfPayer
|
||||
,bt.SepaRemittanceInformation
|
||||
,bt.EndToEndReference
|
||||
,[manu]
|
||||
,[invid]
|
||||
,[done_manually] = IIF(ISNULL(bs2.[done_manually],'') <> '', 1,0)
|
||||
,[fds] = IIF(fi.isExternal = 0, 1, 0)
|
||||
FROM bt
|
||||
JOIN bs ON bt.[taID] = bs.[taID]
|
||||
LEFT JOIN [dbo].[fds__bankingtransactions_settings] as bs2 ON bt.[taID] = bs2.[taID]
|
||||
LEFT JOIN [dbo].[fds__invoices] as fi on bs.[invid] = fi.[id] AND fi.[DateFinalized] BETWEEN @invoice_startdate AND @invoice_enddate
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_bankingtransactions_perInvoice]
|
||||
(
|
||||
@startdate date = NULL
|
||||
,@enddate date = NULL
|
||||
)
|
||||
RETURNS @bankingtransactions TABLE
|
||||
(
|
||||
|
||||
[InvId] varchar(15)
|
||||
,[Amount] numeric(9,2)
|
||||
,[manu] bit
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- Fill the table variable with the rows for your result set
|
||||
|
||||
DECLARE @invoice_idlist [dbo].[fds__tt__idlist_vchar];
|
||||
|
||||
INSERT INTO @bankingtransactions
|
||||
SELECT
|
||||
[invid]
|
||||
, [amount] = SUM(ISNULL([amount], 0.0))
|
||||
, [manu] = CAST(MAX(ISNULL(CAST([manu] as int),0)) as bit)
|
||||
FROM dbo.fds__fn_bankingtransactions(null, null, @startdate, @enddate, @invoice_idlist) -- start and enddates will filter by invoice date and not by banking transactions' value dates
|
||||
GROUP BY [invid];
|
||||
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,27 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_combineAddress]
|
||||
(
|
||||
@AddressString nvarchar(255)
|
||||
,@AddressString2 nvarchar(255)
|
||||
,@AddressString3 nvarchar(255)
|
||||
,@Postal nvarchar(255)
|
||||
,@City nvarchar(255)
|
||||
,@State nvarchar(255)
|
||||
,@Country nvarchar(255)
|
||||
)
|
||||
RETURNS nvarchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @address nvarchar(1000) = STUFF( (SELECT (CHAR(10) + [t]) as [text()] FROM
|
||||
(SELECT * FROM (VALUES(@AddressString), (@AddressString2), (@AddressString3), (LTRIM(RTRIM(ISNULL(@postal, '') + ' ' + ISNULL(@city, '')))), (@state), (@country)) z ([t]) WHERE ISNULL([t], '') <> '')y
|
||||
FOR XML PATH
|
||||
, TYPE).value('.[1]','nvarchar(1000)')
|
||||
, 1, 1, '');
|
||||
|
||||
RETURN @address;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,19 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_creanupTransactionInfo]
|
||||
(
|
||||
@info varchar(255)
|
||||
)
|
||||
RETURNS varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET varchar(255);
|
||||
|
||||
SET @RET = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@info, 'R ', 'R'), 'Rg', 'R'), '2 0', '20'), CHAR(10),''), CHAR(13), ''), '/', ' ')
|
||||
|
||||
RETURN ISNULL(@RET, '');
|
||||
|
||||
END
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fds__fn_invoice-srq_id] (
|
||||
)
|
||||
RETURNS varchar(10)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewID varchar(7) = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
|
||||
WHILE EXISTS( SELECT * FROM [dbo].[fds__invoice_servicerequests] WITH (SERIALIZABLE) WHERE [id] = @NewID)
|
||||
BEGIN
|
||||
SET @NewID = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
END
|
||||
|
||||
RETURN @NewID;
|
||||
END;
|
||||
@@ -0,0 +1,19 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_invoice_customerid]
|
||||
(
|
||||
@InvId varchar(15)
|
||||
)
|
||||
RETURNS bigint
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret bigint;
|
||||
|
||||
SELECT TOP(1) @ret = [customerid] FROM dbo.[fds__invoices] WHERE [id] = @InvId;
|
||||
|
||||
RETURN @ret;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fds__fn_invoice_id] (
|
||||
)
|
||||
RETURNS varchar(10)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewAccount varchar(5) = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
|
||||
WHILE EXISTS( SELECT * FROM [dbo].[fds__invoices] WITH (SERIALIZABLE) WHERE [id] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
END
|
||||
|
||||
RETURN @NewAccount;
|
||||
END;
|
||||
@@ -0,0 +1,28 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_isInvoiceCancelled]
|
||||
(
|
||||
@InvId varchar(20)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @res bit;
|
||||
|
||||
--SET @res = CASE WHEN EXISTS (SELECT 0 FROM [dbo].[fds__invoices] as i2 JOIN [dbo].[fds__invoice_details] as id2 ON i2.[id] = id2.[InvId] where id2.[StornoTo_InvId] = @invId AND i2.[IsFinal] = 1 ) THEN 1 ELSE 0 END;
|
||||
|
||||
with storno as(
|
||||
SELECT [amount] = SUM(ISNULL(ORIG.[invoicebalance],0.0)), [stornoamount] = SUM(ISNULL(i2.[invoicebalance],0.0) * -1.0)
|
||||
FROM [dbo].[fds__invoices] as ORIG
|
||||
LEFT JOIN [dbo].[fds__invoice_details] as id2 ON id2.StornoTo_InvId = ORIG.[id] and id2.StornoTo_InvId = @invId
|
||||
LEFT JOIN [dbo].[fds__invoices] as i2 on i2.[id] = id2.[InvId] AND i2.[IsFinal] = 1
|
||||
WHERE ORIG.[Id] = @invId
|
||||
)
|
||||
SELECT @res = CASE WHEN [amount] = [stornoamount] THEN 1 ELSE 0 END from storno;
|
||||
|
||||
RETURN cast(ISNULL(@res,0) as bit);
|
||||
|
||||
END
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fds__fn_reminder_id] (
|
||||
)
|
||||
RETURNS varchar(8)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewAccount varchar(5) = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
|
||||
WHILE EXISTS( SELECT * FROM [dbo].[fds__reminder] WHERE [id] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (8,0,1,0);
|
||||
END
|
||||
|
||||
RETURN @NewAccount;
|
||||
END;
|
||||
@@ -0,0 +1,26 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_requestsforinvoice]
|
||||
(
|
||||
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
SELECT
|
||||
[Id]
|
||||
,sreq.[ExternalId]
|
||||
,sreq.[Name]
|
||||
,sreq.[workdoneat]
|
||||
,sreq.[ReleasedAt]
|
||||
,sreq.[CustomerId]
|
||||
FROM [dbo].[mfr__servicerequests] as sreq
|
||||
WHERE [state] not in ('Closed')
|
||||
AND [type] in ('IsProject', 'IsMaintenance')
|
||||
AND EXISTS (SELECT 0 FROM dbo.[mfr__*PartnerSet] as ps WHERE ps.[Property] = 'ServiceRequest:Tags' and ps.[PartnerId] = '16034758659' and sreq.[id] = ps.[EntityId])
|
||||
AND NOT EXISTS( SELECT 0 FROM [dbo].[fds__invoice_servicerequests] as isr join [dbo].[fds__invoices] as inv on isr.[InvId] = inv.[id] and isr.[mfr__servicerequest] = sreq.[id])
|
||||
)
|
||||
@@ -0,0 +1,33 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_unpaidInvoices]
|
||||
(
|
||||
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
WITH inv as (
|
||||
SELECT [Id]
|
||||
,[Invoiceid]
|
||||
,[DateFinalized]
|
||||
,[InvoiceBalance]
|
||||
,[DocumentName]
|
||||
--,[file]
|
||||
,[InvoiceTitle]
|
||||
,[customerid]
|
||||
,[dateSent]
|
||||
,[fds] = CAST(IIF(iv.isexternal = 0,1,0) as bit)
|
||||
FROM [dbo].[fds__invoices] as iv
|
||||
WHERE [isfinal] = 1
|
||||
and CAST(CASE WHEN ISNULL(iv.[IsCanceled],0) = 1 THEN 1 ELSE ISNULL([IsPayed],0) END as bit) = 0
|
||||
and InvoiceBalance > 0
|
||||
AND NOT exists (SELECT 0 FROM [dbo].[fds__invoice_details] as d where d.[StornoTo_InvId] = iv.[id])
|
||||
)
|
||||
SELECT * /*[Rechnung] = [invoiceId], [Name] = [InvoiceTitle] + CHAR(10) + ' (' + (SELECT TOP(1) c.[name] FROM [dbo].[mfr__companies] as c WHERE inv.[customerid] = c.[id]) + ')', [Betrag (net)] = FORMAT([invoicebalance], '#0.00€', 'de'), [Datum] = FORMAT([DateFinalized], 'dd.MM.yy' , 'de'), [Zahlungen] = FORMAT([dbo].[fds__fn_InvoicePaymentAmount]([id]), '#0.00€', 'de'), [order] = ROW_NUMBER() OVER (ORDER BY [DateFinalized], [DateSent]) */
|
||||
FROM inv
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__fn_vatfrombalances]
|
||||
(
|
||||
@brutto numeric(10,3)
|
||||
,@netto numeric(10,3)
|
||||
)
|
||||
RETURNS numeric(5,2)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @vat numeric(5,2) = CASE WHEN ISNULL(@netto, 0) > 0 and ISNULL(@brutto, 0) > 0 THEN ROUND(( (@brutto / @netto) -1) * 100, 2) ELSE NULL END
|
||||
|
||||
RETURN @vat;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,36 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanyAddress]
|
||||
(
|
||||
@companyid bigint
|
||||
)
|
||||
RETURNS nvarchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @locationid bigint, @address nvarchar(1000);
|
||||
|
||||
SELECT TOP(1) @locationid = cy.[Location#ID] from [dbo].[mfr__companies] as cy WHERE cy.id = @companyid;
|
||||
|
||||
IF @locationid is null
|
||||
SELECT TOP(1) @locationid = l.[ID], @address = [dbo].[fds__fn_combineAddress] (l.[AddressString], null, null
|
||||
,l.[Postal]
|
||||
,l.[City]
|
||||
,l.[State]
|
||||
,l.[Country]) FROM [mfr__#locations] as l JOIN [dbo].[mfr__companies] as cy on l.[Property] = 'Company:Location' AND l.[EntityId] = cy.[Id] WHERE cy.[id] = @companyid;
|
||||
|
||||
-- Return the result of the function
|
||||
|
||||
IF @address is null
|
||||
SELECT TOP(1) @address = [dbo].[fds__fn_combineAddress] (loc.[AddressString], null, null
|
||||
,loc.[Postal]
|
||||
,loc.[City]
|
||||
,loc.[State]
|
||||
,loc.[Country])
|
||||
FROM [dbo].[mfr__#locations] as loc WHERE [id] = @locationid;
|
||||
|
||||
RETURN @address;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,31 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanyContacts]
|
||||
(
|
||||
@companyid bigint
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
WITH ps as (
|
||||
SELECT [contactid] = p.[EntityId] from [mfr__*PartnerSet] as p WHERE p.property = 'Contact:Company' and p.[partnerId] = @companyid
|
||||
UNION
|
||||
SELECT [contactid] = p.[PartnerId] from [mfr__*PartnerSet] as p WHERE p.property = 'Company:Contacts' and p.[EntityId] = @companyid
|
||||
)
|
||||
SELECT ct.*
|
||||
,[isMainContact] = CAST( CASE WHEN cy.[MainContactId] is null then 0 WHEN cy.[MainContactId] = ct.[id] THEN 1 ELSE 0 END as bit)
|
||||
FROM [dbo].[mfr__contacts] as ct
|
||||
JOIN [dbo].[mfr__companies] as cy ON ct.[CompanyId] = cy.[id]
|
||||
WHERE ct.CompanyId = @companyid
|
||||
UNION
|
||||
SELECT ct.*
|
||||
,[isMainContact] = CAST( CASE WHEN cy.[MainContactId] is null then 0 WHEN cy.[MainContactId] = ct.[id] THEN 1 ELSE 0 END as bit)
|
||||
FROM [dbo].[mfr__contacts] as ct
|
||||
JOIN ps ON ct.[id] = ps.[contactid]
|
||||
JOIN [dbo].[mfr__companies] as cy ON cy.[id] = @companyid
|
||||
|
||||
)
|
||||
@@ -0,0 +1,16 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanyEmail]
|
||||
(
|
||||
@companyid bigint
|
||||
)
|
||||
RETURNS varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @email varchar(255) = (SELECT [supportmail] FROM [dbo].[mfr__companies] as cy WHERE cy.[id] = @companyid);
|
||||
|
||||
RETURN @email;
|
||||
END
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanyName]
|
||||
(
|
||||
@companyid bigint
|
||||
)
|
||||
RETURNS nvarchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @name nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @name = cy.[name] FROM [dbo].[mfr__companies] as cy WHERE cy.id = @companyid;
|
||||
|
||||
RETURN @name;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,36 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanyNameAddress]
|
||||
(
|
||||
@companyid bigint
|
||||
)
|
||||
RETURNS nvarchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @locationid bigint, @address nvarchar(1000), @name nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @locationid = cy.[Location#ID], @name = cy.[name] FROM [dbo].[mfr__companies] as cy WHERE cy.id = @companyid;
|
||||
|
||||
IF @locationid is null
|
||||
SELECT TOP(1) @locationid = l.[ID], @address = [dbo].[fds__fn_combineAddress] (l.[AddressString], null, null
|
||||
,l.[Postal]
|
||||
,l.[City]
|
||||
,l.[State]
|
||||
,l.[Country]) FROM [mfr__#locations] as l JOIN [dbo].[mfr__companies] as cy on l.[Property] = 'Company:Location' AND l.[EntityId] = cy.[Id] WHERE cy.[id] = @companyid;
|
||||
|
||||
-- Return the result of the function
|
||||
|
||||
IF @address is null
|
||||
SELECT TOP(1) @address = [dbo].[fds__fn_combineAddress] (loc.[AddressString], null, null
|
||||
,loc.[Postal]
|
||||
,loc.[City]
|
||||
,loc.[State]
|
||||
,loc.[Country])
|
||||
FROM [dbo].[mfr__#locations] as loc WHERE [id] = @locationid;
|
||||
|
||||
RETURN @name + CHAR(10) + @address;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,36 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getCompanysContacts]
|
||||
(
|
||||
@companyids [dbo].[fds__tt__idlist] READONLY
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
WITH ps as (
|
||||
SELECT [companyid] = p.[partnerId], [contactid] = p.[EntityId] from [mfr__*PartnerSet] as p WHERE p.property = 'Contact:Company' and p.[partnerId] IN (SELECT [Id] FROM @companyids)
|
||||
UNION
|
||||
SELECT [companyid] = p.[PartnerId], [contactid] = p.[PartnerId] from [mfr__*PartnerSet] as p WHERE p.property = 'Company:Contacts' and p.[EntityId] = (SELECT [Id] FROM @companyids)
|
||||
)
|
||||
SELECT
|
||||
[CyId] = cyid.[Id]
|
||||
,ct.*
|
||||
,[isMainContact] = CAST( CASE WHEN cy.[MainContactId] is null then 0 WHEN cy.[MainContactId] = ct.[id] THEN 1 ELSE 0 END as bit)
|
||||
FROM [dbo].[mfr__contacts] as ct
|
||||
JOIN @companyids as cyid ON ct.[CompanyId] = cyid.[id]
|
||||
JOIN [dbo].[mfr__companies] as cy ON cyid.[id] = cy.[id]
|
||||
UNION
|
||||
SELECT
|
||||
[CyId] = cyid.[Id]
|
||||
,ct.*
|
||||
,[isMainContact] = CAST( CASE WHEN cy.[MainContactId] is null then 0 WHEN cy.[MainContactId] = ct.[id] THEN 1 ELSE 0 END as bit)
|
||||
FROM [dbo].[mfr__contacts] as ct
|
||||
JOIN ps ON ct.[id] = ps.[contactid]
|
||||
JOIN @companyids as cyid ON ps.[CompanyId] = cyid.[id]
|
||||
JOIN [dbo].[mfr__companies] as cy ON cyid.[id] = cy.[id]
|
||||
|
||||
)
|
||||
@@ -0,0 +1,129 @@
|
||||
|
||||
CREATE function [dbo].[fds__getInvoiceCredits]
|
||||
(
|
||||
@startdate date
|
||||
,@enddate date
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
with b0 as (
|
||||
SELECT [taID]
|
||||
--,[AccountIdentification]
|
||||
,[Amount]
|
||||
--,[EntryDate]
|
||||
,[FundsCode]
|
||||
,[AccountNumberOfPayer]
|
||||
,[BankCodeOfPayer]
|
||||
|
||||
,[EndToEndReference]
|
||||
--,[JournalNumber]
|
||||
,[NameOfPayer]
|
||||
|
||||
,'info' = [dbo].[fds__fn_creanupTransactionInfo]([SepaRemittanceInformation])
|
||||
,'e2e' = [dbo].[fds__fn_creanupTransactionInfo]([EndToEndReference])
|
||||
|
||||
--,[PayersReferenceParty]
|
||||
--,[PostingText]
|
||||
,[SepaRemittanceInformation]
|
||||
,[TextKeyAddition]
|
||||
,[TransactionCode]
|
||||
|
||||
,[DebitCreditMark]
|
||||
,[TransactionTypeIdCode]
|
||||
,[ValueDate]
|
||||
FROM [dbo].[fds__bankingtransactions]
|
||||
WHERE [DebitCreditMark] in ('C')
|
||||
AND (@startdate is null or CAST([valuedate] AS DATE) >= @startdate)
|
||||
AND (@enddate is null or CAST([valuedate] AS DATE) <= @enddate)
|
||||
AND NOT (ISNULL([AccountNumberOfPayer],'') IN ('DE52301502000002091478') AND ISNULL([SepaRemittanceInformation],'') like ('%umbuchung%'))
|
||||
AND NOT (ISNULL([AccountNumberOfPayer],'') IN ('DE23501108006161606386') AND ISNULL([SepaRemittanceInformation],'') like ('%ebay%'))
|
||||
AND NOT (ISNULL([SepaRemittanceInformation],'') like ('%Umsatzsteuer%'))
|
||||
)
|
||||
, b as (
|
||||
SELECT
|
||||
*
|
||||
,'exact' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',[info])
|
||||
,'exact2' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',REPLACE([info], ' ', ''))
|
||||
,'test1' = PATINDEX('%202[0-9]%',[info])
|
||||
,'E2E_exact' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',[e2e])
|
||||
,'E2E_exact2' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',REPLACE([e2e], ' ', ''))
|
||||
,'E2E_test1' = PATINDEX('%202[0-9]%',[e2e])
|
||||
from b0
|
||||
), b2 as (
|
||||
SELECT
|
||||
*
|
||||
,[info2] = REPLACE([info], ' ', '')
|
||||
,[info3] = CASE WHEN test1 > 0 THEN REPLACE(SUBSTRING([info], [test1] - 1, 10), ' ' , '-') ELSE '' END
|
||||
,[info4] = REPLACE(REPLACE([info], 'RE ', 'NO '), 'RE-NR. ', 'NO ')
|
||||
,[e2e_info2] = REPLACE([e2e], ' ', '')
|
||||
,[e2e_info3] = CASE WHEN [E2E_test1] > 0 THEN REPLACE(SUBSTRING([e2e], [E2E_test1] - 1, 10), ' ' , '-') ELSE '' END
|
||||
FROM b
|
||||
), c as (
|
||||
select
|
||||
*
|
||||
, 'lv' = CASE WHEN exact > 0 THEN 0
|
||||
WHEN exact2 > 0 THEN 1
|
||||
WHEN [test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 2
|
||||
WHEN [test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 3
|
||||
|
||||
WHEN [e2e_exact] > 0 THEN 10
|
||||
WHEN [e2e_exact2] > 0 THEN 11
|
||||
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 12
|
||||
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 13
|
||||
|
||||
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
THEN 21
|
||||
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
THEN 22
|
||||
ELSE 99 END
|
||||
, 'Rg' =
|
||||
CASe WHEN [exact] > 0 THEN REPLACE(SUBSTRING([info], [exact], 10), ' ' , '-')
|
||||
WHEN [exact2] > 0 THEN REPLACE(SUBSTRING([info2], [exact2], 10), ' ' , '-')
|
||||
WHEN [test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 'R' + SUBSTRING([info3], PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) ,9)
|
||||
WHEN [test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 'R' + SUBSTRING([info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) ,4) + '-' + + SUBSTRING([info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) +4 ,4)
|
||||
WHEN [e2e_exact] > 0 THEN REPLACE(SUBSTRING([e2e], [e2e_exact], 10), ' ' , '-')
|
||||
WHEN [e2e_exact2] > 0 THEN REPLACE(SUBSTRING([e2e_info2], [e2e_exact2], 10), ' ' , '-')
|
||||
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 'R' + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [e2e_info3]) ,9)
|
||||
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 'R' + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) ,4) + '-' + + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) +4 ,4)
|
||||
|
||||
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
THEN (SELECT TOP(1) [invoiceid] FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
THEN (SELECT TOP(1) [invoiceid] FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
|
||||
|
||||
|
||||
|
||||
ELSE NULL
|
||||
END
|
||||
from b2
|
||||
)
|
||||
SELECT
|
||||
[taID]
|
||||
, [InvoiceId] = UPPER([rg])
|
||||
, [info4]
|
||||
, [Amount]
|
||||
--,[EntryDate]
|
||||
, [FundsCode]
|
||||
, [AccountNumberOfPayer]
|
||||
, [BankCodeOfPayer]
|
||||
|
||||
, [EndToEndReference]
|
||||
--,[JournalNumber]
|
||||
, [NameOfPayer]
|
||||
|
||||
|
||||
--,[PayersReferenceParty]
|
||||
--,[PostingText]
|
||||
, [SepaRemittanceInformation]
|
||||
, [TextKeyAddition]
|
||||
, [TransactionCode]
|
||||
|
||||
, [DebitCreditMark]
|
||||
, [TransactionTypeIdCode]
|
||||
, [ValueDate]
|
||||
--,ASCII(LEFT(RIGHT([info], 2),1))
|
||||
FROM c
|
||||
--where lv >90--Rg is null
|
||||
)
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getInvoiceTreeIds]
|
||||
(
|
||||
@invid varchar(20)
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
with fds_srq as (
|
||||
SELECT distinct [type] = 'servicerequest', [id] = mfrs.[id]
|
||||
FROM [dbo].[fds__invoices] as _fi
|
||||
JOIN [dbo].[fds__invoice_servicerequests] as _fs on _fi.Id = _fs.[InvId] and _fs.[mfr__servicerequest] is not null
|
||||
JOIN [dbo].[mfr__servicerequests] as mfrs on _fs.[mfr__servicerequest] = mfrs.id
|
||||
WHERE _fi.[Id] = @invid
|
||||
)
|
||||
SELECT * FROM fds_srq
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getRequestTreeIds]
|
||||
(
|
||||
@srqid bigint
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
with sp as (
|
||||
SELECT DISTINCT [parentid] = CASE WHEN ISNULL([parentservicerequestid],0) = 0 THEN [id] ELSE [parentservicerequestid] END FROM [dbo].[mfr__servicerequests] as _s where _s.[Id] = @srqid OR _s.[ParentServiceRequestId] = @srqid
|
||||
)
|
||||
SELECT DISTINCT r.[Id] from [dbo].[mfr__servicerequests] as r JOIN sp on r.[Id] = sp.[parentid] OR r.[ParentServiceRequestId] = sp.[parentid] and ISNULL(sp.parentid,0) > 0
|
||||
)
|
||||
@@ -0,0 +1,115 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getUpdateableRequests]
|
||||
(
|
||||
)
|
||||
RETURNS @RET TABLE
|
||||
(
|
||||
[entity_name] varchar(255)
|
||||
,[Id] bigint
|
||||
,[order] bigint
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @threshold_minutes_full int = 60, @threshold_minutes_short int = 8;
|
||||
|
||||
DECLARE @utcnow datetime = GETUTCDATE();
|
||||
DECLARE @UTCTimeInMinutes int = DATEDIFF(MINUTE, CAST(CAST(@utcnow as date) as datetime), @utcnow);
|
||||
|
||||
DECLARe @AS XML = [dbo].[mfr__schema]();
|
||||
|
||||
DECLARE @EntityTypes TABLE([#] int, [typ] varchar(50), [name] varchar(255), [set] varchar(255), [EntitySet] varchar(255), [tablename] varchar(255), [url] varchar(500), [DateColumn] varchar(25));
|
||||
WITH XMLNAMESPACES
|
||||
(
|
||||
'http://schemas.microsoft.com/ado/2007/06/edmx' as edmx,
|
||||
'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata' as m
|
||||
), et as (
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as '#'
|
||||
, xD.value('local-name(.)', 'varchar(50)') as [type]
|
||||
, xD.value('@Name', 'varchar(255)') as [EntityType] --, xD.query('.') as 'q'
|
||||
, xS.value('@Name', 'varchar(255)') as [Set]
|
||||
, o.[name] as [tablename]
|
||||
from @as.nodes('/Schema[1]/EntityType') as xm(xD)
|
||||
JOIN @as.nodes('/Schema/EntityContainer/EntitySet') as xn(xS) ON (xS.value('@EntityType', 'varchar(255)')) like ('MFR.%[.]' + (xD.value('@Name', 'varchar(255)')))
|
||||
JOIN sys.objects as o ON o.[name] like ('mfr__' + (LOWER(xS.value('@Name', 'varchar(255)'))))
|
||||
union
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as '#'
|
||||
, xD.value('local-name(.)', 'varchar(50)') as [type]
|
||||
, xD.value('@Name', 'varchar(255)') as [EntityType] --, xD.query('.') as 'q'
|
||||
, '' as [Set]
|
||||
, o.[name] as [tablename]
|
||||
from @as.nodes('/Schema[1]/ComplexType') as xm(xD)
|
||||
JOIN sys.objects as o ON o.[name] like ('mfr__[#]' + (LOWER(xD.value('@Name', 'varchar(255)'))) + 's')
|
||||
)
|
||||
INSERT INTO @EntityTypes SELECT [#],[type],[EntityType],[set] = LOWER([set]), [EntitySet] = [set], [tablename], null, null FROM et;
|
||||
|
||||
WITH tbl as(
|
||||
SELECT
|
||||
--QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.[name]) AS [TABLE_NAME]
|
||||
sOBJ.[name] AS [TABLE_NAME]
|
||||
, SUM(sPTN.Rows) AS [RowCount]
|
||||
,sOBJ.[create_date]
|
||||
FROM
|
||||
sys.objects AS sOBJ
|
||||
INNER JOIN sys.partitions AS sPTN
|
||||
ON sOBJ.object_id = sPTN.object_id
|
||||
AND sOBJ.[name] like 'mfr__%'
|
||||
WHERE
|
||||
sOBJ.[type] = 'U'
|
||||
AND sOBJ.is_ms_shipped = 0x0
|
||||
AND index_id < 2 -- 0:Heap, 1:Clustered
|
||||
GROUP BY
|
||||
sOBJ.schema_id
|
||||
, sOBJ.name
|
||||
, sObj.[create_date]
|
||||
), pro as (SELECT *
|
||||
FROM sys.procedures WHERE LEFT([name], 11) = 'mfr__updt__')
|
||||
, lu as (SELECT [table], MAX([timestamp]) as 'lu' FROM [dbo].[fds__status] WHERE [action] like 'update%' group by [table])
|
||||
, luf as (SELECT [table], MAX([timestamp]) as 'luf' FROM [dbo].[fds__status] WHERE [action] like 'update_full' group by [table])
|
||||
, lur as (SELECT [table], MAX([timestamp]) as 'lur' FROM [dbo].[fds__status] WHERE [action] like 'update_reset' group by [table])
|
||||
, luc as (SELECT lu.[table], [lu], [luf], [lur]
|
||||
, DATEDIFF(MINUTE, [lu], @utcnow) as [dlu]
|
||||
, DATEDIFF(MINUTE, [lur], @utcnow) as [dlr]
|
||||
, DATEDIFF(MINUTE, [luf], @utcnow) as [dluf]
|
||||
, CASE --WHEN [dbo].[ctm__getUpdateLockStatus] () = Cast(1 as bit) THEN 0
|
||||
WHEN [lu] is null then 5
|
||||
--WHEN DATEDIFF(MINUTE, [lu], @utcnow) > @threshold_minutes_full
|
||||
-- OR DATEDIFF(MINUTE, [luf], @utcnow) > @threshold_minutes_full
|
||||
-- THEN 2
|
||||
WHEN DATEDIFF(MINUTE, [lu], @utcnow) > @threshold_minutes_short THEN 1
|
||||
ELSE 0
|
||||
END as 'need'
|
||||
from lu LEFT JOIN luf on lu.[table] = luf.[table] LEFT JOIN lur on lu.[table] = lur.[table]
|
||||
), cols as (SELECT DISTINCT [TABLE_NAME] FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE LEFT(TABLE_NAME, 5) = N'mfr__' AND ([column_name] COLLATE Latin1_General_CI_AS in ('DateModified', 'DateCreated', 'DateOfCreation')))
|
||||
, updateabletables as (
|
||||
SELECT DISTINCT [entity_name] = et.[name]
|
||||
, 'table_name' = tbl.[table_name]
|
||||
, 'temp_table' = pro.[name]
|
||||
, 'locked' = 0 --ISNULL([dbo].[ctm__getUpdateLockStatus_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')), 0)
|
||||
, 'locked_reset' = 0 --ISNULL([dbo].[ctm__getUpdateLockStatus_reset_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')), 0)
|
||||
, 'updateneed' = CASE
|
||||
--WHEN [dbo].[ctm__getUpdateLockStatus_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')) = Cast(1 as bit) THEN 0
|
||||
WHEN et.[name] COLLATE Latin1_General_CI_AS IN ('Attachment','Comment','Item','StepListTemplateInstance','Step') THEN 0
|
||||
WHEN tbl.[RowCount] = 0 THEN 5
|
||||
WHEN NOT EXISTS (SELECT * FROM cols WHERE tbl.[TABLE_NAME] = cols.[TABLE_NAME]) THEN 0
|
||||
WHEN luc.need is null then 5
|
||||
WHEN tbl.[TABLE_NAME] COLLATE Latin1_General_CI_AS in ('') AND ISNULL(luc.[dlr], 1440) >= 720 AND @UTCTimeInMinutes BETWEEN 45 AND 90 THEN 5 -- once every day, between 02:45 and 03:30 in the morning
|
||||
ELSE luc.[need]--ISNULL(luc.[need], 0)
|
||||
END
|
||||
, 'datebased' = CASE WHEN EXISTS (SELECT * FROM cols WHERE tbl.[TABLE_NAME] = cols.[TABLE_NAME]) THEN 1 ELSE 0 END
|
||||
FROM tbl
|
||||
JOIN @EntityTypes as et on tbl.[TABLE_NAME] = et.[tablename]
|
||||
JOIN pro on REPLACE(pro.[name], 'mfr__updt__', 'mfr__') = tbl.[TABLE_NAME]
|
||||
LEFT JOIN luc on tbl.[table_name] = luc.[table]
|
||||
)
|
||||
insert into @RET
|
||||
SELECT rq.[entity_name], rq.[Id], ROW_NUMBER() OVER (ORDER BY [date_requested])
|
||||
FROM [dbo].[fds__mfr_updaterequests] as rq JOIN updateabletables ON rq.[entity_name] = updateabletables.[entity_name] AND rq.Id is not null
|
||||
;
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,114 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__getUpdateableTables]
|
||||
(
|
||||
)
|
||||
RETURNS @RET TABLE
|
||||
(
|
||||
[entity_name] varchar(255)
|
||||
,[table_name] varchar(255)
|
||||
,[proc_name] varchar(255)
|
||||
,[locked] bit
|
||||
,[locked_reset] bit
|
||||
,[updateneed] tinyint
|
||||
,[datebased] bit
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @threshold_minutes_full int = 60, @threshold_minutes_short int = 8;
|
||||
|
||||
DECLARE @utcnow datetime = GETUTCDATE();
|
||||
DECLARE @UTCTimeInMinutes int = DATEDIFF(MINUTE, CAST(CAST(@utcnow as date) as datetime), @utcnow);
|
||||
|
||||
DECLARe @AS XML = [dbo].[mfr__schema]();
|
||||
|
||||
DECLARE @EntityTypes TABLE([#] int, [typ] varchar(50), [name] varchar(255), [set] varchar(255), [EntitySet] varchar(255), [tablename] varchar(255), [url] varchar(500), [DateColumn] varchar(25));
|
||||
WITH XMLNAMESPACES
|
||||
(
|
||||
'http://schemas.microsoft.com/ado/2007/06/edmx' as edmx,
|
||||
'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata' as m
|
||||
), et as (
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as '#'
|
||||
, xD.value('local-name(.)', 'varchar(50)') as [type]
|
||||
, xD.value('@Name', 'varchar(255)') as [EntityType] --, xD.query('.') as 'q'
|
||||
, xS.value('@Name', 'varchar(255)') as [Set]
|
||||
, o.[name] as [tablename]
|
||||
from @as.nodes('/Schema[1]/EntityType') as xm(xD)
|
||||
JOIN @as.nodes('/Schema/EntityContainer/EntitySet') as xn(xS) ON (xS.value('@EntityType', 'varchar(255)')) like ('MFR.%[.]' + (xD.value('@Name', 'varchar(255)')))
|
||||
JOIN sys.objects as o ON o.[name] like ('mfr__' + (LOWER(xS.value('@Name', 'varchar(255)'))))
|
||||
union
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as '#'
|
||||
, xD.value('local-name(.)', 'varchar(50)') as [type]
|
||||
, xD.value('@Name', 'varchar(255)') as [EntityType] --, xD.query('.') as 'q'
|
||||
, '' as [Set]
|
||||
, o.[name] as [tablename]
|
||||
from @as.nodes('/Schema[1]/ComplexType') as xm(xD)
|
||||
JOIN sys.objects as o ON o.[name] like ('mfr__[#]' + (LOWER(xD.value('@Name', 'varchar(255)'))) + 's')
|
||||
)
|
||||
INSERT INTO @EntityTypes SELECT [#],[type],[EntityType],[set] = LOWER([set]), [EntitySet] = [set], [tablename], null, null FROM et;
|
||||
|
||||
WITH tbl as(
|
||||
SELECT
|
||||
--QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.[name]) AS [TABLE_NAME]
|
||||
sOBJ.[name] AS [TABLE_NAME]
|
||||
, SUM(sPTN.Rows) AS [RowCount]
|
||||
,sOBJ.[create_date]
|
||||
FROM
|
||||
sys.objects AS sOBJ
|
||||
INNER JOIN sys.partitions AS sPTN
|
||||
ON sOBJ.object_id = sPTN.object_id
|
||||
AND sOBJ.[name] like 'mfr__%'
|
||||
WHERE
|
||||
sOBJ.[type] = 'U'
|
||||
AND sOBJ.is_ms_shipped = 0x0
|
||||
AND index_id < 2 -- 0:Heap, 1:Clustered
|
||||
GROUP BY
|
||||
sOBJ.schema_id
|
||||
, sOBJ.name
|
||||
, sObj.[create_date]
|
||||
), pro as (SELECT *
|
||||
FROM sys.procedures WHERE LEFT([name], 11) = 'mfr__updt__')
|
||||
, lu as (SELECT [table], MAX([timestamp]) as 'lu' FROM [dbo].[fds__status] WHERE [action] like 'update%' group by [table])
|
||||
, luf as (SELECT [table], MAX([timestamp]) as 'luf' FROM [dbo].[fds__status] WHERE [action] like 'update_full' group by [table])
|
||||
, lur as (SELECT [table], MAX([timestamp]) as 'lur' FROM [dbo].[fds__status] WHERE [action] like 'update_reset' group by [table])
|
||||
, luc as (SELECT lu.[table], [lu], [luf], [lur]
|
||||
, DATEDIFF(MINUTE, [lu], @utcnow) as [dlu]
|
||||
, DATEDIFF(MINUTE, [lur], @utcnow) as [dlr]
|
||||
, DATEDIFF(MINUTE, [luf], @utcnow) as [dluf]
|
||||
, CASE --WHEN [dbo].[ctm__getUpdateLockStatus] () = Cast(1 as bit) THEN 0
|
||||
WHEN [lu] is null then 5
|
||||
--WHEN DATEDIFF(MINUTE, [lu], @utcnow) > @threshold_minutes_full
|
||||
-- OR DATEDIFF(MINUTE, [luf], @utcnow) > @threshold_minutes_full
|
||||
-- THEN 2
|
||||
WHEN DATEDIFF(MINUTE, [lu], @utcnow) > @threshold_minutes_short THEN 1
|
||||
ELSE 0
|
||||
END as 'need'
|
||||
from lu LEFT JOIN luf on lu.[table] = luf.[table] LEFT JOIN lur on lu.[table] = lur.[table]
|
||||
), cols as (SELECT DISTINCT [TABLE_NAME] FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE LEFT(TABLE_NAME, 5) = N'mfr__' AND ([column_name] COLLATE Latin1_General_CI_AS in ('DateModified', 'DateCreated', 'DateOfCreation')))
|
||||
INSERT INTO @RET
|
||||
SELECT DISTINCT [entity_name] = et.[name]
|
||||
, 'table_name' = tbl.[table_name]
|
||||
, 'temp_table' = pro.[name]
|
||||
, 'locked' = 0 --ISNULL([dbo].[ctm__getUpdateLockStatus_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')), 0)
|
||||
, 'locked_reset' = 0 --ISNULL([dbo].[ctm__getUpdateLockStatus_reset_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')), 0)
|
||||
, 'updateneed' = CASE
|
||||
--WHEN [dbo].[ctm__getUpdateLockStatus_tbl](REPLACE(tbl.[TABLE_NAME], 'mfr__', '')) = Cast(1 as bit) THEN 0
|
||||
WHEN et.[name] COLLATE Latin1_General_CI_AS IN ('Attachment','Comment','Item','StepListTemplateInstance','Step') THEN 0
|
||||
WHEN tbl.[RowCount] = 0 THEN 5
|
||||
WHEN NOT EXISTS (SELECT * FROM cols WHERE tbl.[TABLE_NAME] = cols.[TABLE_NAME]) THEN 0
|
||||
WHEN luc.need is null then 5
|
||||
WHEN tbl.[TABLE_NAME] COLLATE Latin1_General_CI_AS in ('') AND ISNULL(luc.[dlr], 1440) >= 720 AND @UTCTimeInMinutes BETWEEN 45 AND 90 THEN 5 -- once every day, between 02:45 and 03:30 in the morning
|
||||
ELSE luc.[need]--ISNULL(luc.[need], 0)
|
||||
END
|
||||
, 'datebased' = CASE WHEN EXISTS (SELECT * FROM cols WHERE tbl.[TABLE_NAME] = cols.[TABLE_NAME]) THEN 1 ELSE 0 END
|
||||
FROM tbl
|
||||
JOIN @EntityTypes as et on tbl.[TABLE_NAME] = et.[tablename]
|
||||
JOIN pro on REPLACE(pro.[name], 'mfr__updt__', 'mfr__') = tbl.[TABLE_NAME]
|
||||
LEFT JOIN luc on tbl.[table_name] = luc.[table];
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,19 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__newInvoiceId]
|
||||
(
|
||||
@year int
|
||||
)
|
||||
RETURNS varchar(25)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @lastid_int bigint;
|
||||
SELECT @lastid_int = MAX( TRY_PARSE(RIGHT([InvoiceId], 4) as integer) ) FROM [dbo].[fds__invoices] WHERE LEFT(ISNULL([InvoiceId],''),5) = ('R' + CAST(@year as varchar(4)));
|
||||
DECLARE @invoice_id varchar(25) = 'R' + CAST(@year as varchar(4)) + '-' + FORMAT(ISNULL( @lastid_int , CASE WHEN @year = 2021 THEN 1593 ELSE 0 END) + 1, '0000');
|
||||
|
||||
RETURN @invoice_id;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,33 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fds__r_getBalanceThisMonth](
|
||||
@authuser varchar(100)
|
||||
)
|
||||
RETURNS varchar(25)
|
||||
BEGIN
|
||||
DECLARE @today date = GETDATE();
|
||||
DECLARE @tomorrow date = DATEADD(DAY,1,@today);
|
||||
DECLARE @thismonthfirst date = [dbo].[date_monthfirst](@today);
|
||||
DECLARE @ret varchar(25) = ''
|
||||
|
||||
IF [dbo].[fis_getModuleAuth]('fds_reports', @authuser) < 2
|
||||
SET @ret = '';
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
WITH inv as (
|
||||
SELECT
|
||||
[Dateofcreation] = i.[DateFinalized]
|
||||
,i.[InvoiceBalance]
|
||||
,[InvoiceBalanceNetto] = i.[InvoiceBalance_net]
|
||||
FROM [dbo].[fds__invoices] as i
|
||||
WHERE i.[isFinal] = 1 AND [dbo].[date_monthfirst](i.[DateFinalized]) = @thismonthfirst
|
||||
)
|
||||
SELECT TOP(1) @ret = FORMAT( SUM( ISNULL(inv.[InvoiceBalanceNetto],0) ) * 0.001, '#,0 k€', 'de') FROM inv;
|
||||
END
|
||||
|
||||
RETURN @ret;
|
||||
END
|
||||
@@ -0,0 +1,25 @@
|
||||
CREATE FUNCTION [dbo].[fds__updateNeed]
|
||||
(
|
||||
@threshold_minutes_full int
|
||||
,@threshold_minutes_short int
|
||||
)
|
||||
RETURNS tinyint
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
--[Reset] = 5
|
||||
-- [Full] = 2
|
||||
-- [Short] = 1
|
||||
-- [None] = 0
|
||||
|
||||
|
||||
|
||||
SET @threshold_minutes_full = 60;
|
||||
SET @threshold_minutes_short = 8;
|
||||
|
||||
DECLARE @RET tinyint = 1
|
||||
DECLARE @UpDate datetime
|
||||
DECLARE @UpDateFull datetime
|
||||
|
||||
RETURN @RET;
|
||||
END
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_authenticate]
|
||||
(
|
||||
@email varchar(255),
|
||||
@password nvarchar(20)
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [auth] smallint, [name] nvarchar(100) null, [firstname] nvarchar(100) null, [email] varchar(255) NULL, [mobile] varchar(50) null, [functions] varchar(1000), [language] varchar(2), [fullname] nvarchar(255) null, [fullname_rev] nvarchar(255) null)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = -1;
|
||||
DECLARE @useraccount_id varchar(10), @name nvarchar(255), @mobile varchar(50), @functions varchar(1000) = '';
|
||||
|
||||
SELECT TOP(1) @useraccount_id = [useraccount_id]
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null AND ua.[DateDisabled] is null
|
||||
AND CAST(DECRYPTBYKEY(ua.[email_enc]) as varchar(255)) = @email
|
||||
AND @email <> ''
|
||||
AND CAST(DECRYPTBYKEY(ua.[password_enc]) as nvarchar(20)) = @password
|
||||
AND @password <> ''
|
||||
AND ua.[password_enc] is not null;
|
||||
|
||||
INSERT INTO @RET SELECT * FROM [dbo].[fis_admin_getUserAccount](@useraccount_id);
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_authenticate_byID]
|
||||
(
|
||||
@useraccount_id varchar(10),
|
||||
@password nvarchar(20)
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [auth] smallint, [name] nvarchar(100) null, [firstname] nvarchar(100) null, [email] varchar(255) NULL, [mobile] varchar(50) null, [functions] varchar(1000), [language] varchar(2), [fullname] nvarchar(255) null, [fullname_rev] nvarchar(255) null)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = -1;
|
||||
DECLARE @name nvarchar(255), @mobile varchar(50), @functions varchar(1000) = '';
|
||||
|
||||
IF EXISTS( SELECT 0
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null AND ua.[DateDisabled] is null
|
||||
AND [useraccount_id] = @useraccount_id and ISNULL(@useraccount_id, '') <> ''
|
||||
AND CAST(DECRYPTBYKEY(ua.[password_enc]) as nvarchar(20)) = @password
|
||||
AND @password <> ''
|
||||
AND ua.[password_enc] is not null
|
||||
)
|
||||
BEGIN
|
||||
INSERT INTO @RET SELECT * FROM [dbo].[fis_admin_getUserAccount](@useraccount_id);
|
||||
END
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_checkUserExists]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET bit;
|
||||
|
||||
SET @RET = IIF(EXISTS (SELECT * FROM [dbo].[fis_useraccounts] as ua WHERE [useraccount_id] = @useraccount_id AND ua.[DateDeleted] is null AND ua.[DateDisabled] is null), 1, 0);
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAccount]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [auth] smallint, [name] nvarchar(100) null, [firstname] nvarchar(100) null, [email] varchar(255) NULL, [mobile] varchar(50) null, [functions] varchar(1000), [language] varchar(2), [fullname] nvarchar(255) null, [fullname_rev] nvarchar(255) null)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = -1;
|
||||
DECLARE @email varchar(255), @name nvarchar(100), @firstname nvarchar(100), @mobile varchar(50), @functions varchar(1000) = '', @title varchar(50), @gender varchar(1), @password varchar(5), @language varchar(2), @fullname nvarchar(255), @fullname_rev nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @useraccount_id = [useraccount_id]
|
||||
,@auth = CASE WHEN [useraccount_id] is null THEN -1 ELSE 1 END
|
||||
,@name = CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(100))
|
||||
,@firstname = CAST(DECRYPTBYKEY(ua.[firstname_enc]) as nvarchar(100))
|
||||
,@title = CAST(DECRYPTBYKEY(ua.[title_enc]) as varchar(50))
|
||||
,@gender = CAST(DECRYPTBYKEY(ua.[gender_enc]) as varchar(1))
|
||||
--,@password = DECRYPTBYKEY(ua.[password_enc])
|
||||
,@email = CAST(DECRYPTBYKEY(ua.[email_enc]) as varchar(255))
|
||||
,@mobile = CAST(DECRYPTBYKEY(ua.[mobile_enc]) as varchar(50))
|
||||
,@language = ua.[language]
|
||||
,@fullname = [dbo].[fis_admin_getUserName](ua.[name_enc], ua.[firstname_enc], ua.[title_enc])
|
||||
,@fullname_rev = [dbo].[fis_admin_getUserName_rev](ua.[name_enc], ua.[firstname_enc], ua.[title_enc])
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null AND ua.[DateDisabled] is null
|
||||
AND ua.[useraccount_id] = @useraccount_id;
|
||||
|
||||
SET @auth = ISNULL(TRY_CAST((SELECT TOP(1) [value] FROM [fis_useraccounts_settings] WHERE [useraccount_id] = @useraccount_id and [key] = 'intranet_admin') as smallint), @auth);
|
||||
SET @functions = STUFF(
|
||||
(SELECT ',' + [value] as [text()] FROM [fis_useraccounts_settings] WHERE [useraccount_id] = @useraccount_id and [key] = 'intranet_function' FOR XML PATH(''), TYPE).value('.','nvarchar(max)')
|
||||
, 1,1,'');
|
||||
|
||||
INSERT INTO @RET
|
||||
VALUES(
|
||||
@useraccount_id
|
||||
,IIF(@useraccount_id is null, -1, @auth)
|
||||
,IIF(@useraccount_id is null, null, @name)
|
||||
,IIF(@useraccount_id is null, null, @firstname)
|
||||
,IIF(@useraccount_id is null, null, @email)
|
||||
,IIF(@useraccount_id is null, null, @mobile)
|
||||
,IIF(@useraccount_id is null, null, @functions)
|
||||
,IIF(@useraccount_id is null, null, @language)
|
||||
,IIF(@useraccount_id is null, null, @fullname)
|
||||
,IIF(@useraccount_id is null, null, @fullname_rev)
|
||||
);
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,65 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAccountList]
|
||||
(
|
||||
@authaccount varchar(5)
|
||||
, @useraccount_id varchar(5)
|
||||
, @usergroup_id varchar(5)
|
||||
, @include_nonmembers as bit
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [auth] smallint, [name] nvarchar(100) null, [firstname] nvarchar(100) null, [title] varchar(50) NULL, [gender] varchar(1), [email] varchar(255) NULL, [mobile] varchar(50) null, [functions] varchar(1000), [language] varchar(2), [disabled] bit, [nologin] bit, [member] bit, [order] int)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = [dbo].[fis_admin_getUserAuth](@authaccount);
|
||||
|
||||
IF @auth > 1 OR (ISNULL(@useraccount_id, '') <>'' AND @useraccount_id = @authaccount)
|
||||
BEGIN
|
||||
DECLARE @ungrouped bit = CASE WHEN @usergroup_id is null THEN 1 ELSE 0 END; /* if no usergroup is selected => ungrouped */
|
||||
IF @ungrouped = 1 OR EXISTS(SELECT * FROM [dbo].[fis_usergroups] as ug where ug.[usergroup_id] = @usergroup_id AND ug.[DateDeleted] is null) /* Validate selected group, alternatively do not even look for accounts */
|
||||
BEGIN
|
||||
WITH SelectedGroupMembers as (
|
||||
SELECT ug.[usergroup_id], ugm.[useraccount_id]
|
||||
FROM [dbo].[fis_usergroups_members] as ugm
|
||||
JOIN [dbo].[fis_usergroups] as ug ON ugm.[usergroup_id] = ug.[usergroup_id]
|
||||
WHERE ug.[DateDeleted] is null
|
||||
AND ugm.[DateDeleted] is null
|
||||
AND ug.[usergroup_id] = @usergroup_id
|
||||
)
|
||||
INSERT INTO @RET
|
||||
SELECT ua.[useraccount_id]
|
||||
,'auth' = ISNULL(TRY_CAST((SELECT TOP(1) [value] FROM [fis_useraccounts_settings] as s WHERE s.[useraccount_id] = ua.[useraccount_id] and s.[key] = 'intranet_admin') as smallint), CASE WHEN ua.[useraccount_id] is null THEN -1 WHEN [DateDisabled] is not null THEN 0 ELSE 1 END )
|
||||
,CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(100))
|
||||
,CAST(DECRYPTBYKEY(ua.[firstname_enc]) as nvarchar(100))
|
||||
,CAST(DECRYPTBYKEY(ua.[title_enc]) as varchar(50))
|
||||
,CAST(DECRYPTBYKEY(ua.[gender_enc]) as varchar(1))
|
||||
,CAST(DECRYPTBYKEY(ua.[email_enc]) as varchar(255))
|
||||
,CAST(DECRYPTBYKEY(ua.[mobile_enc]) as varchar(50))
|
||||
,'functions' = STUFF(
|
||||
(SELECT ',' + [value] as [text()] FROM [fis_useraccounts_settings] as s WHERE s.[useraccount_id] = ua.[useraccount_id] and s.[key] = 'intranet_function' FOR XML PATH(''), TYPE).value('.','nvarchar(max)')
|
||||
, 1,1,'')
|
||||
,ua.[language]
|
||||
,'disabled' = CASE WHEN ua.[DateDisabled] IS NULL THEN 0 ELSE 1 END
|
||||
,'nologin' = CAST(CASE WHEN ua.[password_enc] is null THEN 1 WHEN ISNULL(CAST(DECRYPTBYKEY(ua.[password_enc]) as varchar(20)),'') = '' THEN 1 ELSE 0 END as bit)
|
||||
,'member' = CASE WHEN @usergroup_id IS NULL THEN NULL WHEN sgm.[useraccount_id] is not null THEN 1 ELSE 0 END
|
||||
,'order' = ROW_NUMBER() OVER (ORDER BY CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(255)))
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
LEFT JOIN SelectedGroupMembers as sgm on sgm.[useraccount_id] = ua.[useraccount_id]
|
||||
WHERE ua.[DateDeleted] is null /*never return deleted useraccounts */
|
||||
AND (@useraccount_id is null OR (ua.[useraccount_id] = @useraccount_id)) /* if single useraccount is selected, return only this selected one */
|
||||
AND (@ungrouped = 1 -- is no useraccount is selected
|
||||
OR ISNULL(@include_nonmembers,0) = 1 -- or if useraccount is selected, but non-members should be included also
|
||||
OR sgm.[useraccount_id] is not null) -- or if accounts are valid members
|
||||
END
|
||||
END
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAccount_Namelist]
|
||||
(
|
||||
@authaccount varchar(5)
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [name] nvarchar(100) null, [firstname] nvarchar(100) null, [order] int)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = [dbo].[fis_admin_getUserAuth](@authaccount);
|
||||
|
||||
IF @auth > 1
|
||||
BEGIN
|
||||
|
||||
INSERT INTO @RET
|
||||
SELECT ua.[useraccount_id]
|
||||
,CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(100))
|
||||
,CAST(DECRYPTBYKEY(ua.[firstname_enc]) as nvarchar(100))
|
||||
,'order' = ROW_NUMBER() OVER (ORDER BY CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(255)))
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null;
|
||||
|
||||
END
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAccount_byemail]
|
||||
(
|
||||
@email varchar(255)
|
||||
,@include_password bit = 0
|
||||
)
|
||||
RETURNS @RET TABLE ( [useraccount_id] varchar(5), [auth] smallint, [name] nvarchar(100) null, [firstname] nvarchar(100) null, [title] varchar(50) null,
|
||||
[gender] varchar(1) NULL, [email] varchar(255) NULL, [mobile] varchar(50) null,
|
||||
[password] nvarchar(25) null, [functions] varchar(1000), [language] varchar(2)
|
||||
, [fullname] nvarchar(255) null, [fullname_rev] nvarchar(255) null
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = -1;
|
||||
DECLARE @useraccount_id varchar(5), @name nvarchar(100), @firstname nvarchar(100), @mobile varchar(50), @functions varchar(1000) = '', @title varchar(50), @gender varchar(1), @password varchar(25), @language varchar(2), @fullname nvarchar(255), @fullname_rev nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @useraccount_id = [useraccount_id]
|
||||
,@auth = CASE WHEN [useraccount_id] is null THEN -1 ELSE 1 END
|
||||
,@name = CAST(DECRYPTBYKEY(ua.[name_enc]) as nvarchar(100))
|
||||
,@firstname = CAST(DECRYPTBYKEY(ua.[firstname_enc]) as nvarchar(100))
|
||||
,@title = CAST(DECRYPTBYKEY(ua.[title_enc]) as varchar(50))
|
||||
,@gender = CAST(DECRYPTBYKEY(ua.[gender_enc]) as varchar(1))
|
||||
,@password = IIF(ISNULL(@include_password,0) = 1, CAST(DECRYPTBYKEY(ua.[password_enc]) as nvarchar(25)) , null)
|
||||
,@email = CAST(DECRYPTBYKEY(ua.[email_enc]) as varchar(255))
|
||||
,@mobile = CAST(DECRYPTBYKEY(ua.[mobile_enc]) as varchar(50))
|
||||
,@language = ua.[language]
|
||||
,@fullname = [dbo].[fis_admin_getUserName](ua.[name_enc], ua.[firstname_enc], ua.[title_enc])
|
||||
,@fullname_rev = [dbo].[fis_admin_getUserName_rev](ua.[name_enc], ua.[firstname_enc], ua.[title_enc])
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null AND ua.[DateDisabled] is null
|
||||
AND LOWER(RTRIM(CAST(DECRYPTBYKEY(ua.[email_enc]) as varchar(255)))) = LOWER(RTRIM(@email));
|
||||
|
||||
SET @auth = ISNULL(TRY_CAST((SELECT TOP(1) [value] FROM [fis_useraccounts_settings] WHERE [useraccount_id] = @useraccount_id and [key] = 'intranet_admin') as smallint), @auth);
|
||||
SET @functions = STUFF(
|
||||
(SELECT ',' + [value] as [text()] FROM [fis_useraccounts_settings] WHERE [useraccount_id] = @useraccount_id and [key] = 'intranet_function' FOR XML PATH(''), TYPE).value('.','nvarchar(max)')
|
||||
, 1,1,'');
|
||||
|
||||
INSERT INTO @RET
|
||||
VALUES(
|
||||
@useraccount_id
|
||||
,IIF(@useraccount_id is null, -1, @auth)
|
||||
,IIF(@useraccount_id is null, null, @name)
|
||||
,IIF(@useraccount_id is null, null, @firstname)
|
||||
,IIF(@useraccount_id is null, null, @title)
|
||||
,IIF(@useraccount_id is null, null, @gender)
|
||||
,IIF(@useraccount_id is null, null, @email)
|
||||
,IIF(@useraccount_id is null, null, @mobile)
|
||||
,IIF(@useraccount_id is null, null, @password)
|
||||
,IIF(@useraccount_id is null, null, @functions)
|
||||
,IIF(@useraccount_id is null, null, @language)
|
||||
,IIF(@useraccount_id is null, null, @fullname)
|
||||
,IIF(@useraccount_id is null, null, @fullname_rev)
|
||||
);
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAddressForm]
|
||||
(
|
||||
@name_enc varbinary(260)
|
||||
,@title_enc varbinary(50)
|
||||
,@gender_enc varbinary(100)
|
||||
,@language varchar(2)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Username nvarchar(255);
|
||||
DECLARE @l varchar(2) = LOWER(ISNULL(@language, 'de'));
|
||||
DECLARE @g varchar(1) = LOWER(ISNULL(CAST(DECRYPTBYKEY(@gender_enc) as varchar(1)), 'm'));
|
||||
|
||||
SET @Username = CAST( CASE WHEN @l = 'de' THEN 'Sehr geehrte' + CASE WHEN @g = 'm' THEN 'r Herr ' ELSE ' Frau ' END
|
||||
ELSE 'Dear ' + CASE WHEN @g = 'm' THEN 'Mr ' ELSE ' Ms ' END
|
||||
END
|
||||
|
||||
+ ISNULL(CASE WHEN @title_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@title_enc) as varchar(50)) + ' ' END,'')
|
||||
+ ISNULL(CASE WHEN @name_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@name_enc ) as nvarchar(100)) END, '')
|
||||
as nvarchar(255)
|
||||
);
|
||||
|
||||
RETURN @username;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,23 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserAuth]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS smallint
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = -1;
|
||||
|
||||
SET @auth = ISNULL((SELECT TOP(1)
|
||||
ISNULL(TRY_CAST((SELECT TOP(1) [value] FROM [fis_useraccounts_settings] as s WHERE s.[useraccount_id] = ua.[useraccount_id] and s.[key] = 'intranet_admin') as smallint), CASE WHEN [useraccount_id] is null THEN -1 WHEN [DateDisabled] is not null THEN 0 ELSE 1 END )
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null
|
||||
AND ua.[useraccount_id] = @useraccount_id), -1);
|
||||
|
||||
RETURN @auth;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserEmail_byID]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @UserEmail varchar(255);
|
||||
|
||||
SELECT TOP(1) @UserEmail = ISNULL(CASE WHEN [email_enc] is null THEN '' ELSE CAST(DECRYPTBYKEY([email_enc] ) as varchar(255)) END, '')
|
||||
FROM [dbo].[fis_useraccounts] as ua WHERE [useraccount_id] = @useraccount_id AND [DateDeleted] is null;
|
||||
|
||||
|
||||
RETURN @userEmail;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserGroupList]
|
||||
(
|
||||
@authaccount varchar(5)
|
||||
, @usergroup_id varchar(5)
|
||||
)
|
||||
RETURNS @RET TABLE ( [usergroup_id] varchar(5), [name] nvarchar(255) null, [order] int)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @auth smallint = [dbo].[fis_admin_getUserAuth](@authaccount);
|
||||
|
||||
IF @auth > 1
|
||||
BEGIN
|
||||
INSERT INTO @RET
|
||||
SELECT [usergroup_id]
|
||||
,CAST(DECRYPTBYKEY(ug.[name_enc]) as nvarchar(255))
|
||||
,'order' = ROW_NUMBER() OVER (ORDER BY CAST(DECRYPTBYKEY(ug.[name_enc]) as nvarchar(255)))
|
||||
FROM [dbo].[fis_usergroups] as ug
|
||||
WHERE ug.[DateDeleted] is null
|
||||
AND (@usergroup_id is null OR ug.[usergroup_id] = @usergroup_id);
|
||||
END
|
||||
|
||||
RETURN;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserName]
|
||||
(
|
||||
@name_enc varbinary(260)
|
||||
,@firstname_enc varbinary(260)
|
||||
,@title_enc varbinary(50)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Username nvarchar(255);
|
||||
|
||||
SET @Username = CAST(
|
||||
ISNULL(CASE WHEN @title_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@title_enc) as varchar(50)) + ' ' END,'')
|
||||
+ ISNULL(CASE WHEN @firstname_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@firstname_enc) as nvarchar(100)) + ' ' END,'')
|
||||
+ ISNULL(CASE WHEN @name_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@name_enc ) as nvarchar(100)) END, '')
|
||||
as nvarchar(255))
|
||||
|
||||
|
||||
RETURN @username;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserName_byID]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Username nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @Username = [dbo].[fis_admin_getUserName]([name_enc],[firstname_enc],[title_enc])
|
||||
FROM [dbo].[fis_useraccounts] as ua WHERE [useraccount_id] = @useraccount_id AND [DateDeleted] is null;
|
||||
|
||||
|
||||
RETURN @username;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserName_rev]
|
||||
(
|
||||
@name_enc varbinary(260)
|
||||
,@firstname_enc varbinary(260)
|
||||
,@title_enc varbinary(50)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Username nvarchar(255);
|
||||
|
||||
SET @Username = CAST(
|
||||
ISNULL(CASE WHEN @name_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@name_enc ) as nvarchar(100)) END, '')
|
||||
+ N', ' + ISNULL(CASE WHEN @firstname_enc is null THEN '' ELSE CAST(DECRYPTBYKEY(@firstname_enc) as nvarchar(100)) + ' ' END,'')
|
||||
|
||||
as nvarchar(255))
|
||||
|
||||
|
||||
RETURN @username;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserName_rev_byID]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
)
|
||||
RETURNS nvarchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Username nvarchar(255);
|
||||
|
||||
SELECT TOP(1) @Username = [dbo].[fis_admin_getUserName_rev]([name_enc],[firstname_enc],[title_enc])
|
||||
FROM [dbo].[fis_useraccounts] as ua WHERE [useraccount_id] = @useraccount_id AND [DateDeleted] is null;
|
||||
|
||||
|
||||
RETURN @username;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_getUserSetting]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
, @key varchar(25)
|
||||
)
|
||||
RETURNS varchar(255)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret varchar(25);
|
||||
|
||||
SET @ret = ISNULL((SELECT TOP(1)
|
||||
ISNULL((SELECT TOP(1) [value] FROM [fis_useraccounts_settings] as s WHERE s.[useraccount_id] = ua.[useraccount_id] and s.[key] = @key), '')
|
||||
FROM [dbo].[fis_useraccounts] as ua
|
||||
WHERE ua.[DateDeleted] is null
|
||||
AND ua.[useraccount_id] = @useraccount_id), '');
|
||||
|
||||
RETURN ISNULL(@ret,'');
|
||||
|
||||
END
|
||||
@@ -0,0 +1,29 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_admin_testGroupMembership]
|
||||
(
|
||||
@useraccount_id varchar(5)
|
||||
,@usergroup_id varchar(1000)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @groups TABLE([usergroup_id] varchar(5));
|
||||
INSERT INTO @groups SELECT * from STRING_SPLIT(@usergroup_id,',');
|
||||
|
||||
DECLARE @isMember bit = CASE WHEN EXISTS (SELECT * FROM [dbo].[fis_usergroups] as g
|
||||
JOIN @groups as groupstotest On groupstotest.[usergroup_id] = g.[usergroup_id]
|
||||
JOIN [dbo].[fis_usergroups_members] as gm on g.[usergroup_id] = gm.[usergroup_id] and gm.[DateDeleted] is null AND g.[DateDeleted] is null
|
||||
JOIN [dbo].[fis_useraccounts] as u on gm.[useraccount_id] = u.[useraccount_id]
|
||||
WHERE u.[DateDeleted] is null AND u.[DateDisabled] is null
|
||||
and u.[useraccount_id] = @useraccount_id
|
||||
and g.[DateDeleted] is null
|
||||
)
|
||||
THEN 1 ELSE 0 END;
|
||||
|
||||
RETURN @isMember;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fis_fn_id] (
|
||||
@table varchar(50)
|
||||
)
|
||||
RETURNS varchar(50)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewAccount varchar(10) = null;
|
||||
SET @table = ISNULL(@table, '');
|
||||
|
||||
IF @table = 'fis_usergroups'
|
||||
BEGIN
|
||||
SELECT @NewAccount = [dbo].[ocms_fn_generatePassword] (5,0,1,0);
|
||||
WHILE EXISTS( SELECT 0 FROM [dbo].[fis_usergroups] WITH (SERIALIZABLE) WHERE [usergroup_id] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (5,0,1,0);
|
||||
END
|
||||
END
|
||||
ELSE IF @table = 'tmp__fds__invoice_servicerequests'
|
||||
BEGIN
|
||||
SELECT @NewAccount = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
WHILE EXISTS( SELECT 0 FROM [dbo].[tmp__fds__invoice_servicerequests] WITH (SERIALIZABLE) WHERE [InvRqId] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
END
|
||||
END
|
||||
ELSE IF @table = 'tmp__fds__bankingtransactions'
|
||||
BEGIN
|
||||
SELECT @NewAccount = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
WHILE EXISTS( SELECT 0 FROM [dbo].[tmp__fds__bankingtransactions] WITH (SERIALIZABLE) WHERE [taID] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (7,0,1,0);
|
||||
END
|
||||
END
|
||||
|
||||
RETURN ISNULL(@NewAccount, [dbo].[ocms_fn_generatePassword] (10,0,1,0));
|
||||
END;
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE FUNCTION [dbo].[fis_fn_useraccount_id] (
|
||||
)
|
||||
RETURNS varchar(5)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @NewAccount varchar(5) = [dbo].[ocms_fn_generatePassword] (5,0,1,0);
|
||||
|
||||
WHILE EXISTS( SELECT * FROM [dbo].[fis_useraccounts] WHERE [useraccount_id] = @NewAccount)
|
||||
BEGIN
|
||||
SET @NewAccount = [dbo].[ocms_fn_generatePassword] (5,0,1,0);
|
||||
END
|
||||
|
||||
RETURN @NewAccount;
|
||||
END;
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_getModuleAuth]
|
||||
(
|
||||
@module varchar(50),
|
||||
@useraccount_id varchar(10) -- length is 5; content would be cut to 5 is variable-length is 5 also
|
||||
)
|
||||
RETURNS int
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET int, @TMP int, @module_base varchar(50), @module_qualifier varchar(50);
|
||||
SET @module = ISNULL(@module,'');
|
||||
SET @module_base = CASE WHEN CHARINDEX('-', @module) = 0 THEN @module ELSE LEFT(@module, CHARINDEX('-', @module) -1) END;
|
||||
SET @module_qualifier = CASE WHEN CHARINDEX('-', @module) = 0 THEN '' ELSE RIGHT(@module, LEN(@module) - CHARINDEX('-', @module)) END;
|
||||
|
||||
SET @RET = CASE WHEN @module = '' OR LEFT(@module,1) ='-' -- OR ISNULL(@account, '') IN ('','*'))
|
||||
THEN -3
|
||||
WHEN @useraccount_id = 'sa'
|
||||
THEN 10
|
||||
WHEN NOT EXISTS (SELECT 0 FROM [dbo].[fis_useraccounts] as u WHERE u.[useraccount_id] = @useraccount_id and u.[DateDeleted] is null)
|
||||
THEN -2
|
||||
WHEN EXISTS (SELECT 0 FROM [dbo].[fis_useraccounts] as u WHERE u.[useraccount_id] = @useraccount_id and u.[DateDeleted] is null AND u.[DateDisabled] is not null)
|
||||
THEN -1
|
||||
WHEN @module <> 'fds-admin' AND NOT EXISTS (SELECT 0 from [dbo].[fis_module_auth] as a WHERE a.[module] = @module)
|
||||
THEN 0
|
||||
ELSE NULL END;
|
||||
|
||||
|
||||
IF @RET is null
|
||||
BEGIN
|
||||
WITH maCTE as (
|
||||
SELECT * FROM [dbo].[fis_module_auth] as a_
|
||||
)
|
||||
SELECT @RET = Max(a.[auth])
|
||||
FROM maCTE as a
|
||||
WHERE (
|
||||
((@module LIKE (a.[module] + '%') OR @module = a.[module]) AND @module <> '')
|
||||
OR a.[module] = 'admin'
|
||||
)
|
||||
AND (
|
||||
(a.[isgroup] = 0 AND a.[group_or_user] = @useraccount_id)
|
||||
OR (a.[isgroup] = 1 AND [dbo].[fis_admin_testGroupMembership](@useraccount_id, a.[group_or_user]) = 1)
|
||||
);
|
||||
END
|
||||
|
||||
|
||||
IF @module_qualifier not in ('manage','admin') AND @RET between -1 and 9 AND @RET between -1 and 9
|
||||
SET @RET = [dbo].[ott_max](@RET, [dbo].[fis_getModuleAuth](@module_base + '-manage', @useraccount_id ));
|
||||
|
||||
IF @module <> 'fds-admin' AND ISNULL(@RET, -1) between -1 and 9
|
||||
SET @RET = [dbo].[ott_max](@RET, [dbo].[fis_getModuleAuth]('fds-admin', @useraccount_id ));
|
||||
|
||||
--SET @RET = CASE WHEN @module = 'fds_inv' and @useraccount_id = 'J5KL8' THEN 1 ELSE @RET END;
|
||||
|
||||
SET @RET = ISNULL(@RET, -3);
|
||||
|
||||
RETURN @RET
|
||||
|
||||
END
|
||||
@@ -0,0 +1,20 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_getModuleAuthList]
|
||||
(
|
||||
@module varchar(100)
|
||||
,@authuser varchar(10)
|
||||
)
|
||||
RETURNS TABLE
|
||||
AS
|
||||
RETURN
|
||||
(
|
||||
SELECT
|
||||
[module] = [value]
|
||||
, [auth] = [dbo].[fis_getModuleAuth]([value], @authuser)
|
||||
FROM string_split(ISNULL(@module, ''),',')
|
||||
WHERE TRIM([value]) <> ''
|
||||
)
|
||||
@@ -0,0 +1,49 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[fis_getONEPersonWidgets]
|
||||
(
|
||||
@useraccount_id varchar(10)
|
||||
)
|
||||
RETURNS @RET TABLE
|
||||
(
|
||||
[short_name] [varchar](50) NOT NULL,
|
||||
[account] [varchar](50) NOT NULL,
|
||||
[type] [nvarchar](50) NOT NULL,
|
||||
[name] [nvarchar](255) NOT NULL,
|
||||
[description] [nvarchar](1000) NULL,
|
||||
[sql] [nvarchar](2000) NULL,
|
||||
[sql_admin_columns] [nvarchar](500) NULL,
|
||||
[sql_datatypes] [nvarchar](255) NULL,
|
||||
[url] [nvarchar](500) NULL,
|
||||
[html] [nvarchar](max) NULL,
|
||||
[visible_groups] [varchar](1000) NULL,
|
||||
[visible] [tinyint] NOT NULL,
|
||||
[auth_module] [varchar](50) NULL,
|
||||
[rendering_options] [nvarchar](255) NULL,
|
||||
[server_options] [nvarchar](2000) NULL,
|
||||
[daycache] [bit] NOT NULL,
|
||||
[personalized] [bit] NOT NULL,
|
||||
[safemode] [bit] NOT NULL,
|
||||
[variables] [varchar](1000) NULL,
|
||||
[order] int
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
--DECLARE @account varchar(50) = ''; -- kept in function for reuse purposes
|
||||
|
||||
|
||||
INSERT INTO @RET
|
||||
SELECT w.*
|
||||
, ROW_NUMBER() OVER (ORDER BY s.[display_order], s.[DateCreated] DESC, w.[name]) as 'order'
|
||||
FROM [dbo].[fis_widgets] as w JOIN [dbo].[fis_widget_subscriptions] as s ON w.[short_name] = s.[widget_name]
|
||||
WHERE --(s.[account] = @account OR s.[account] = '*')
|
||||
(s.[person_guid] = @useraccount_id OR s.[person_guid] = '*')
|
||||
AND (ISNULL(w.[visible],0) = 0 OR ([dbo].[fis_getModuleAuth](ISNULL(w.[auth_module], 'fis_widgets'), @useraccount_id) >= w.[visible]))
|
||||
--UNION
|
||||
-- SELECT * FROM [dbo].[fis_getONEPersonWidgets_ownevents](@account, @person_guid)
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,154 @@
|
||||
|
||||
CREATE FUNCTION [dbo].[json_compareObjectArrays] (@SourceJSON NVARCHAR(MAX), @TargetJSON NVARCHAR(MAX), @uniquekey varchar(50) )
|
||||
/**
|
||||
Summary:
|
||||
This function 'diffs' a source JSON document with a target JSON document and produces an
|
||||
analysis of which properties are missing in either the source or target, or the values
|
||||
of these properties that are different. It reports on the properties and values for
|
||||
both source and target as well as the path that references that scalar value. The
|
||||
path reference to the object's parent is exposed in the result to enable a query to
|
||||
reference the value of any other object in the parent that is needed.
|
||||
Author: Phil Factor
|
||||
based on Author: Phil Factor (06/07/2020)
|
||||
Date: 06/30/2023
|
||||
|
||||
Returns: >
|
||||
equal: 1 = equal, 0 not equal
|
||||
SideIndicator: ( == equal, <- not in target, -> not in source, <> not equal )
|
||||
uid:
|
||||
parent:
|
||||
path: the JSON path used by the SQL JSON functions
|
||||
key: the key field without the path
|
||||
SourceValue: the value IN the SOURCE JSON document
|
||||
TargetValue: the value IN the TARGET JSON document
|
||||
|
||||
**/
|
||||
RETURNS @returntable TABLE
|
||||
(
|
||||
[equal] [bit],
|
||||
[SideIndicator] CHAR(2), -- == means equal, <- means not in target, -> means not in source, <> means not equal
|
||||
[UID] varchar(100),
|
||||
[parent] VARCHAR(2000), -- the parent object
|
||||
[path] VARCHAR(2000), -- the JSON path used by the SQL JSON functions
|
||||
[key] VARCHAR(255), -- the key field without the path
|
||||
[SourceValue] NVARCHAR(max), -- the value IN the SOURCE JSON document
|
||||
[TargetValue] NVARCHAR(max) -- the value IN the TARGET JSON document
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
IF (IsJson(ISNULL(@SourceJSON, '{}')) = 1 AND IsJson(ISNULL(@TargetJSON, '{}')) = 1) --don't try anything if either json is invalid
|
||||
BEGIN
|
||||
DECLARE @map TABLE --these contain all properties or array elements with scalar values
|
||||
(
|
||||
iteration INT, --the number of times that more arrays or objects were found
|
||||
SourceOrTarget CHAR(1), --is this the source 's' OR the target 't'
|
||||
[UID] varchar(100),
|
||||
[mparent] VARCHAR(2000), --the parent object
|
||||
[mPath] VARCHAR(2000), -- the JSON path to the key/value pair or array element
|
||||
[mOPath] NVARCHAR(2000),
|
||||
[mKey] VARCHAR(255), --the key to the property
|
||||
[mValue] NVARCHAR(MAX),-- the value
|
||||
[mType] INT --the type of value it is
|
||||
);
|
||||
DECLARE @objects TABLE --this contains all the properties with arrays and objects
|
||||
(
|
||||
iteration INT,
|
||||
SourceOrTarget CHAR(1),
|
||||
[UID] varchar(100),
|
||||
[oParent] VARCHAR(2000),
|
||||
[oPath] VARCHAR(2000),
|
||||
[oOPath] VARCHAR(2000),
|
||||
[oKey] NVARCHAR(2000),
|
||||
[oValue] NVARCHAR(MAX),
|
||||
[oType] INT
|
||||
);
|
||||
DECLARE @depth INT = 1; --we start in shallow water
|
||||
DECLARE @HowManyObjectsNext INT = 1, @SourceType INT, @TargetType INT;
|
||||
|
||||
SELECT --firstly, we try to work out if the source is an array or object
|
||||
@SourceType =
|
||||
CASE IsNumeric((SELECT TOP 1 [key] FROM OpenJson(@SourceJSON)))
|
||||
WHEN 1 THEN 4 ELSE 5 END,
|
||||
@TargetType= --and if the target is an array or object
|
||||
CASE IsNumeric((SELECT TOP 1 [key] FROM OpenJson(@TargetJSON)))
|
||||
WHEN 1 THEN 4 ELSE 5 END
|
||||
--now we insert the base objects or arrays into the object table
|
||||
INSERT INTO @objects (iteration, SourceOrTarget, [oParent], [oPath], [oOPath], [oKey], [oValue], [oType])
|
||||
SELECT 0, 's' AS SourceOrTarget,'' AS [oParent], [oPath] = '$', [oOPath] = '$', [oKey] = '', @SourceJSON, @SourceType;
|
||||
INSERT INTO @objects (iteration, SourceOrTarget, [oParent], [oPath], [oOPath], [oKey], [oValue], [oType])
|
||||
SELECT 0, 't' AS SourceOrTarget, '' AS [oParent], [oPath] = '$', [oOPath] = '$', [oKey] = '', @TargetJSON, @TargetType;
|
||||
|
||||
--we now set the depth and how many objects are in the next iteration
|
||||
SELECT @depth = 0, @HowManyObjectsNext = 2;
|
||||
|
||||
WHILE @HowManyObjectsNext > 0 AND @depth < 2
|
||||
BEGIN
|
||||
INSERT INTO @map --get the scalar values into the @map table
|
||||
(iteration, SourceOrTarget, [UID], [mParent], [mPath], [mOPath], [mKey], [mValue], [mType])
|
||||
SELECT --
|
||||
[iteration] = o.[iteration] + 1
|
||||
, SourceOrTarget
|
||||
, [UID] = [UID]
|
||||
, [mParent] = [oPath]
|
||||
, [mPath] = [oPath] + CASE [otype] WHEN 4 THEN '[' + [Key] + ']' ELSE '.' + [key] END
|
||||
, [mOPath] = [oOPath] + CASE [otype] WHEN 4 THEN '[' + [Key] + ']' ELSE '.' + [key] END
|
||||
, [mkey] = [key]
|
||||
, [mvalue] = [value]
|
||||
, [mtype] = [type]
|
||||
FROM @objects AS o
|
||||
CROSS APPLY OpenJson([oValue]) as j
|
||||
WHERE j.[type] IN (0, 1, 2, 3) AND o.[iteration] = @depth;
|
||||
|
||||
--now we do the same for the objects and arrays
|
||||
INSERT INTO @objects (iteration, SourceOrTarget, [UID], [oParent], [oPath], [oOPath], [oKey], [oValue], [oType])
|
||||
SELECT
|
||||
[iteration] = o.[iteration] + 1
|
||||
, [SourceOrTarget] = SourceOrTarget
|
||||
, [UID] = JSON_VALUE(j.[Value], '$.' + @uniquekey)
|
||||
, [oParent] = [oPath]
|
||||
, [oPath] = [oPath] + CASE [oType] WHEN 4 THEN '[' + JSON_VALUE(j.[Value], '$.' + @uniquekey) + ']' ELSE '.' + [key] END
|
||||
, [oOPath] = [oOPath] + CASE [oType] WHEN 4 THEN '[' + j.[key] + ']' ELSE '.' + j.[key] END
|
||||
, [oKey] = [key]
|
||||
, [oValue] = [value]
|
||||
, [oType] = [type]
|
||||
FROM @objects o
|
||||
CROSS APPLY OpenJson([oValue]) as j
|
||||
WHERE j.[type] IN (4,5) AND o.[iteration] = @depth;
|
||||
|
||||
SELECT @HowManyObjectsNext = @@RowCount --how many objects or arrays?
|
||||
SELECT @depth = @depth + 1; --and so to the next depth maybe
|
||||
|
||||
END; --while
|
||||
|
||||
--now we just do a full join on the columns we are comparing and work out the comparison
|
||||
INSERT INTO @returntable
|
||||
SELECT
|
||||
--first we work out the side-indicator that summarises the comparison
|
||||
[equal] = CASE WHEN src.[UID] is null OR tgt.[UID] is null THEN 0
|
||||
WHEN src.[mValue] is NULL AND tgt.[mValue] is null THEN 1
|
||||
WHEN src.[mValue] = tgt.[mValue] THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
, [Sideindicator] = CASE WHEN src.[UID] is null AND tgt.[UID] IS NOT null THEN '->'
|
||||
WHEN src.[UID] is NOT null AND tgt.[UID] IS null THEN '<-'
|
||||
WHEN src.[mValue] is NULL AND tgt.[mValue] is null THEN '=='
|
||||
WHEN src.[mValue] = tgt.[mValue] THEN '=='
|
||||
ELSE IIF(src.[mPath] IS NULL, '-', '<') + IIF(tgt.[mPath] IS NULL, '-', '>')
|
||||
END
|
||||
--these columns could be in either table
|
||||
, [UID] = Coalesce(src.[UID], tgt.[UID])
|
||||
, [parent] = Coalesce(src.[mParent], tgt.[mParent])
|
||||
, [path] = Coalesce(src.[mOPath], tgt.[mOPath])
|
||||
, [key] = Coalesce(src.[mKey], tgt.[mKey])
|
||||
, [sourceValue] = src.[mValue]
|
||||
, [targetValue] = tgt.[mValue]
|
||||
FROM
|
||||
(SELECT [UID], [mParent], [mPath], [mOPath], [mKey], [mValue] FROM @map WHERE SourceOrTarget = 's') AS src -- the source scalar literals
|
||||
FULL OUTER JOIN
|
||||
(SELECT [UID], [mParent], [mPath], [mOPath], [mKey], [mValue] FROM @map WHERE SourceOrTarget = 't') AS tgt --the target scalar literals
|
||||
ON src.[mPath] = tgt.[mPath]
|
||||
ORDER BY [path];
|
||||
END;
|
||||
RETURN;
|
||||
END;
|
||||
@@ -0,0 +1,112 @@
|
||||
|
||||
CREATE FUNCTION [dbo].[json_diffObjectArrays] (@SourceJSON NVARCHAR(MAX), @TargetJSON NVARCHAR(MAX), @uniquekey varchar(50) )
|
||||
/**
|
||||
Summary: >
|
||||
This function 'diffs' a source JSON document with a target JSON document and produces an
|
||||
analysis of which properties are missing in either the source or target, or the values
|
||||
of these properties that are different. It reports on the properties and values for
|
||||
both source and target as well as the path that references that scalar value. The
|
||||
path reference to the object's parent is exposed in the result to enable a query to
|
||||
reference the value of any other object in the parent that is needed.
|
||||
Author: Phil Factor
|
||||
Date: 06/07/2020
|
||||
Revised:
|
||||
- mod: Added the parent reference to the difference report
|
||||
- Date: 09/07/2020
|
||||
Database: PhilsRoutines
|
||||
Examples:
|
||||
- SELECT * FROM dbo.Compare_JsonObject(@TheSourceJSON, @TheTargetJSON)
|
||||
WHERE SideIndicator <> '==';
|
||||
- SELECT *, Json_Value(@TheSourceJSON,TheParent+'.name')
|
||||
FROM dbo.Compare_JsonObject(@TheSourceJSON, @TheTargetJSON)
|
||||
WHERE SideIndicator <> '==';
|
||||
Returns: >
|
||||
SideIndicator: ( == equal, <- not in target, -> not in source, <> not equal
|
||||
ThePath: the JSON path used by the SQL JSON functions
|
||||
TheKey: the key field without the path
|
||||
TheSourceValue: the value IN the SOURCE JSON document
|
||||
TheTargetValue: the value IN the TARGET JSON document
|
||||
|
||||
**/
|
||||
RETURNS @returntable TABLE
|
||||
(
|
||||
[equal] [bit],
|
||||
[action] smallint,
|
||||
[uid] varchar(100),
|
||||
[diff] nvarchar(max)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @objects TABLE (
|
||||
[uid] varchar(100),
|
||||
[json] NVARCHAR(MAX)
|
||||
)
|
||||
INSERT INTO @objects ([uid], [json])
|
||||
SELECT JSON_VALUE(j.[Value], '$.' + @uniquekey), [value]
|
||||
FROM OpenJson(@TargetJSON) as j
|
||||
WHERE type IN (4,5);
|
||||
|
||||
DECLARE @intermediate TABLE
|
||||
(
|
||||
[equal] [bit],
|
||||
[SideIndicator] CHAR(2), -- == means equal, <- means not in target, -> means not in source, <> means not equal
|
||||
[UID] varchar(100),
|
||||
[parent] VARCHAR(2000), -- the parent object
|
||||
[path] VARCHAR(2000), -- the JSON path used by the SQL JSON functions
|
||||
[key] VARCHAR(255), -- the key field without the path
|
||||
[SourceValue] NVARCHAR(max), -- the value IN the SOURCE JSON document
|
||||
[TargetValue] NVARCHAR(max) -- the value IN the TARGET JSON document
|
||||
)
|
||||
INSERT INTO @intermediate
|
||||
SELECT * FROM [dbo].[json_compareObjectArrays](@SourceJSON, @TargetJSON, @uniquekey);
|
||||
|
||||
WITH d as(
|
||||
SELECT
|
||||
[UID]
|
||||
, [total] = SUM(1)
|
||||
, [LEFT] = SUM(IIF([sideindicator] = '<-',1,0))
|
||||
, [RIGHT] = SUM(IIF([sideindicator] = '->',1,0))
|
||||
, [inequal] = SUM(IIF(i.[equal] = 1,0,1))
|
||||
FROM @intermediate as i
|
||||
GROUP BY [UID]
|
||||
)
|
||||
INSERT INTO @returntable
|
||||
SELECT
|
||||
[equal] = IIF([inequal] = 0, 1 ,0)
|
||||
, CASE WHEN [total] = [RIGHT] THEN 2
|
||||
WHEN [total] = [LEFT] THEN -1
|
||||
WHEN [inequal] > 0 THEN 1
|
||||
ELSE 0 END
|
||||
, ISNULL(o.[uid], d.[UID])
|
||||
, [j] = IIF([inequal] = 0, '{}' , --( SELECT [key] = im.[theKey], [val] = im.[TheTargetValue] FROM @intermediate as im WHERE im.[UID] = d.[UID] AND im.equal = 0 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER )
|
||||
o.[json]
|
||||
)
|
||||
FROM d
|
||||
FULL OUTER JOIN @objects as o ON d.[UID] = o.[uid]
|
||||
|
||||
DECLARE @uid varchar(100), @key varchar(100);
|
||||
|
||||
DECLARE im_cursor CURSOR FOR
|
||||
SELECT [uid], [key]
|
||||
FROM @intermediate
|
||||
WHERE [SideIndicator] in ('==');
|
||||
|
||||
OPEN im_cursor
|
||||
FETCH NEXT FROM im_cursor INTO @uid, @key;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
UPDATE o
|
||||
SET o.[diff] = JSON_MODIFY(o.[diff], '$.' + @key, null)
|
||||
FROM @returntable as o
|
||||
WHERE [uid] = @uid;
|
||||
|
||||
FETCH NEXT FROM im_cursor INTO @uid, @key;
|
||||
END
|
||||
|
||||
CLOSE im_cursor ;
|
||||
DEALLOCATE im_cursor;
|
||||
|
||||
RETURN;
|
||||
END;
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[mfr_fn_dateSent_fromNotes]
|
||||
(
|
||||
@notes nvarchar(500)
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @DateSent date = TRY_PARSE((SELECT '20'+STRING_AGG(TRIM([string]), '-') WITHIN GROUP(ORDER BY [rowno] DESC) FROM dbo.string_SplitString_ordered((SELECT REPLACE(REPLACE(TRIM([value]), CHAR(10),''), CHAR(13),'') from string_split(@notes,':') where CHARINDEX('@',[value]) = 0 AND [value] like '%[-]__[-]21'),'-') WHERE ISNULL([string],'') <> '') as date)
|
||||
|
||||
RETURN @DateSent
|
||||
|
||||
END
|
||||
@@ -0,0 +1,77 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ne]
|
||||
(
|
||||
@value SQL_VARIANT
|
||||
,@alternative SQL_VARIANT
|
||||
)
|
||||
RETURNS SQL_VARIANT
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret SQL_VARIANT;
|
||||
|
||||
IF SQL_VARIANT_PROPERTY(@value, 'BaseType') = 'varchar'
|
||||
BEGIN
|
||||
|
||||
If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 50
|
||||
BEGIN
|
||||
DECLARE @v1 varchar(50) = ISNULL(try_cast(@value as varchar(50)), '');
|
||||
SET @ret = IIF( @v1 <> '', @v1, try_CAST(@alternative as varchar(50)));
|
||||
END
|
||||
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 255
|
||||
BEGIN
|
||||
DECLARE @v2 varchar(255) = ISNULL(try_cast(@value as varchar(255)), '');
|
||||
SET @ret = IIF( @v2 <> '', @v2, try_CAST(@alternative as varchar(255)));
|
||||
END
|
||||
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 1000
|
||||
BEGIN
|
||||
DECLARE @v3 varchar(1000) = ISNULL(try_cast(@value as varchar(1000)), '');
|
||||
SET @ret = IIF( @v2 <> '', @v2, try_CAST(@alternative as varchar(1000)));
|
||||
END
|
||||
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 4000
|
||||
BEGIN
|
||||
DECLARE @v4 varchar(4000) = ISNULL(try_cast(@value as varchar(4000)), '');
|
||||
SET @ret = IIF( @v4 <> '', @v4, try_CAST(@alternative as varchar(4000)));
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE @v5 varchar(8000) = ISNULL(try_cast(@value as varchar(8000)), '');
|
||||
SET @ret = IIF( @v5 <> '', @v4, try_CAST(@alternative as varchar(8000)));
|
||||
END
|
||||
|
||||
|
||||
END
|
||||
ELSE IF SQL_VARIANT_PROPERTY(@value, 'BaseType') = 'nvarchar'
|
||||
BEGIN
|
||||
|
||||
If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 50
|
||||
BEGIN
|
||||
DECLARE @nv1 nvarchar(50) = ISNULL(try_cast(@value as nvarchar(50)), '');
|
||||
SET @ret = IIF(@nv1 <> '', @nv1, try_CAST(@alternative as nvarchar(50)));
|
||||
END
|
||||
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 255
|
||||
BEGIN
|
||||
DECLARE @nv2 nvarchar(255) = ISNULL(try_cast(@value as nvarchar(255)), '');
|
||||
SET @ret = IIF(@nv2 <> '',@nv2, try_CAST(@alternative as nvarchar(255)));
|
||||
END
|
||||
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 1000
|
||||
BEGIN
|
||||
DECLARE @nv3 nvarchar(1000) = ISNULL(try_cast(@value as nvarchar(1000)), '');
|
||||
SET @ret = IIF(@nv2 <> '',@nv2, try_CAST(@alternative as nvarchar(1000)));
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE @nv4 nvarchar(4000) = ISNULL(try_cast(@value as nvarchar(4000)), '');
|
||||
SET @ret = IIF(@nv4 <> '',@nv4, try_CAST(@alternative as nvarchar(4000)));
|
||||
END
|
||||
|
||||
|
||||
END
|
||||
|
||||
RETURN @ret
|
||||
END
|
||||
@@ -0,0 +1,21 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[net_val]
|
||||
(
|
||||
@price numeric(10,3)
|
||||
,@quantityhours numeric(10,3)
|
||||
,@discount numeric(10,3)
|
||||
)
|
||||
RETURNS numeric(10,2)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @Ret numeric(10,2)
|
||||
|
||||
SET @RET = ISNULL(@Price,0) * ISNULL(@quantityhours,1) * (100 - ISNULL(@discount,0)) * 0.01;
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date,,>
|
||||
-- Description: <Description,,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_20_randomStrings]
|
||||
(
|
||||
@digits tinyint
|
||||
)
|
||||
RETURNS @RET TABLE
|
||||
(
|
||||
[s] varchar(5)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @new_sessionid varchar(36), @trys int, @chars varchar(100), @UPPER int, @LOWER int;
|
||||
SELECT @chars = '012KLMN34STUVWEFGHIJXYZ567OPQR89ABCD';
|
||||
SELECT @UPPER = LEN(@chars), @LOWER = 1;
|
||||
|
||||
INSERT INTO @RET
|
||||
SELECT * FROM (SELECT TOP(20) SUBSTRING(SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1) + SUBSTRING(@chars, [dbo].[ott_random_int](@UPPER,@LOWER), 1), 1, @digits) as id FROM (VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20)) vl(id))z WHERE LEN(id) = @digits;
|
||||
|
||||
|
||||
RETURN
|
||||
END
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_b10]
|
||||
(
|
||||
@string varchar(10)
|
||||
)
|
||||
RETURNS int
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET int;
|
||||
|
||||
|
||||
DECLARE @str VARCHAR(10) = REVERSE(LOWER(@string));
|
||||
WITH Split(stpos,endpos) AS(
|
||||
SELECT 1 AS stpos, 2 AS endpos
|
||||
UNION ALL
|
||||
SELECT endpos, endpos+1
|
||||
FROM Split
|
||||
WHERE endpos <= LEN(@str)
|
||||
)
|
||||
, c as (
|
||||
SELECT
|
||||
'character' = SUBSTRING(@str,stpos,COALESCE(NULLIF(endpos,0),LEN(@str)+1)-stpos)
|
||||
,'charindex' = stpos
|
||||
FROM Split
|
||||
)
|
||||
, s as (
|
||||
SELECT
|
||||
*
|
||||
,'num' = ASCII(character) - ASCII('a') + 1
|
||||
,'fac' = POWER(26,([charindex] -1))
|
||||
,'val' = POWER(26,([charindex] -1)) * (ASCII(character) - ASCII('a') + 1)
|
||||
FROM c
|
||||
)
|
||||
select @RET = SUM([val]) FROM s;
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,38 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_b26]
|
||||
(
|
||||
@number int
|
||||
)
|
||||
RETURNS varchar(10)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET varchar(10)
|
||||
|
||||
/*
|
||||
SELECT
|
||||
*,
|
||||
LetterCode =
|
||||
Coalesce((SELECT Char(65 + (N.Num - 475255) / 456976 % 26) WHERE N.Num >= 475255), '')
|
||||
+ Coalesce((SELECT Char(65 + (N.Num - 18279) / 17576 % 26) WHERE N.Num >= 18279), '')
|
||||
+ Coalesce((SELECT Char(65 + (N.Num - 703) / 676 % 26) WHERE N.Num >= 703), '')
|
||||
+ Coalesce((SELECT Char(65 + (N.Num - 27) / 26 % 26) WHERE N.Num >= 27), '')
|
||||
+ (SELECT Char(65 + (N.Num - 1) % 26))
|
||||
FROM (VALUES(18931)) as N(Num)
|
||||
ORDER BY N.Num
|
||||
*/
|
||||
|
||||
SET @RET = LOWER(
|
||||
Coalesce((SELECT Char(65 + (@number - 475255) / 456976 % 26) WHERE @number >= 475255), '')
|
||||
+ Coalesce((SELECT Char(65 + (@number - 18279) / 17576 % 26) WHERE @number >= 18279), '')
|
||||
+ Coalesce((SELECT Char(65 + (@number - 703) / 676 % 26) WHERE @number >= 703), '')
|
||||
+ Coalesce((SELECT Char(65 + (@number - 27) / 26 % 26) WHERE @number >= 27), '')
|
||||
+ (SELECT Char(65 + (@number - 1) % 26))
|
||||
);
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,30 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_csv_contains]
|
||||
(
|
||||
@text varchar(500)
|
||||
,@fragment varchar(500)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET bit;
|
||||
|
||||
IF ISNULL(@text, '') = '' OR ISNULL(@fragment, '') = ''
|
||||
SET @REt = 0;
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Will be true
|
||||
-- if any of the fragments exist in the list of text-items
|
||||
|
||||
WITH texts as (SELECT * FROM string_split(ISNULL(@text,''), ','))
|
||||
,fragments as (SELECT * FROM string_split(ISNULL(@fragment,''), ','))
|
||||
SELECT @RET = CASE WHEN EXISTS (SELECT * FROM texts JOIN fragments ON texts.[value] = fragments.[value]) THEN 1 ELSE 0 END;
|
||||
END;
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_jcontent]
|
||||
(
|
||||
@groupcode varchar(10)
|
||||
,@text varchar(4000)
|
||||
)
|
||||
RETURNS varchar(4000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET varchar(4000);
|
||||
DECLARE @textinput varchar(4000) = REPLACE(ISNULL(@text, ''), ' ', '');
|
||||
|
||||
IF (@textinput = '' OR @textinput = '{}')
|
||||
BEGIN
|
||||
SET @RET = 0;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
DECLARE @Pattern varchar(20) = '%"' + @groupcode + '":"%';
|
||||
DECLARE @P0 int = PATINDEX(@pattern, @textinput);
|
||||
DECLARE @P1 int = @P0 + LEN(@pattern) -2;
|
||||
DECLARE @P2 int = CHARINDEX('"',@textinput,@p1);
|
||||
|
||||
SELECT @RET = CASE WHEN @P0 = 0 THEN '' ELSE SUBSTRING(@textinput, @P1, @P2 - @P1) END;
|
||||
END
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,52 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_jcsv_contains]
|
||||
(
|
||||
@groupcode varchar(10)
|
||||
,@text varchar(4000)
|
||||
,@fragment varchar(500)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET bit;
|
||||
DECLARE @textinput varchar(4000) = REPLACE(ISNULL(@text, ''), ' ', '');
|
||||
|
||||
IF (@textinput = '' OR @textinput = '{}' OR @fragment = '')
|
||||
BEGIN
|
||||
SET @RET = 0;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
-- Will be true
|
||||
-- if any of the fragments exist in the list of text-items
|
||||
|
||||
DECLARE @Pattern varchar(20) = '%"' + @groupcode + '":"%';
|
||||
DECLARE @P0 int = PATINDEX(@pattern, @textinput);
|
||||
DECLARE @P1 int = @P0 + LEN(@pattern) -2;
|
||||
DECLARE @P2 int = CHARINDEX('"',@textinput,@p1);
|
||||
|
||||
IF @P0 = 0
|
||||
BEGIN
|
||||
SET @RET = 0;
|
||||
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE @text2 varchar(4000) = SUBSTRING(@textinput, @P1, @P2 - @P1);
|
||||
|
||||
WITH texts as (SELECT * FROM string_split(ISNULL(@text2,''), ','))
|
||||
,fragments as (SELECT * FROM string_split(ISNULL(@fragment,''), ','))
|
||||
SELECT @RET = CASE WHEN EXISTS (SELECT * FROM texts JOIN fragments ON texts.[value] = fragments.[value]) THEN 1 ELSE 0 END;
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_jcsv_containskey]
|
||||
(
|
||||
@groupcode varchar(10)
|
||||
,@text varchar(4000)
|
||||
)
|
||||
RETURNS bit
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RET bit;
|
||||
DECLARE @textinput varchar(4000) = REPLACE(ISNULL(@text, ''), ' ', '');
|
||||
|
||||
IF (@textinput = '' OR @textinput = '{}')
|
||||
BEGIN
|
||||
SET @RET = 0;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
-- Will be true
|
||||
-- if any of the fragments exist in the list of text-items
|
||||
|
||||
DECLARE @Pattern varchar(20) = '%"' + @groupcode + '":"%';
|
||||
DECLARE @P0 int = PATINDEX(@pattern, @textinput);
|
||||
|
||||
SET @RET = Case WHEN @P0 = 0 THEN 0 ELSE 1 END;
|
||||
|
||||
END
|
||||
|
||||
RETURN @RET;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_max]
|
||||
(
|
||||
@val1 int,
|
||||
@val2 int
|
||||
)
|
||||
RETURNS int
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES int;
|
||||
|
||||
IF @val1 is null and @val2 is not null
|
||||
SET @val1 = @val2
|
||||
IF @val2 is null and @val1 is not null
|
||||
SET @val2 = @val1
|
||||
IF @val1 is null and @val2 is null
|
||||
SELECT @val1 = 0, @val2 = 0;
|
||||
|
||||
SELECT @RES = CASE WHEN @val1 > @val2 THEN @val1 ELSE @val2 END;
|
||||
|
||||
RETURN @RES;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_max_float]
|
||||
(
|
||||
@val1 float,
|
||||
@val2 float
|
||||
)
|
||||
RETURNS float
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES float;
|
||||
|
||||
IF @val1 is null and @val2 is not null
|
||||
SET @val1 = @val2
|
||||
IF @val2 is null and @val1 is not null
|
||||
SET @val2 = @val1
|
||||
IF @val1 is null and @val2 is null
|
||||
SELECT @val1 = 0, @val2 = 0;
|
||||
|
||||
SELECT @RES = CASE WHEN @val1 > @val2 THEN @val1 ELSE @val2 END;
|
||||
|
||||
RETURN @RES;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,28 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_merge_csv]
|
||||
(
|
||||
@inp1 varchar(2000)
|
||||
,@inp2 varchar(2000)
|
||||
)
|
||||
RETURNS varchar(4000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ret varchar(4000);
|
||||
|
||||
with sp as(
|
||||
SELECT [value] FROM string_split(@inp1,',')
|
||||
UNION
|
||||
SELECT [value] FROM string_split(@inp2,',')
|
||||
), sp2 as (
|
||||
SELECT DISTINCT [value] FROM sp where ISNULL([value], '') <> ''
|
||||
)
|
||||
SELECT @ret = ISNULL(STRING_AGG([value], ','),'')
|
||||
FROM sp2;
|
||||
|
||||
RETURN @ret;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_min]
|
||||
(
|
||||
@val1 int,
|
||||
@val2 int
|
||||
)
|
||||
RETURNS int
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES int;
|
||||
|
||||
IF @val1 is null and @val2 is not null
|
||||
SET @val1 = @val2
|
||||
IF @val2 is null and @val1 is not null
|
||||
SET @val2 = @val1
|
||||
IF @val1 is null and @val2 is null
|
||||
SELECT @val1 = 0, @val2 = 0;
|
||||
|
||||
SELECT @RES = CASE WHEN @val1 < @val2 THEN @val1 ELSE @val2 END;
|
||||
|
||||
RETURN @RES;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_min_date]
|
||||
(
|
||||
@val1 date,
|
||||
@val2 date
|
||||
)
|
||||
RETURNS date
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES date;
|
||||
|
||||
IF @val1 is null and @val2 is not null
|
||||
SET @val1 = @val2
|
||||
IF @val2 is null and @val1 is not null
|
||||
SET @val2 = @val1;
|
||||
|
||||
SELECT @RES = CASE WHEN @val1 is null and @val2 is null THEN NULL WHEN @val1 < @val2 THEN @val1 ELSE @val2 END;
|
||||
|
||||
RETURN @RES;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
|
||||
-- =============================================
|
||||
-- Author: Dr. Stefan Ott
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_min_float]
|
||||
(
|
||||
@val1 float,
|
||||
@val2 float
|
||||
)
|
||||
RETURNS float
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RES float;
|
||||
|
||||
IF @val1 is null and @val2 is not null
|
||||
SET @val1 = @val2
|
||||
IF @val2 is null and @val1 is not null
|
||||
SET @val2 = @val1
|
||||
IF @val1 is null and @val2 is null
|
||||
SELECT @val1 = 0, @val2 = 0;
|
||||
|
||||
SELECT @RES = CASE WHEN @val1 < @val2 THEN @val1 ELSE @val2 END;
|
||||
|
||||
RETURN @RES;
|
||||
|
||||
END
|
||||
@@ -0,0 +1,19 @@
|
||||
-- =============================================
|
||||
-- Author: <Author,,Name>
|
||||
-- Create date: <Create Date, ,>
|
||||
-- Description: <Description, ,>
|
||||
-- =============================================
|
||||
CREATE FUNCTION [dbo].[ott_quote]
|
||||
(
|
||||
@txt as nvarchar(max)
|
||||
)
|
||||
RETURNS nvarchar(max)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @res nvarchar(max);
|
||||
|
||||
SET @res = CHAR(34) + REPLACE(ISNULL(@txt,''), CHAR(34), CHAR(34) + CHAR(34)) + CHAR(34);
|
||||
|
||||
RETURN @res;
|
||||
|
||||
END
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user