-
Notifications
You must be signed in to change notification settings - Fork 321
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c1c0270
commit 563073c
Showing
493 changed files
with
61,108 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
### Summary | ||
Power 365 CRM is a community solution based on Microsoft Dataverse low-code and pro-code. | ||
In this release v1.0 you will be able to manage your entire sales process from Prosect to Quote. This will include management of opportunities during the sales process and autonomous opportunity amount calculation. | ||
|
||
![](https://github.com/Power365initiatives/power365crm/raw/master/assets/Power365CRMSales.gif) | ||
|
||
### Applies to | ||
|
||
[Microsoft Power Apps](https://learn.microsoft.com/en-us/power-apps/) | ||
|
||
[Model-Driven Power Apps](https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/) | ||
|
||
[Custom Pages](https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/model-app-page-overview) | ||
|
||
### Compatibility | ||
|
||
> Don't worry about this section, we'll take care of it. Unless you really want to... | ||
![Power Apps Source File Pack and Unpack Utility 0.20](https://img.shields.io/badge/Packing%20Tool-0.20-green.svg) | ||
![Premium License](https://img.shields.io/badge/Premium%20License-Not%20Required-green.svg "Premium Power Apps license not required") | ||
![Experimental Features](https://img.shields.io/badge/Experimental%20Features-No-green.svg "Does not rely on experimental features") | ||
![On-Premises Connectors](https://img.shields.io/badge/On--Premises%20Connectors-No-green.svg "Does not use on-premise connectors") | ||
![Custom Connectors](https://img.shields.io/badge/Custom%20Connectors-Not%20Required-green.svg "Does not use custom connectors") | ||
|
||
### Authors | ||
|
||
Solution|Author(s) | ||
--------|--------- | ||
Power 365 CRM | [Nicolás Fernández](https://www.linkedin.com/in/nfernandezba/) | ||
Power 365 CRM | [Ignacio Barrios](https://www.linkedin.com/in/ignaciobarriosantos/) | ||
Power 365 CRM | [Wilmer Alcivar](https://www.linkedin.com/in/wilmeralcivar/) - [Github](https://github.com/walcivar) | ||
|
||
### Version history | ||
|
||
Version|Date|Comments | ||
-------|----|-------- | ||
1.0|March 1, 2024|Initial release | ||
|
||
### Data Sources | ||
|
||
* Dataverse | ||
|
||
### Data Model | ||
|
||
Objects present in the solution: | ||
|
||
Type | Tables | | ||
|-----:|-----------| | ||
| Common | Account, Contact, Currency | | ||
| Core | List Item, Price List, Product, Sales Unit | | ||
| Sales | Lead, Opportunity, Opportunity Product, Quote, Quote Product, Account Plan, Action Plan, Opportunity Closure | | ||
|
||
|
||
<details> | ||
<summary>Development</summary> | ||
|
||
| Rank | Name | | ||
|-----:|-----------| | ||
|WebResources| opportunity, quote, enums, helpers, ribbon | | ||
|Custom APIs| CloseOpportunity, CreateQuoteFromOpp, QualifyProspect | | ||
|Plugins| OpportunityPostOp, OpportunityProductPostOp, QUoteProductPostOp | | ||
|
||
</details> | ||
|
||
### Minimal path to awesome | ||
|
||
1. Download up-to-date release | ||
2. Install Core solution with common components first | ||
3. Install specific product solution | ||
4. Set the user language to English | ||
|
||
|
||
https://github.com/Power365initiatives/power365crm/releases | ||
|
||
### Features | ||
In this release v1.0 you will be able to manage your entire sales process from Prosect to Quote. This will include management of opportunities during the sales process and autonomous opportunity amount calculation. | ||
1. Create a Prospect | ||
2. Qualify a Prospect | ||
3. Automatic record creation (Account, Contact and Opportunity) when qualify a Prospect | ||
4. Automatic Quote creation including its quote products | ||
5. Close Opportunity as Won or Lost | ||
|
||
### Solution Componentes | ||
|
||
Solution|Components | ||
--------|--------- | ||
Power365CRMCore | 6 tables, 6 web resources | ||
Power365CRMSales | 1 Model Driven App (Sales Center), 2 Custom Pages, 3 Custom APIs, 1 Plugin assembly, 18 tables, 8 web resources | ||
|
||
### Prerequisites | ||
None | ||
|
||
### User manual | ||
For more information on how to start using this solution, please visit the [Power365CRM Wiki](https://github.com/Power365initiatives/power365crm/wiki) | ||
|
||
### Help | ||
Note: don't worry about this section, we'll update the links. | ||
|
||
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. | ||
|
||
If you encounter any issues while using this sample, you can [create a new issue](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=bug-report.yml&sample=YOURSAMPLENAME&authors=@YOURGITHUBUSERNAME&title=YOURSAMPLENAME%20-%20) | ||
|
||
For questions regarding this sample, [create a new question](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=question.yml&sample=YOURSAMPLENAME&authors=@YOURGITHUBUSERNAME&title=YOURSAMPLENAME%20-%20) | ||
|
||
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=suggestion.yml&sample=YOURSAMPLENAME&authors=@YOURGITHUBUSERNAME&title=YOURSAMPLENAME%20-%20) | ||
|
||
### Disclaimer | ||
|
||
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added
BIN
+45.5 KB
samples/Power365CRM/solution/Power365CRMCoreSolution_1_0_0_0_managed.zip
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+1000 KB
samples/Power365CRM/solution/Power365CRMSalesSolution_1_0_0_1_managed.zip
Binary file not shown.
8 changes: 8 additions & 0 deletions
8
samples/Power365CRM/sourcecode/Power365CRMCoreSolution/.gitignore
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# msbuild output directories | ||
/bin | ||
/obj | ||
|
||
# MSBuild Binary and Structured Log | ||
*.binlog |
54 changes: 54 additions & 0 deletions
54
samples/Power365CRM/sourcecode/Power365CRMCoreSolution/Power365CRMCoreSolution.cdsproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<PowerAppsTargetsPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps</PowerAppsTargetsPath> | ||
</PropertyGroup> | ||
|
||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" /> | ||
<Import Project="$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Solution.props" Condition="Exists('$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Solution.props')" /> | ||
|
||
<PropertyGroup> | ||
<ProjectGuid>2f0d2f94-a2d3-41de-bb77-0e7f3cee3271</ProjectGuid> | ||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion> | ||
<!--Remove TargetFramework when this is available in 16.1--> | ||
<TargetFramework>net462</TargetFramework> | ||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle> | ||
<SolutionRootPath>src</SolutionRootPath> | ||
</PropertyGroup> | ||
|
||
<!-- | ||
Solution Packager overrides, un-comment to use: SolutionPackagerType (Managed, Unmanaged, Both) | ||
Solution Localization Control, if you want to enabled localization of your solution, un-comment SolutionPackageEnableLocalization and set the value to true. - Requires use of -loc flag on Solution Clone or Sync | ||
--> | ||
<!-- | ||
<PropertyGroup> | ||
<SolutionPackageType>Managed</SolutionPackageType> | ||
<SolutionPackageEnableLocalization>false</SolutionPackageEnableLocalization> | ||
</PropertyGroup> | ||
--> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Microsoft.PowerApps.MSBuild.Solution" Version="1.*" /> | ||
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\.gitignore" /> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\bin\**" /> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\obj\**" /> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.cdsproj" /> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.cdsproj.user" /> | ||
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.sln" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Include="$(MSBuildThisFileDirectory)\**" Exclude="@(ExcludeDirectories)" /> | ||
<Content Include="$(SolutionPackageZipFilePath)"> | ||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
</Content> | ||
</ItemGroup> | ||
|
||
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" /> | ||
<Import Project="$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Solution.targets" Condition="Exists('$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Solution.targets')" /> | ||
|
||
</Project> |
82 changes: 82 additions & 0 deletions
82
samples/Power365CRM/sourcecode/Power365CRMCoreSolution/src/Entities/Account/Entity.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Entity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<Name LocalizedName="Account" OriginalName="">Account</Name> | ||
<EntityInfo> | ||
<entity Name="Account"> | ||
<attributes> | ||
<attribute PhysicalName="Name"> | ||
<Type>nvarchar</Type> | ||
<Name>name</Name> | ||
<LogicalName>name</LogicalName> | ||
<RequiredLevel>required</RequiredLevel> | ||
<DisplayMask>ActivityRegardingName|ActivityPointerRegardingName|PrimaryName|ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm|RequiredForGrid</DisplayMask> | ||
<ImeMode>active</ImeMode> | ||
<ValidForUpdateApi>1</ValidForUpdateApi> | ||
<ValidForReadApi>1</ValidForReadApi> | ||
<ValidForCreateApi>1</ValidForCreateApi> | ||
<IsCustomField>0</IsCustomField> | ||
<IsAuditEnabled>1</IsAuditEnabled> | ||
<IsSecured>0</IsSecured> | ||
<IntroducedVersion>5.0.0.0</IntroducedVersion> | ||
<SourceType>0</SourceType> | ||
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled> | ||
<IsSortableEnabled>1</IsSortableEnabled> | ||
<IsDataSourceSecret>0</IsDataSourceSecret> | ||
<AutoNumberFormat></AutoNumberFormat> | ||
<IsSearchable>1</IsSearchable> | ||
<IsFilterable>0</IsFilterable> | ||
<IsRetrievable>1</IsRetrievable> | ||
<IsLocalizable>0</IsLocalizable> | ||
<Format>text</Format> | ||
<MaxLength>100</MaxLength> | ||
<Length>600</Length> | ||
<displaynames> | ||
<displayname description="Account Name" languagecode="1033" /> | ||
</displaynames> | ||
<Descriptions> | ||
<Description description="Type the company or business name." languagecode="1033" /> | ||
</Descriptions> | ||
</attribute> | ||
<attribute PhysicalName="p365i_PriceList"> | ||
<Type>lookup</Type> | ||
<Name>p365i_pricelist</Name> | ||
<LogicalName>p365i_pricelist</LogicalName> | ||
<RequiredLevel>none</RequiredLevel> | ||
<DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid</DisplayMask> | ||
<ValidForUpdateApi>1</ValidForUpdateApi> | ||
<ValidForReadApi>1</ValidForReadApi> | ||
<ValidForCreateApi>1</ValidForCreateApi> | ||
<IsCustomField>1</IsCustomField> | ||
<IsAuditEnabled>0</IsAuditEnabled> | ||
<IsSecured>0</IsSecured> | ||
<IntroducedVersion>1.0.0.0</IntroducedVersion> | ||
<IsCustomizable>1</IsCustomizable> | ||
<IsRenameable>1</IsRenameable> | ||
<CanModifySearchSettings>1</CanModifySearchSettings> | ||
<CanModifyRequirementLevelSettings>1</CanModifyRequirementLevelSettings> | ||
<CanModifyAdditionalSettings>1</CanModifyAdditionalSettings> | ||
<SourceType>0</SourceType> | ||
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled> | ||
<IsSortableEnabled>0</IsSortableEnabled> | ||
<CanModifyGlobalFilterSettings>1</CanModifyGlobalFilterSettings> | ||
<CanModifyIsSortableSettings>1</CanModifyIsSortableSettings> | ||
<IsDataSourceSecret>0</IsDataSourceSecret> | ||
<AutoNumberFormat></AutoNumberFormat> | ||
<IsSearchable>0</IsSearchable> | ||
<IsFilterable>0</IsFilterable> | ||
<IsRetrievable>0</IsRetrievable> | ||
<IsLocalizable>0</IsLocalizable> | ||
<LookupStyle>single</LookupStyle> | ||
<LookupTypes /> | ||
<displaynames> | ||
<displayname description="Price List" languagecode="1033" /> | ||
</displaynames> | ||
<Descriptions> | ||
<Description description="" languagecode="1033" /> | ||
</Descriptions> | ||
</attribute> | ||
</attributes> | ||
</entity> | ||
</EntityInfo> | ||
<RibbonDiffXml /> | ||
</Entity> |
14 changes: 14 additions & 0 deletions
14
samples/Power365CRM/sourcecode/Power365CRMCoreSolution/src/Entities/Account/RibbonDiff.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<RibbonDiffXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<CustomActions /> | ||
<Templates> | ||
<RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates> | ||
</Templates> | ||
<CommandDefinitions /> | ||
<RuleDefinitions> | ||
<TabDisplayRules /> | ||
<DisplayRules /> | ||
<EnableRules /> | ||
</RuleDefinitions> | ||
<LocLabels /> | ||
</RibbonDiffXml> |
110 changes: 110 additions & 0 deletions
110
samples/Power365CRM/sourcecode/Power365CRMCoreSolution/src/Entities/Contact/Entity.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Entity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<Name LocalizedName="Contact" OriginalName="">Contact</Name> | ||
<EntityInfo> | ||
<entity Name="Contact"> | ||
<attributes> | ||
<attribute PhysicalName="FirstName"> | ||
<Type>nvarchar</Type> | ||
<Name>firstname</Name> | ||
<LogicalName>firstname</LogicalName> | ||
<RequiredLevel>recommended</RequiredLevel> | ||
<DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm</DisplayMask> | ||
<ImeMode>active</ImeMode> | ||
<ValidForUpdateApi>1</ValidForUpdateApi> | ||
<ValidForReadApi>1</ValidForReadApi> | ||
<ValidForCreateApi>1</ValidForCreateApi> | ||
<IsCustomField>0</IsCustomField> | ||
<IsAuditEnabled>1</IsAuditEnabled> | ||
<IsSecured>0</IsSecured> | ||
<IntroducedVersion>5.0.0.0</IntroducedVersion> | ||
<SourceType>0</SourceType> | ||
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled> | ||
<IsSortableEnabled>0</IsSortableEnabled> | ||
<IsDataSourceSecret>0</IsDataSourceSecret> | ||
<AutoNumberFormat></AutoNumberFormat> | ||
<IsSearchable>1</IsSearchable> | ||
<IsFilterable>0</IsFilterable> | ||
<IsRetrievable>0</IsRetrievable> | ||
<IsLocalizable>0</IsLocalizable> | ||
<Format>text</Format> | ||
<MaxLength>50</MaxLength> | ||
<Length>300</Length> | ||
<displaynames> | ||
<displayname description="First Name" languagecode="1033" /> | ||
</displaynames> | ||
<Descriptions> | ||
<Description description="Type the contact's first name to make sure the contact is addressed correctly in sales calls, email, and marketing campaigns." languagecode="1033" /> | ||
</Descriptions> | ||
</attribute> | ||
<attribute PhysicalName="FullName"> | ||
<Type>nvarchar</Type> | ||
<Name>fullname</Name> | ||
<LogicalName>fullname</LogicalName> | ||
<RequiredLevel>none</RequiredLevel> | ||
<DisplayMask>ActivityRegardingName|ActivityPointerRegardingName|PrimaryName|ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForGrid</DisplayMask> | ||
<ImeMode>active</ImeMode> | ||
<ValidForUpdateApi>0</ValidForUpdateApi> | ||
<ValidForReadApi>1</ValidForReadApi> | ||
<ValidForCreateApi>0</ValidForCreateApi> | ||
<IsCustomField>0</IsCustomField> | ||
<IsAuditEnabled>1</IsAuditEnabled> | ||
<IsSecured>0</IsSecured> | ||
<IntroducedVersion>5.0.0.0</IntroducedVersion> | ||
<SourceType>0</SourceType> | ||
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled> | ||
<IsSortableEnabled>1</IsSortableEnabled> | ||
<IsDataSourceSecret>0</IsDataSourceSecret> | ||
<AutoNumberFormat></AutoNumberFormat> | ||
<IsSearchable>1</IsSearchable> | ||
<IsFilterable>0</IsFilterable> | ||
<IsRetrievable>1</IsRetrievable> | ||
<IsLocalizable>0</IsLocalizable> | ||
<Format>text</Format> | ||
<MaxLength>300</MaxLength> | ||
<Length>600</Length> | ||
<displaynames> | ||
<displayname description="Full Name" languagecode="1033" /> | ||
</displaynames> | ||
<Descriptions> | ||
<Description description="Combines and shows the contact's first and last names so that the full name can be displayed in views and reports." languagecode="1033" /> | ||
</Descriptions> | ||
</attribute> | ||
<attribute PhysicalName="LastName"> | ||
<Type>nvarchar</Type> | ||
<Name>lastname</Name> | ||
<LogicalName>lastname</LogicalName> | ||
<RequiredLevel>required</RequiredLevel> | ||
<DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm</DisplayMask> | ||
<ImeMode>active</ImeMode> | ||
<ValidForUpdateApi>1</ValidForUpdateApi> | ||
<ValidForReadApi>1</ValidForReadApi> | ||
<ValidForCreateApi>1</ValidForCreateApi> | ||
<IsCustomField>0</IsCustomField> | ||
<IsAuditEnabled>1</IsAuditEnabled> | ||
<IsSecured>0</IsSecured> | ||
<IntroducedVersion>5.0.0.0</IntroducedVersion> | ||
<SourceType>0</SourceType> | ||
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled> | ||
<IsSortableEnabled>0</IsSortableEnabled> | ||
<IsDataSourceSecret>0</IsDataSourceSecret> | ||
<AutoNumberFormat></AutoNumberFormat> | ||
<IsSearchable>1</IsSearchable> | ||
<IsFilterable>0</IsFilterable> | ||
<IsRetrievable>0</IsRetrievable> | ||
<IsLocalizable>0</IsLocalizable> | ||
<Format>text</Format> | ||
<MaxLength>50</MaxLength> | ||
<Length>300</Length> | ||
<displaynames> | ||
<displayname description="Last Name" languagecode="1033" /> | ||
</displaynames> | ||
<Descriptions> | ||
<Description description="Type the contact's last name to make sure the contact is addressed correctly in sales calls, email, and marketing campaigns." languagecode="1033" /> | ||
</Descriptions> | ||
</attribute> | ||
</attributes> | ||
</entity> | ||
</EntityInfo> | ||
<RibbonDiffXml /> | ||
</Entity> |
Oops, something went wrong.