├── app ├── .gitignore ├── src │ ├── main │ │ ├── assets │ │ │ └── fonts │ │ │ │ ├── Roboto.ttf │ │ │ │ └── Pacifico.ttf │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── help64.png │ │ │ │ ├── logo.png │ │ │ │ ├── about64.png │ │ │ │ ├── arrow16.png │ │ │ │ ├── arrow64.png │ │ │ │ ├── graph64.png │ │ │ │ ├── report64.png │ │ │ │ ├── server64.png │ │ │ │ ├── account64.png │ │ │ │ ├── hero_logo.png │ │ │ │ ├── ic_menu_white.png │ │ │ │ ├── side_nav_bar.xml │ │ │ │ ├── gradient_bg_secondary.xml │ │ │ │ ├── ic_menu_send.xml │ │ │ │ ├── ic_info_black_24dp.xml │ │ │ │ ├── custom_progressbar.xml │ │ │ │ ├── ic_menu_slideshow.xml │ │ │ │ ├── ic_menu_gallery.xml │ │ │ │ ├── ic_menu_manage.xml │ │ │ │ ├── ic_notifications_black_24dp.xml │ │ │ │ ├── ic_sync_black_24dp.xml │ │ │ │ ├── ic_menu_camera.xml │ │ │ │ ├── ic_menu_share.xml │ │ │ │ ├── roundedbutton.xml │ │ │ │ ├── ic_applogo.xml │ │ │ │ └── splash_applogo.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── anim │ │ │ │ ├── slide_left.xml │ │ │ │ ├── slide_right.xml │ │ │ │ ├── fade_in.xml │ │ │ │ ├── fade_out.xml │ │ │ │ ├── move.xml │ │ │ │ ├── blink.xml │ │ │ │ ├── bounce.xml │ │ │ │ ├── rotate.xml │ │ │ │ ├── zoom_in.xml │ │ │ │ └── zoom_out.xml │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── menu │ │ │ │ └── main.xml │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ └── strings.xml │ │ │ ├── layout │ │ │ │ ├── activity_splash.xml │ │ │ │ ├── list_submenu.xml │ │ │ │ ├── listheader.xml │ │ │ │ ├── activity_about.xml │ │ │ │ ├── activity_server.xml │ │ │ │ ├── app_bar_main.xml │ │ │ │ ├── activity_web_view.xml │ │ │ │ ├── activity_tcode_help.xml │ │ │ │ ├── nav_header_main.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── recycler_view_item.xml │ │ │ │ ├── activity_display_materials_list.xml │ │ │ │ ├── activity_current_stock.xml │ │ │ │ ├── cards_layout_purchase_order_status.xml │ │ │ │ ├── activity_display_employee_list.xml │ │ │ │ ├── activity_change_purchase_order_status.xml │ │ │ │ ├── activity_check_order_status.xml │ │ │ │ ├── activity_display_sellers.xml │ │ │ │ ├── activity_graphical_analysis.xml │ │ │ │ ├── activity_customer_display.xml │ │ │ │ └── cards_layout_order_status.xml │ │ │ ├── xml │ │ │ │ ├── pref_headers.xml │ │ │ │ ├── pref_data_sync.xml │ │ │ │ ├── pref_notification.xml │ │ │ │ └── pref_general.xml │ │ │ └── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ └── java │ │ │ └── com │ │ │ └── jstech │ │ │ └── fluenterp │ │ │ ├── models │ │ │ ├── DataModel.java │ │ │ ├── Seller.java │ │ │ ├── PurchaseOrder.java │ │ │ ├── SalesOrder.java │ │ │ ├── Material.java │ │ │ ├── Customer.java │ │ │ └── Employee.java │ │ │ ├── adapters │ │ │ ├── AutoFitGridLayoutManager.java │ │ │ ├── MainActivityRecyclerViewAdapter.java │ │ │ ├── AdapterDisplayMaterials.java │ │ │ └── AdapterDisplaySellers.java │ │ │ ├── misc │ │ │ ├── AboutActivity.java │ │ │ ├── ServerActivity.java │ │ │ ├── AppCompatPreferenceActivity.java │ │ │ └── TCodeHelpActivity.java │ │ │ ├── WebViewActivity.java │ │ │ └── SplashActivity.java │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── jstech │ │ │ └── fluenterp │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── jstech │ │ └── fluenterp │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── Logo Files ├── logo.png ├── FluentERP.ai ├── ReadMe ├── J's-Logo (JPG).jpg ├── IMG-20180830-WA0000.jpg └── FluentERP.svg ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .idea ├── caches │ └── build_file_checksums.ser ├── vcs.xml ├── runConfigurations.xml ├── gradle.xml ├── misc.xml └── codeStyles │ └── Project.xml ├── .gitignore ├── PHP-DBConnectivity ├── ReadMe ├── checkUserCredentials.php ├── retrieveEmployees.php ├── retrieveSellers.php ├── changeOrderStatus.php ├── retrieveSalesOrder.php ├── retrievePurchaseOrders.php ├── retrieveCustomerById.php ├── changeOrderStatusPurchase.php ├── retrieveEmployeeById.php ├── retrieveMaterialById.php ├── retrieveOrderStatus.php ├── retrieveU.php ├── createMaterial.php ├── retrieveEmployeeByNumber.php ├── registerNewAccount.php ├── retrieveOrderStatusPurchase.php ├── loadMaterials.php ├── loadUGMaterials.php ├── retrieveChartResultsTota.php ├── loadSalesOrderNumbers.php ├── filterSalesOrderWithCustomer.php ├── retrieveSalesOrderWithDoc.php ├── filterSalesOrderWithOrderStatus.php ├── updateExistingAccount.php ├── createEmployee.php ├── checkLogin.php ├── filterSalesOrderWithOneDate.php ├── retrieveSalesOrderWithSalesDocument.php ├── retrieveCurrentStock.php ├── retrieveUWC.php ├── filterSalesOrderWithSalesDocument.php ├── retrieveChartResultsJala.php ├── retrieveChartResultsAlla.php ├── retrieveChartResultsLudh.php ├── createCustomer.php ├── retrievePurchaseOrderWithDoc.php ├── modifyMaterial.php ├── createPurchaseDoc.php ├── filterSalesOrderWithTwoDates.php ├── filterRetrieveSalesOrder.php ├── createSalesDoc.php ├── modifyCustomer.php ├── modifyEmployee.php ├── modifySalesDoc.php ├── modifyPurchaseDoc.php ├── retrieveEmployeeByDates.php ├── retrieveDataForMaterialReport.php ├── createCustomerReport.php ├── createMaterialReport.php ├── retrieveChartResults.php ├── createPurchaseOrder.php ├── createPriceReport.php ├── createSalesOrder.php ├── createInvoice.php └── modifySalesOrder.php ├── MySQL DB └── ReadMe ├── gradle.properties ├── README.md └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /Logo Files/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/Logo Files/logo.png -------------------------------------------------------------------------------- /Logo Files/FluentERP.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/Logo Files/FluentERP.ai -------------------------------------------------------------------------------- /Logo Files/ReadMe: -------------------------------------------------------------------------------- 1 | Logo created in NetScape Navigator. 2 | Includes extensions .svg, .png. jpg and .ai 3 | -------------------------------------------------------------------------------- /Logo Files/J's-Logo (JPG).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/Logo Files/J's-Logo (JPG).jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Logo Files/IMG-20180830-WA0000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/Logo Files/IMG-20180830-WA0000.jpg -------------------------------------------------------------------------------- /app/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /app/src/main/res/drawable/help64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/help64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/logo.png -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /app/src/main/assets/fonts/Pacifico.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/assets/fonts/Pacifico.ttf -------------------------------------------------------------------------------- /app/src/main/res/drawable/about64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/about64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/arrow16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/arrow16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/arrow64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/arrow64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/graph64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/graph64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/report64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/report64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/server64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/server64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/account64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/account64.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/hero_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/hero_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/drawable/ic_menu_white.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaspreetRFSingh/FluentERP/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/libraries 5 | /.idea/modules.xml 6 | /.idea/workspace.xml 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/ReadMe: -------------------------------------------------------------------------------- 1 | This folder contains the backend PhP files used to connect the front end with the database. 2 | The files are being uploaded on 28th October, 2018 and may be subjected to change for optimization purposes 3 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_left.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_right.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /MySQL DB/ReadMe: -------------------------------------------------------------------------------- 1 | This folder contains the .sql files of this project. 2 | The tables in this file are as of the date 28th October, 2018 and is certainly not our finalized product. 3 | More tables and data will be added and the repository will be updated accordingly 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Oct 23 13:37:10 IST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/move.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gradient_bg_secondary.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/blink.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/DataModel.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | 4 | 5 | public class DataModel { 6 | 7 | public String text; 8 | public int drawable; 9 | public String color; 10 | 11 | public DataModel(String t, int d, String c ) 12 | { 13 | text=t; 14 | drawable=d; 15 | color=c; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 8dp 6 | 176dp 7 | 16dp 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/bounce.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/custom_progressbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_in.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/test/java/com/jstech/fluenterp/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notifications_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sync_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_submenu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 13 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/checkUserCredentials.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | 16 | $sql = "SELECT * FROM `emp_credentials` WHERE `empUserName` = '$user' AND `empPassword` = '$pass'"; 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)==1){ 19 | $response['success']=1; 20 | $response['message']="Login successful!"; 21 | }else{ 22 | $response['success']=0; 23 | $response['message']="Login failed!"; 24 | } 25 | echo json_encode($response); 26 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/listheader.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #4d77b6 7 | #e9e9e9 8 | #004969 9 | #004139 10 | #e3feff 11 | #edf5ff 12 | #ffffff 13 | #ff1a00 14 | #5dff40 15 | #c10f97 16 | #ffcc40 17 | #73cdf5 18 | #0083bf 19 | 20 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveEmployees.php: -------------------------------------------------------------------------------- 1 | connect_error) { 10 | die("Connection failed: " . $conn->connect_error); 11 | } 12 | $sql = "SELECT * FROM employees;"; 13 | $response = array(); 14 | $result = $conn->query($sql); 15 | if(mysqli_num_rows($result)>0){ 16 | $response['employees'] = array(); 17 | while($row=mysqli_fetch_array($result)){ 18 | array_push($response['employees'], $row); 19 | } 20 | $response['success']=1; 21 | $response['message']="Records retrieved successfully!"; 22 | }else{ 23 | $response['success']=0; 24 | $response['message']="No records found!"; 25 | } 26 | echo json_encode($response); 27 | ?> -------------------------------------------------------------------------------- /app/src/androidTest/java/com/jstech/fluenterp/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.jstech.fluenterp", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveSellers.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM sellers"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['sellers'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['sellers'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/changeOrderStatus.php: -------------------------------------------------------------------------------- 1 | connect_error) { 14 | die("Connection failed: " . $conn->connect_error); 15 | } 16 | 17 | $sql = "UPDATE sales_orders_list set order_status = '$order_status' WHERE sales_doc_no = '$sales_doc_no'"; 18 | 19 | $response = array(); 20 | 21 | if ($conn->query($sql) === TRUE) { 22 | $response['success']=1; 23 | $response['message']="Order Status Changed to " . $order_status; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="Failed!"; 27 | } 28 | $conn->close(); 29 | echo json_encode($response) 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveSalesOrder.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | $sql = "SELECT * FROM sales_orders_list"; 14 | $response = array(); 15 | $result = $conn->query($sql); 16 | if(mysqli_num_rows($result)>0){ 17 | 18 | $response['sales_orders'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['sales_orders'], $row); 21 | } 22 | 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | 26 | }else{ 27 | $response['success']=0; 28 | $response['message']="No records found!"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_headers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
9 | 10 |
14 | 15 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrievePurchaseOrders.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | $sql = "SELECT * FROM purchase_orders_list"; 14 | $response = array(); 15 | $result = $conn->query($sql); 16 | if(mysqli_num_rows($result)>0){ 17 | 18 | $response['purchase_order'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['purchase_order'], $row); 21 | } 22 | 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | 26 | }else{ 27 | $response['success']=0; 28 | $response['message']="No records found!"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveCustomerById.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM customers WHERE Customer_id = '$id';"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['customers'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['customers'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/changeOrderStatusPurchase.php: -------------------------------------------------------------------------------- 1 | connect_error) { 15 | die("Connection failed: " . $conn->connect_error); 16 | } 17 | 18 | $sql = "UPDATE purchase_orders_list set order_status = '$order_status' WHERE purchase_doc_no = '$purchase_doc_no'"; 19 | 20 | $response = array(); 21 | 22 | if ($conn->query($sql) === TRUE) { 23 | $response['success']=1; 24 | $response['message']="Order Status Changed to " . $order_status; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="Failed!"; 28 | } 29 | $conn->close(); 30 | echo json_encode($response) 31 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveEmployeeById.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM employees WHERE emp_id = '$emp_id';"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['employees'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['employees'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveMaterialById.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM materials WHERE material_code = '$id';"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['materials'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['materials'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveOrderStatus.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT sales_doc_no, bill_price, order_status FROM sales_orders_list"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['sales_orders_list'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['sales_orders_list'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveU.php: -------------------------------------------------------------------------------- 1 | connect_error) { 15 | die("Connection failed: " . $conn->connect_error); 16 | } 17 | 18 | $sql = "SELECT * FROM customers"; 19 | 20 | $response = array(); 21 | 22 | $result = $conn->query($sql); 23 | 24 | if(mysqli_num_rows($result)>0){ 25 | 26 | $response['customers'] = array(); 27 | while($row=mysqli_fetch_array($result)){ 28 | array_push($response['customers'], $row); 29 | } 30 | 31 | $response['success']=1; 32 | $response['message']="Records retrieved successfully!"; 33 | 34 | }else{ 35 | $response['success']=0; 36 | $response['message']="No records found!"; 37 | } 38 | echo json_encode($response); 39 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createMaterial.php: -------------------------------------------------------------------------------- 1 | connect_error) { 17 | die("Connection failed: " . $conn->connect_error); 18 | } 19 | 20 | $sql = "INSERT INTO materials VALUES (null, '$type','$description','$du', '$costperdu');"; 21 | 22 | $response = array(); 23 | 24 | if ($conn->query($sql) === TRUE) { 25 | $response['success']=1; 26 | $response['message']="Material Created Successfully"; 27 | }else{ 28 | $response['success']=0; 29 | $response['message']="Material Creation Failed"; 30 | } 31 | $conn->close(); 32 | echo json_encode($response) 33 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveEmployeeByNumber.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | $sql = "SELECT * FROM employees WHERE emp_id = '$emp_id'"; 16 | $response = array(); 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)>0){ 19 | $response['employees'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['employees'], $row); 22 | } 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="No records found!"; 28 | } 29 | echo json_encode($response); 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/registerNewAccount.php: -------------------------------------------------------------------------------- 1 | connect_error) { 17 | die("Connection failed: " . $conn->connect_error); 18 | } 19 | 20 | $sql = "INSERT INTO emp_credentials VALUES ('$id', '$username','$password', '$authPerson');"; 21 | $response = array(); 22 | if ($conn->query($sql) === TRUE) { 23 | $response['success']=1; 24 | $response['message']=$username."'s account created!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="Account Creation Failed!"; 28 | } 29 | 30 | $conn->close(); 31 | echo json_encode($response) 32 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveOrderStatusPurchase.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT purchase_doc_no, order_status FROM purchase_orders_list"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['purchase_orders_list'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['purchase_orders_list'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/loadMaterials.php: -------------------------------------------------------------------------------- 1 | connect_error) { 16 | die("Connection failed: " . $conn->connect_error); 17 | } 18 | 19 | $sql = "SELECT * FROM materials"; 20 | 21 | $response = array(); 22 | 23 | $result = $conn->query($sql); 24 | 25 | if(mysqli_num_rows($result)>0){ 26 | 27 | $response['materials'] = array(); 28 | while($row=mysqli_fetch_array($result)){ 29 | array_push($response['materials'], $row); 30 | } 31 | 32 | $response['success']=1; 33 | $response['message']="Records retrieved successfully!"; 34 | 35 | }else{ 36 | $response['success']=0; 37 | $response['message']="No records found!"; 38 | } 39 | echo json_encode($response); 40 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/loadUGMaterials.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | 15 | $sql = "SELECT * FROM `materials` WHERE `material_type` = 'UG'"; 16 | 17 | $response = array(); 18 | 19 | $result = $conn->query($sql); 20 | 21 | if(mysqli_num_rows($result)>0){ 22 | 23 | $response['materials'] = array(); 24 | while($row=mysqli_fetch_array($result)){ 25 | array_push($response['materials'], $row); 26 | } 27 | 28 | $response['success']=1; 29 | $response['message']="Records retrieved successfully!"; 30 | 31 | }else{ 32 | $response['success']=0; 33 | $response['message']="No records found!"; 34 | } 35 | echo json_encode($response); 36 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveChartResultsTota.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | 14 | $tsql = "SELECT SUM(bill_price) FROM `sales_orders_list`"; 15 | $tresponse = array(); 16 | $tresult = $conn->query($tsql); 17 | if(mysqli_num_rows($tresult)>0){ 18 | 19 | $tresponse['total_orders'] = array(); 20 | while($row=mysqli_fetch_array($tresult)){ 21 | array_push($tresponse['total_orders'], $row); 22 | } 23 | 24 | $tresponse['success']=1; 25 | $tresponse['message']="Records retrieved successfully!"; 26 | 27 | }else{ 28 | $tresponse['success']=0; 29 | $tresponse['message']="No records found!"; 30 | } 31 | 32 | echo json_encode($tresponse); 33 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/loadSalesOrderNumbers.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | $sql = "SELECT sales_doc_no FROM sales_orders_list"; 16 | $response = array(); 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)>0){ 19 | $response['sales_order'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['sales_order'], $row); 22 | } 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']=$sales_document_number . ":"; 28 | } 29 | echo json_encode($response); 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterSalesOrderWithCustomer.php: -------------------------------------------------------------------------------- 1 | connect_error) { 14 | die("Connection failed: " . $conn->connect_error); 15 | } 16 | $sql = "SELECT * FROM sales_orders_list where Customer = '$customer'"; 17 | $response = array(); 18 | $result = $conn->query($sql); 19 | if(mysqli_num_rows($result)>0){ 20 | $response['sales_orders_list'] = array(); 21 | while($row=mysqli_fetch_array($result)){ 22 | array_push($response['sales_orders_list'], $row); 23 | } 24 | $response['success']=1; 25 | $response['message']="Records retrieved successfully!"; 26 | }else{ 27 | $response['success']=0; 28 | $response['message']=$customer.":"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveSalesOrderWithDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM sales_order where sales_doc_no = '$sales_doc_no'"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | 19 | $response['sales_order'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['sales_order'], $row); 22 | } 23 | 24 | $response['success']=1; 25 | $response['message']="Records retrieved successfully!"; 26 | 27 | }else{ 28 | $response['success']=0; 29 | $response['message']="No records found!"; 30 | } 31 | echo json_encode($response); 32 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterSalesOrderWithOrderStatus.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | $sql = "SELECT * FROM sales_orders_list WHERE $string_condition 0"; 16 | $response = array(); 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)>0){ 19 | $response['sales_orders_list'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['sales_orders_list'], $row); 22 | } 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']=$string_condition; 28 | } 29 | echo json_encode($response); 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/updateExistingAccount.php: -------------------------------------------------------------------------------- 1 | connect_error) { 17 | die("Connection failed: " . $conn->connect_error); 18 | } 19 | 20 | $sql = "UPDATE emp_credentials SET emp_id = '$id', empUserName = '$user', empPassword = '$pass', auth_person = '$authPerson' where emp_id = '$id';"; 21 | $response = array(); 22 | if ($conn->query($sql) === TRUE) { 23 | $response['success']=1; 24 | $response['message']=$user."'s account Updated!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="Account Update Failed!"; 28 | } 29 | 30 | $conn->close(); 31 | echo json_encode($response) 32 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createEmployee.php: -------------------------------------------------------------------------------- 1 | connect_error) { 19 | die("Connection failed: " . $conn->connect_error); 20 | } 21 | 22 | $sql = "INSERT INTO employees VALUES (null, '$name','$address','$type', '$phone', '$dob', '$doj');"; 23 | 24 | $response = array(); 25 | 26 | if ($conn->query($sql) === TRUE) { 27 | $response['success']=1; 28 | $response['message']="Employee Added Successfully"; 29 | }else{ 30 | $response['success']=0; 31 | $response['message']="Employee Addition Failed"; 32 | } 33 | $conn->close(); 34 | echo json_encode($response) 35 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/checkLogin.php: -------------------------------------------------------------------------------- 1 | connect_error) { 15 | die("Connection failed: " . $conn->connect_error); 16 | } 17 | 18 | $sql = "SELECT * FROM emp_credentials WHERE empUserName = '$user' AND empPassword = '$pass';"; 19 | $result = $conn->query($sql); 20 | if(mysqli_num_rows($result)==1){ 21 | 22 | $row=mysqli_fetch_array($result) 23 | $response['emp_credentials'] = array(); 24 | array_push($response['emp_credentials'], $row); 25 | $response['success']=1; 26 | $response['message']="Login successful!"; 27 | 28 | }else{ 29 | $response['success']=0; 30 | $response['message']="Login failed!"; 31 | } 32 | 33 | $conn->close(); 34 | echo json_encode($response) 35 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterSalesOrderWithOneDate.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | $sql = "SELECT * FROM sales_orders_list where date_of_order = '$date_of_order1';"; 16 | $response = array(); 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)>0){ 19 | $response['sales_orders_list'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['sales_orders_list'], $row); 22 | } 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="No records found!"; 28 | } 29 | echo json_encode($response); 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveSalesOrderWithSalesDocument.php: -------------------------------------------------------------------------------- 1 | connect_error) { 14 | die("Connection failed: " . $conn->connect_error); 15 | } 16 | $sql = "SELECT * FROM sales_order where sales_doc_no = '$sales_document_number'"; 17 | $response = array(); 18 | $result = $conn->query($sql); 19 | if(mysqli_num_rows($result)>0){ 20 | $response['sales_order'] = array(); 21 | while($row=mysqli_fetch_array($result)){ 22 | array_push($response['sales_order'], $row); 23 | } 24 | $response['success']=1; 25 | $response['message']="Records retrieved successfully!"; 26 | }else{ 27 | $response['success']=0; 28 | $response['message']=$sales_document_number . ":"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveCurrentStock.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "select material_description, stock FROM materials, current_stock where materials.material_code = current_stock.material_code"; 15 | $response = array(); 16 | $result = $conn->query($sql); 17 | if(mysqli_num_rows($result)>0){ 18 | $response['current_stock'] = array(); 19 | while($row=mysqli_fetch_array($result)){ 20 | array_push($response['current_stock'], $row); 21 | } 22 | $response['success']=1; 23 | $response['message']="Records retrieved successfully!"; 24 | }else{ 25 | $response['success']=0; 26 | $response['message']="No records found!"; 27 | } 28 | echo json_encode($response); 29 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveUWC.php: -------------------------------------------------------------------------------- 1 | connect_error) { 16 | die("Connection failed: " . $conn->connect_error); 17 | } 18 | 19 | $sql = "SELECT * FROM customers where Customer_id = '$Customer_id'"; 20 | 21 | $response = array(); 22 | 23 | $result = $conn->query($sql); 24 | 25 | if(mysqli_num_rows($result)>0){ 26 | 27 | $response['customers'] = array(); 28 | while($row=mysqli_fetch_array($result)){ 29 | array_push($response['customers'], $row); 30 | } 31 | 32 | $response['success']=1; 33 | $response['message']="Records retrieved successfully!"; 34 | 35 | }else{ 36 | $response['success']=0; 37 | $response['message']="No records found!"; 38 | } 39 | echo json_encode($response); 40 | ?> -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_data_sync.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterSalesOrderWithSalesDocument.php: -------------------------------------------------------------------------------- 1 | connect_error) { 14 | die("Connection failed: " . $conn->connect_error); 15 | } 16 | $sql = "SELECT * FROM sales_orders_list where sales_doc_no = '$sales_document_number'"; 17 | $response = array(); 18 | $result = $conn->query($sql); 19 | if(mysqli_num_rows($result)>0){ 20 | $response['sales_orders_list'] = array(); 21 | while($row=mysqli_fetch_array($result)){ 22 | array_push($response['sales_orders_list'], $row); 23 | } 24 | $response['success']=1; 25 | $response['message']="Records retrieved successfully!"; 26 | }else{ 27 | $response['success']=0; 28 | $response['message']=$sales_document_number . ":"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveChartResultsJala.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | $jsql = "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Jalandhar')"; 14 | $jresponse = array(); 15 | $jresult = $conn->query($jsql); 16 | if(mysqli_num_rows($jresult)>0){ 17 | 18 | $jresponse['jalandhar_orders'] = array(); 19 | while($row=mysqli_fetch_array($lresult)){ 20 | array_push($jresponse['jalandhar_orders'], $row); 21 | } 22 | 23 | $jresponse['success']=1; 24 | $jresponse['message']="Records retrieved successfully!"; 25 | 26 | }else{ 27 | $jresponse['success']=0; 28 | $jresponse['message']="No records found!"; 29 | } 30 | echo json_encode($jresponse); 31 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_server.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveChartResultsAlla.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | 14 | $asql = "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Allahabad')"; 15 | $aresponse = array(); 16 | $aresult = $conn->query($asql); 17 | if(mysqli_num_rows($aresult)>0){ 18 | 19 | $aresponse['allahabad_orders'] = array(); 20 | while($row=mysqli_fetch_array($aresult)){ 21 | array_push($aresponse['allahabad_orders'], $row); 22 | } 23 | 24 | $aresponse['success']=1; 25 | $aresponse['message']="Records retrieved successfully!"; 26 | 27 | }else{ 28 | $aresponse['success']=0; 29 | $aresponse['message']="No records found!"; 30 | } 31 | echo json_encode($aresponse); 32 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveChartResultsLudh.php: -------------------------------------------------------------------------------- 1 | connect_error) { 10 | die("Connection failed: " . $conn->connect_error); 11 | } 12 | 13 | 14 | $lsql = "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Ludhiana')"; 15 | $lresponse = array(); 16 | $lresult = $conn->query($lsql); 17 | if(mysqli_num_rows($lresult)>0){ 18 | 19 | $lresponse['ludhiana_orders'] = array(); 20 | while($row=mysqli_fetch_array($lresult)){ 21 | array_push($lresponse['ludhiana_orders'], $row); 22 | } 23 | 24 | $lresponse['success']=1; 25 | $lresponse['message']="Records retrieved successfully!"; 26 | 27 | }else{ 28 | $lresponse['success']=0; 29 | $lresponse['message']="No records found!"; 30 | } 31 | echo json_encode($lresponse); 32 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createCustomer.php: -------------------------------------------------------------------------------- 1 | connect_error) { 18 | die("Connection failed: " . $conn->connect_error); 19 | } 20 | 21 | $sql = "INSERT INTO customers VALUES ('$customer_id', '$name','$address','$city', '$contact', '$gst_number');"; 22 | 23 | $response = array(); 24 | 25 | if ($conn->query($sql) === TRUE) { 26 | $response['success']=1; 27 | $response['message']=$name . "successfully added as a Customer!"; 28 | }else{ 29 | $response['success']=0; 30 | $response['message']="Customer Addition Failed"; 31 | } 32 | $conn->close(); 33 | echo json_encode($response) 34 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrievePurchaseOrderWithDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 14 | die("Connection failed: " . $conn->connect_error); 15 | } 16 | $sql = "SELECT * FROM purchase_orders_list where purchase_doc_no = '$purchase_document_number'"; 17 | $response = array(); 18 | $result = $conn->query($sql); 19 | if(mysqli_num_rows($result)>0){ 20 | $response['purchase_orders_list'] = array(); 21 | while($row=mysqli_fetch_array($result)){ 22 | array_push($response['purchase_orders_list'], $row); 23 | } 24 | $response['success']=1; 25 | $response['message']="Records retrieved successfully!"; 26 | }else{ 27 | $response['success']=0; 28 | $response['message']=$sales_document_number . ":"; 29 | } 30 | echo json_encode($response); 31 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifyMaterial.php: -------------------------------------------------------------------------------- 1 | connect_error) { 18 | die("Connection failed: " . $conn->connect_error); 19 | } 20 | 21 | $sql = "UPDATE materials set material_type = '$type', material_description = '$desc', dimensional_unit = '$du', cost_per_du = '$costperdu' WHERE material_code = '$mat_id'"; 22 | 23 | $response = array(); 24 | 25 | if ($conn->query($sql) === TRUE) { 26 | $response['success']=1; 27 | $response['message']="Material modified successfully!"; 28 | }else{ 29 | $response['success']=0; 30 | $response['message']="Material modification failed!"; 31 | } 32 | $conn->close(); 33 | echo json_encode($response) 34 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createPurchaseDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 19 | die("Connection failed: " . $conn->connect_error); 20 | } 21 | 22 | $sql = "INSERT INTO sales_orders_list VALUES ('$purchase_doc_no', '$seller','$date_of_order', '$status');"; 23 | 24 | $response = array(); 25 | if ($conn->query($sql) === TRUE) { 26 | $response['success']=1; 27 | $response['message']="Purchase Bill Generated Successfully"; 28 | }else{ 29 | $response['success']=0; 30 | $response['message']="Purchase Bill Generation Failed! Please try again!"; 31 | } 32 | $conn->close(); 33 | echo json_encode($response) 34 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterSalesOrderWithTwoDates.php: -------------------------------------------------------------------------------- 1 | connect_error) { 13 | die("Connection failed: " . $conn->connect_error); 14 | } 15 | $sql = "SELECT * FROM sales_orders_list where date_of_order BETWEEN '$date_of_order1' AND '$date_of_order2';"; 16 | $response = array(); 17 | $result = $conn->query($sql); 18 | if(mysqli_num_rows($result)>0){ 19 | $response['sales_orders_list'] = array(); 20 | while($row=mysqli_fetch_array($result)){ 21 | array_push($response['sales_orders_list'], $row); 22 | } 23 | $response['success']=1; 24 | $response['message']="Records retrieved successfully!"; 25 | }else{ 26 | $response['success']=0; 27 | $response['message']="No records found!"; 28 | } 29 | echo json_encode($response); 30 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/filterRetrieveSalesOrder.php: -------------------------------------------------------------------------------- 1 | connect_error) { 16 | die("Connection failed: " . $conn->connect_error); 17 | } 18 | $sql = "SELECT * FROM sales_orders_list;"; 19 | $response = array(); 20 | $result = $conn->query($sql); 21 | if(mysqli_num_rows($result)>0){ 22 | $response['sales_orders_list'] = array(); 23 | while($row=mysqli_fetch_array($result)){ 24 | array_push($response['sales_orders_list'], $row); 25 | } 26 | $response['success']=1; 27 | $response['message']="Records retrieved successfully!"; 28 | }else{ 29 | $response['success']=0; 30 | $response['message']="No records found!"; 31 | } 32 | echo json_encode($response); 33 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createSalesDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 20 | die("Connection failed: " . $conn->connect_error); 21 | } 22 | 23 | $sql = "INSERT INTO sales_orders_list VALUES ('$sales_doc_no', '$Customer','$date_of_order','$bill_price', '$status');"; 24 | 25 | $response = array(); 26 | if ($conn->query($sql) === TRUE) { 27 | $response['success']=1; 28 | $response['message']="Bill Generated Successfully"; 29 | }else{ 30 | $response['success']=0; 31 | $response['message']="Bill Generation Failed! Please try again!"; 32 | } 33 | $conn->close(); 34 | echo json_encode($response) 35 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifyCustomer.php: -------------------------------------------------------------------------------- 1 | connect_error) { 19 | die("Connection failed: " . $conn->connect_error); 20 | } 21 | 22 | $sql = "UPDATE customers set Name = '$name', Address = '$address', City = '$city', Contact = '$contact', GST_Number = '$gst_number' WHERE Customer_id = $customer_id"; 23 | 24 | $response = array(); 25 | 26 | if ($conn->query($sql) === TRUE) { 27 | $response['success']=1; 28 | $response['message']="Customer Updated Successfully"; 29 | }else{ 30 | $response['success']=0; 31 | $response['message']="Customer Updation Failed"; 32 | } 33 | $conn->close(); 34 | echo json_encode($response) 35 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifyEmployee.php: -------------------------------------------------------------------------------- 1 | connect_error) { 20 | die("Connection failed: " . $conn->connect_error); 21 | } 22 | 23 | $sql = "UPDATE employees SET emp_name = '$name', emp_address = '$address', emp_type = '$type', emp_phone = '$phone', dob = '$dob', doj = '$doj' WHERE emp_id = '$emp_id'"; 24 | 25 | $response = array(); 26 | 27 | if ($conn->query($sql) === TRUE) { 28 | $response['success']=1; 29 | $response['message']="Employee Updated Successfully"; 30 | }else{ 31 | $response['success']=0; 32 | $response['message']="Employee Update Failed"; 33 | } 34 | $conn->close(); 35 | echo json_encode($response) 36 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifySalesDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 17 | die("Connection failed: " . $conn->connect_error); 18 | } 19 | 20 | $sql = "UPDATE sales_orders_list SET sales_doc_no = '$sales_doc_no', Customer = '$customer_id', date_of_order = '$date_of_order', bill_price = '$price', order_status = 'Created' WHERE sales_doc_no = '$sales_doc_no'"; 21 | 22 | $response = array(); 23 | 24 | if ($conn->query($sql) === TRUE) { 25 | $response['success']=1; 26 | $response['message']="Sales Document Updated Successfully"; 27 | }else{ 28 | $response['success']=0; 29 | $response['message']="Sales Document Update Failed"; 30 | } 31 | $conn->close(); 32 | echo json_encode($response) 33 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifyPurchaseDoc.php: -------------------------------------------------------------------------------- 1 | connect_error) { 17 | die("Connection failed: " . $conn->connect_error); 18 | } 19 | 20 | $sql = "UPDATE purchase_orders_list SET purchase_doc_no = '$purchase_doc_no', s_id = '$seller_id', date_of_order = '$date_of_order', order_status = '$status' WHERE purchase_doc_no = '$purchase_doc_no'"; 21 | 22 | $response = array(); 23 | 24 | if ($conn->query($sql) === TRUE) { 25 | $response['success']=1; 26 | $response['message']="Purchase Document Updated Successfully"; 27 | }else{ 28 | $response['success']=0; 29 | $response['message']="Purchase Document Update Failed"; 30 | } 31 | $conn->close(); 32 | echo json_encode($response) 33 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 | 22 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/roundedbutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveEmployeeByDates.php: -------------------------------------------------------------------------------- 1 | connect_error) { 12 | die("Connection failed: " . $conn->connect_error); 13 | } 14 | $sql = "SELECT * FROM employees"; 15 | if (!isset($date_of_joining2)){ 16 | $sql .= " WHERE doj = '$date_of_joining1'"; 17 | } 18 | else{ 19 | $sql .= " WHERE doj BETWEEN '$date_of_joining1' AND '$date_of_joining2'"; 20 | } 21 | $sql .= ";"; 22 | $response = array(); 23 | $result = $conn->query($sql); 24 | if(mysqli_num_rows($result)>0){ 25 | $response['employees'] = array(); 26 | while($row=mysqli_fetch_array($result)){ 27 | array_push($response['employees'], $row); 28 | } 29 | $response['success']=1; 30 | $response['message']="Records retrieved successfully!"; 31 | }else{ 32 | $response['success']=0; 33 | $response['message']="No records found for dates: ".$date_of_joining1 ." - ". $date_of_joining2; 34 | } 35 | echo json_encode($response); 36 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveDataForMaterialReport.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | 14 | $response = array(); 15 | $querym = mysqli_query($con,"SELECT material_code FROM materials WHERE material_type = 'FG'"); 16 | $resultm = mysqli_fetch_array($querym); 17 | $response['mat_code'] = array(); 18 | $response['mat_desc'] = array(); 19 | $response['mat_quantity'] = array(); 20 | $response['mat_price'] = array(); 21 | while($row = mysqli_fetch_row($querym)){ 22 | $squery = mysqli_query($con,"select material_code, SUM(quantity), SUM(price) from sales_order where material_code = '$row[0]'"); 23 | while($item = mysqli_fetch_row($squery)){ 24 | $exquery = mysqli_query($con,"select material_description from materials where material_code = '$item[0]'"); 25 | $exrow = mysqli_fetch_row($exquery); 26 | if($item[2]!= 0){ 27 | $response['mat_code'] = $item[0]; 28 | $response['mat_desc'] = $exrow[0]; 29 | $response['mat_quantity'] = $item[1]; 30 | $response['mat_price'] = $item[2]; 31 | } 32 | } 33 | } 34 | echo json_encode($response); 35 | ?> -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 19 | 20 | 21 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FluentERP 2 | This is an Android application which covers the most basic modules of Enterprise Resource Planning viz. Sales&Distribution, Manufacturing, Material Management, Human Resource and Master Data.
3 | The vision is to make a scalable yet optimal application.
4 | *minSDKVersion* : 23
5 | *targetSDKVersion* : 27 6 | 7 | ## Backend 8 | PHP: Database Coonectivity, Crude Database Operations
9 | MySQL: RDBMS schema
10 | JSON: JSON Parsing used for retrieving and controlling data
11 | 12 | ## FrontEnd 13 | Android(Java and XML) 14 | 15 | ## Application Logo 16 | Netscape, Adobe Photoshop 17 | 18 | ## 3rd party libraries used 19 | 1. https://github.com/PhilJay/MPAndroidChart :- *Chart Analysis(Month wise and Region wise)*
20 | 2. https://github.com/mxn21/FlowingDrawer :- *Flowing Navigation Drawer* 21 | 22 | ### Inspiration 23 | While interning as an SAP-SD Intern, we decided to create an interface similar to that of SAP primarily for small-to-medium scale industries in cities like Ludhiana, Jalandhar, Allahabad etc. This project certainly has a lot of scope since it can be provided as a cheaper solution to the **Enterprise Resource Planning**. 24 | 25 | ### Reach-out! 26 | Feel free to contribute to the project!
27 | **Pull requests are always welcome!**
28 | For any suggestions or help about the source code of the project, leave an email at: jaspreetsinghtuli@gmail.com 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_applogo.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/splash_applogo.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/adapters/AutoFitGridLayoutManager.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.adapters; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.GridLayoutManager; 5 | import android.support.v7.widget.RecyclerView; 6 | 7 | public class AutoFitGridLayoutManager extends GridLayoutManager { 8 | 9 | private int columnWidth; 10 | private boolean columnWidthChanged = true; 11 | 12 | public AutoFitGridLayoutManager(Context context, int columnWidth) { 13 | super(context, 1); 14 | 15 | setColumnWidth(columnWidth); 16 | } 17 | 18 | public void setColumnWidth(int newColumnWidth) { 19 | if (newColumnWidth > 0 && newColumnWidth != columnWidth) { 20 | columnWidth = newColumnWidth; 21 | columnWidthChanged = true; 22 | } 23 | } 24 | 25 | @Override 26 | public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { 27 | if (columnWidthChanged && columnWidth > 0) { 28 | int totalSpace; 29 | if (getOrientation() == VERTICAL) { 30 | totalSpace = getWidth() - getPaddingRight() - getPaddingLeft(); 31 | } else { 32 | totalSpace = getHeight() - getPaddingTop() - getPaddingBottom(); 33 | } 34 | int spanCount = Math.max(1, totalSpace / columnWidth); 35 | setSpanCount(spanCount); 36 | columnWidthChanged = false; 37 | } 38 | super.onLayoutChildren(recycler, state); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_general.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 20 | 21 | 23 | 24 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_web_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/misc/AboutActivity.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.misc; 2 | import android.support.v7.app.AppCompatActivity; 3 | import android.os.Bundle; 4 | import android.support.v7.widget.Toolbar; 5 | import android.view.MenuItem; 6 | import android.view.Window; 7 | import android.view.WindowManager; 8 | import com.jstech.fluenterp.R; 9 | public class AboutActivity extends AppCompatActivity { 10 | 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_about); 15 | Window window = this.getWindow(); 16 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 17 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 18 | //noinspection deprecation 19 | window.setStatusBarColor(this.getResources().getColor(R.color.status_bar_colour)); 20 | Toolbar toolbar = findViewById(R.id.toolbarAbout); 21 | setSupportActionBar(toolbar); 22 | setTitle("About Activity"); 23 | if (getSupportActionBar() != null){ 24 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 25 | } 26 | } 27 | public boolean onOptionsItemSelected(MenuItem item) { 28 | if(item.getItemId() == android.R.id.home){ 29 | finish(); 30 | return true; 31 | } 32 | return super.onOptionsItemSelected(item); 33 | } 34 | 35 | @Override 36 | public void onBackPressed() { 37 | super.onBackPressed(); 38 | finish(); 39 | } 40 | } -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/misc/ServerActivity.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.misc; 2 | 3 | import android.support.v7.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | import android.support.v7.widget.Toolbar; 6 | import android.view.MenuItem; 7 | import android.view.Window; 8 | import android.view.WindowManager; 9 | 10 | import com.jstech.fluenterp.R; 11 | 12 | public class ServerActivity extends AppCompatActivity { 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.activity_server); 17 | Window window = this.getWindow(); 18 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 19 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 20 | //noinspection deprecation 21 | window.setStatusBarColor(this.getResources().getColor(R.color.status_bar_colour)); 22 | Toolbar toolbar = findViewById(R.id.toolbarServer); 23 | setSupportActionBar(toolbar); 24 | setTitle("Server"); 25 | if (getSupportActionBar() != null){ 26 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 27 | } 28 | } 29 | 30 | public boolean onOptionsItemSelected(MenuItem item) { 31 | if(item.getItemId() == android.R.id.home){ 32 | finish(); 33 | return true; 34 | } 35 | return super.onOptionsItemSelected(item); 36 | } 37 | 38 | @Override 39 | public void onBackPressed() { 40 | super.onBackPressed(); 41 | finish(); 42 | } 43 | } -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 27 5 | defaultConfig { 6 | applicationId "com.jstech.fluenterp" 7 | minSdkVersion 23 8 | targetSdkVersion 27 9 | versionCode 1 10 | versionName "1.0" 11 | multiDexEnabled true 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation fileTree(include: ['*.jar'], dir: 'libs') 24 | implementation 'com.mxn.soul:flowingdrawer-core:2.0.0' 25 | implementation 'com.nineoldandroids:library:2.4.0' 26 | implementation 'com.android.support:appcompat-v7:27.1.1' 27 | implementation 'com.android.support:support-v4:27.1.1' 28 | implementation 'com.android.support:design:27.1.1' 29 | implementation 'com.android.support.constraint:constraint-layout:1.1.3' 30 | implementation 'com.github.ViksaaSkool:AwesomeSplash:v1.0.0' 31 | implementation 'com.android.volley:volley:1.0.0' 32 | testImplementation 'junit:junit:4.12' 33 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 34 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 35 | implementation 'com.android.support:cardview-v7:27.1.1' 36 | implementation 'com.android.support:recyclerview-v7:27.1.1' 37 | implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4' 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/Seller.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class Seller { 4 | 5 | long sId; 6 | String sName; 7 | String sAddress; 8 | String sCity; 9 | String sGST; 10 | String sPhone; 11 | 12 | public Seller(){ 13 | 14 | } 15 | 16 | public Seller(long sId, String sName, String sAddress, String sCity, String sGST, String sPhone) { 17 | this.sId = sId; 18 | this.sName = sName; 19 | this.sAddress = sAddress; 20 | this.sCity = sCity; 21 | this.sGST = sGST; 22 | this.sPhone = sPhone; 23 | } 24 | 25 | public long getsId() { 26 | return sId; 27 | } 28 | 29 | public void setsId(long sId) { 30 | this.sId = sId; 31 | } 32 | 33 | public String getsName() { 34 | return sName; 35 | } 36 | 37 | public void setsName(String sName) { 38 | this.sName = sName; 39 | } 40 | 41 | public String getsAddress() { 42 | return sAddress; 43 | } 44 | 45 | public void setsAddress(String sAddress) { 46 | this.sAddress = sAddress; 47 | } 48 | 49 | public String getsCity() { 50 | return sCity; 51 | } 52 | 53 | public void setsCity(String sCity) { 54 | this.sCity = sCity; 55 | } 56 | 57 | public String getsGST() { 58 | return sGST; 59 | } 60 | 61 | public void setsGST(String sGST) { 62 | this.sGST = sGST; 63 | } 64 | 65 | public String getsPhone() { 66 | return sPhone; 67 | } 68 | 69 | public void setsPhone(String sPhone) { 70 | this.sPhone = sPhone; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_tcode_help.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 34 | 35 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/nav_header_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 22 | 23 | 29 | 30 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 18 | 19 | 20 | 24 | 31 | 32 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/recycler_view_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 16 | 22 | 28 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_display_materials_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/PurchaseOrder.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class PurchaseOrder { 4 | long purchaseDocNumber; 5 | int sellerNumber; 6 | String orderDate; 7 | String orderStatus; 8 | 9 | public PurchaseOrder(){ 10 | 11 | } 12 | 13 | public PurchaseOrder(long purchaseDocNumber, int sellerNumber, String orderDate, String orderStatus) { 14 | this.purchaseDocNumber = purchaseDocNumber; 15 | this.sellerNumber = sellerNumber; 16 | this.orderDate = orderDate; 17 | this.orderStatus = orderStatus; 18 | } 19 | 20 | public long getPurchaseDocNumber() { 21 | return purchaseDocNumber; 22 | } 23 | 24 | public void setPurchaseDocNumber(long purchaseDocNumber) { 25 | this.purchaseDocNumber = purchaseDocNumber; 26 | } 27 | 28 | public int getSellerNumber() { 29 | return sellerNumber; 30 | } 31 | 32 | public void setSellerNumber(int sellerNumber) { 33 | this.sellerNumber = sellerNumber; 34 | } 35 | 36 | public String getOrderDate() { 37 | return orderDate; 38 | } 39 | 40 | public void setOrderDate(String orderDate) { 41 | this.orderDate = orderDate; 42 | } 43 | 44 | public String getOrderStatus() { 45 | return orderStatus; 46 | } 47 | 48 | public void setOrderStatus(String orderStatus) { 49 | this.orderStatus = orderStatus; 50 | } 51 | 52 | @Override 53 | public String toString() { 54 | return "Purchase Document Number: "+purchaseDocNumber+"\n\n"+ 55 | "Seller: "+ sellerNumber+"\n\n"+ 56 | "Date of Order: "+ orderDate +"\n\n"+ 57 | "Order Status: "+ orderStatus +"\n\n"; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/WebViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp; 2 | 3 | import android.support.v7.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | import android.support.v7.widget.Toolbar; 6 | import android.view.MenuItem; 7 | import android.view.Window; 8 | import android.view.WindowManager; 9 | import android.webkit.WebView; 10 | import android.webkit.WebViewClient; 11 | 12 | public class WebViewActivity extends AppCompatActivity { 13 | 14 | 15 | WebView webView; 16 | String urlG; 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_web_view); 21 | urlG = getIntent().getExtras().getString("url"); 22 | Window window = this.getWindow(); 23 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 24 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 25 | window.setStatusBarColor(this.getResources().getColor(R.color.status_bar_colour)); 26 | Toolbar toolbar = findViewById(R.id.toolbarWebView); 27 | setSupportActionBar(toolbar); 28 | setTitle("PDF Viewer"); 29 | if (getSupportActionBar() != null){ 30 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 31 | } 32 | 33 | initWeb(); 34 | } 35 | 36 | void initWeb(){ 37 | webView = findViewById(R.id.webView); 38 | WebViewClient client = new WebViewClient(); 39 | webView.setWebViewClient(client); 40 | webView.getSettings().setJavaScriptEnabled(true); 41 | webView.loadUrl(urlG); 42 | } 43 | 44 | public boolean onOptionsItemSelected(MenuItem item) { 45 | if(item.getItemId() == android.R.id.home){ 46 | finish(); 47 | return true; 48 | } 49 | return super.onOptionsItemSelected(item); 50 | } 51 | 52 | @Override 53 | public void onBackPressed() { 54 | super.onBackPressed(); 55 | finish(); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/SalesOrder.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class SalesOrder { 4 | long salesDocNumber; 5 | int customerNumber; 6 | String orderDate; 7 | double orderPrice; 8 | String orderStatus; 9 | 10 | public SalesOrder(){ 11 | 12 | } 13 | 14 | public SalesOrder(long salesDocNumber, int customerNumber, String orderDate, double orderPrice, String orderStatus) { 15 | this.salesDocNumber = salesDocNumber; 16 | this.customerNumber = customerNumber; 17 | this.orderDate = orderDate; 18 | this.orderPrice = orderPrice; 19 | this.orderStatus = orderStatus; 20 | } 21 | 22 | public String getOrderStatus() { 23 | return orderStatus; 24 | } 25 | 26 | public void setOrderStatus(String orderStatus) { 27 | this.orderStatus = orderStatus; 28 | } 29 | 30 | public long getSalesDocNumber() { 31 | return salesDocNumber; 32 | } 33 | 34 | public void setSalesDocNumber(long salesDocNumber) { 35 | this.salesDocNumber = salesDocNumber; 36 | } 37 | 38 | public int getCustomerNumber() { 39 | return customerNumber; 40 | } 41 | 42 | public void setCustomerNumber(int customerNumber) { 43 | this.customerNumber = customerNumber; 44 | } 45 | 46 | public String getOrderDate() { 47 | return orderDate; 48 | } 49 | 50 | public void setOrderDate(String orderDate) { 51 | this.orderDate = orderDate; 52 | } 53 | 54 | public double getOrderPrice() { 55 | return orderPrice; 56 | } 57 | 58 | public void setOrderPrice(double orderPrice) { 59 | this.orderPrice = orderPrice; 60 | } 61 | 62 | @Override 63 | public String toString() { 64 | return "Sales Document Number: "+salesDocNumber+"\n\n"+ 65 | "Customer: "+ customerNumber+"\n\n"+ 66 | "Date of Order: "+ orderDate +"\n\n"+ 67 | "Price: "+ orderPrice +"\n\n"+ 68 | "Order Status: "+ orderStatus +"\n\n"; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/Material.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class Material { 4 | 5 | int materialCode; 6 | String materialType; 7 | String materialDescription; 8 | String dimensionalUnit; 9 | double costPerDu; 10 | 11 | public Material(int materialCode, String materialType, String materialDescription, String dimensionalUnit, double costPerDu) { 12 | this.materialCode = materialCode; 13 | this.materialType = materialType; 14 | this.materialDescription = materialDescription; 15 | this.dimensionalUnit = dimensionalUnit; 16 | this.costPerDu = costPerDu; 17 | } 18 | public Material() 19 | { 20 | 21 | } 22 | 23 | public int getMaterialCode() { 24 | return materialCode; 25 | } 26 | 27 | public void setMaterialCode(int materialCode) { 28 | this.materialCode = materialCode; 29 | } 30 | 31 | public String getMaterialType() { 32 | return materialType; 33 | } 34 | 35 | public void setMaterialType(String materialType) { 36 | this.materialType = materialType; 37 | } 38 | 39 | public String getMaterialDescription() { 40 | return materialDescription; 41 | } 42 | 43 | public void setMaterialDescription(String materialDescription) { 44 | this.materialDescription = materialDescription; 45 | } 46 | 47 | public String getDimensionalUnit() { 48 | return dimensionalUnit; 49 | } 50 | 51 | public void setDimensionalUnit(String dimensionalUnit) { 52 | this.dimensionalUnit = dimensionalUnit; 53 | } 54 | 55 | public double getCostPerDu() { 56 | return costPerDu; 57 | } 58 | 59 | public void setCostPerDu(double costPerDu) { 60 | this.costPerDu = costPerDu; 61 | } 62 | 63 | @Override 64 | public String toString() { 65 | return "Code: " + materialCode+"\n"+ 66 | "Type: "+materialType+"\n"+ 67 | "Description: "+materialDescription+"\n"+ 68 | "Unit: "+dimensionalUnit+"\n"+ 69 | "Cost per DU: "+costPerDu+"\n"; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/Customer.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class Customer { 4 | private int customerId; 5 | public String name; 6 | public String address; 7 | private String city; 8 | public int phone; 9 | private String gstNumber; 10 | 11 | public Customer() 12 | { 13 | 14 | } 15 | 16 | public Customer(int customerId, String name, String address, String city, int phone, String gstNumber) { 17 | this.customerId = customerId; 18 | this.name = name; 19 | this.address = address; 20 | this.city = city; 21 | this.phone = phone; 22 | this.gstNumber = gstNumber; 23 | } 24 | 25 | public int getCustomerId() { 26 | return customerId; 27 | } 28 | 29 | public void setCustomerId(int customerId) { 30 | this.customerId = customerId; 31 | } 32 | 33 | public String getName() { 34 | return name; 35 | } 36 | 37 | public void setName(String name) { 38 | this.name = name; 39 | } 40 | 41 | public String getAddress() { 42 | return address; 43 | } 44 | 45 | public void setAddress(String address) { 46 | this.address = address; 47 | } 48 | 49 | public String getCity() { 50 | return city; 51 | } 52 | 53 | public void setCity(String city) { 54 | this.city = city; 55 | } 56 | 57 | public int getPhone() { 58 | return phone; 59 | } 60 | 61 | public void setPhone(int phone) { 62 | this.phone = phone; 63 | } 64 | 65 | public String getGstNumber() { 66 | return gstNumber; 67 | } 68 | 69 | public void setGstNumber(String gstNumber) { 70 | this.gstNumber = gstNumber; 71 | } 72 | 73 | @Override 74 | public String toString() { 75 | return "Customer: " + getCustomerId() + "\n\n" + 76 | "Name: " + getName() + "\n\n" + 77 | "Address: " + getAddress() + "\n\n" + 78 | "City: " + getCity() + "\n\n" + 79 | "Contact: " + getPhone() + "\n\n" + 80 | "GST No.: " + getGstNumber(); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/createCustomerReport.php: -------------------------------------------------------------------------------- 1 | AddPage(); 13 | $pdf->SetLeftMargin(floatval(20)); 14 | $pdf->SetRightMargin(floatval(20)); 15 | $pdf->SetTopMargin(floatval(60)); 16 | //set font to arial, bold, 14pt 17 | $pdf->SetFont('Helvetica','B',16); 18 | $pdf->Cell(175 ,10,'',0,1);//end of line 19 | //Cell(width , height , text , border , end line , [align] ) 20 | $pdf->Cell(90 ,8,'P.S. Enterprises',0,1);//end of line 21 | 22 | //set font to arial, regular, 12pt 23 | $pdf->SetFont('Helvetica','',12); 24 | 25 | $pdf->Cell(90 ,8,'Industrial Area, Focal Point',0,0); 26 | $pdf->Cell(65 ,8,'',0,1);//end of line 27 | $pdf->Cell(90 ,8,'Ludhiana, Punjab, India',0,1); 28 | $pdf->Cell(90 ,8,'Phone +919914802110',0,1); 29 | $pdf->Cell(155,10,'',0,1);//end of line 30 | 31 | $pdf->SetFont('Helvetica','B',16); 32 | $pdf->Cell(175 ,8,'Customer-Wise Sales Analysis Report',0,1, 'C');//end of line 33 | $pdf->Cell(155 ,10,'',0,1);//end of line 34 | $pdf->Cell(155 ,10,'',0,1);//end of line 35 | 36 | //invoice contents 37 | $pdf->SetFont('Courier','B',14); 38 | $pdf->Cell(25,10,'Id',1,0,'C'); 39 | $pdf->Cell(90,10,'Name',1,0,'C'); 40 | $pdf->Cell(30,10,'City',1,0,'C'); 41 | $pdf->Cell(30,10,'Sales',1,1,'C'); 42 | 43 | $pdf->SetFont('Courier','',12); 44 | 45 | //Numbers are right-aligned so we give 'R' after new line parameter 46 | 47 | while($row = mysqli_fetch_row($queryc)){ 48 | $squery = mysqli_query($con,"select SUM(bill_price) from sales_orders_list where Customer = '$row[0]'"); 49 | while($item = mysqli_fetch_row($squery)){ 50 | if($item[0]!= 0){ 51 | $pdf->Cell(25 ,8,$row[0],1,0); 52 | $pdf->Cell(90 ,8,$row[1],1,0); 53 | $pdf->Cell(30 ,8,$row[2],1,0); 54 | $pdf->Cell(30 ,8,number_format($item[0]),1,1, 'R');} 55 | } 56 | } 57 | $pdf->Cell(150,5,'',0,1); 58 | 59 | $pdf->Output($reqN, 'I'); 60 | ?> -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/models/Employee.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.models; 2 | 3 | public class Employee { 4 | int empId; 5 | String empName; 6 | String empAddress; 7 | String empType; 8 | long empPhone; 9 | String dob; 10 | String doj; 11 | 12 | public Employee(){ 13 | 14 | } 15 | 16 | public Employee(int empId, String empName, String empAddress, String empType, long empPhone, String dob, String doj) { 17 | this.empId = empId; 18 | this.empName = empName; 19 | this.empAddress = empAddress; 20 | this.empType = empType; 21 | this.empPhone = empPhone; 22 | this.dob = dob; 23 | this.doj = doj; 24 | } 25 | 26 | public int getEmpId() { 27 | return empId; 28 | } 29 | 30 | public void setEmpId(int empId) { 31 | this.empId = empId; 32 | } 33 | 34 | public String getEmpName() { 35 | return empName; 36 | } 37 | 38 | public void setEmpName(String empName) { 39 | this.empName = empName; 40 | } 41 | 42 | public String getEmpAddress() { 43 | return empAddress; 44 | } 45 | 46 | public void setEmpAddress(String empAddress) { 47 | this.empAddress = empAddress; 48 | } 49 | 50 | public String getEmpType() { 51 | return empType; 52 | } 53 | 54 | public void setEmpType(String empType) { 55 | this.empType = empType; 56 | } 57 | 58 | public long getEmpPhone() { 59 | return empPhone; 60 | } 61 | 62 | public void setEmpPhone(long empPhone) { 63 | this.empPhone = empPhone; 64 | } 65 | 66 | public String getDob() { 67 | return dob; 68 | } 69 | 70 | public void setDob(String dob) { 71 | this.dob = dob; 72 | } 73 | 74 | public String getDoj() { 75 | return doj; 76 | } 77 | 78 | public void setDoj(String doj) { 79 | this.doj = doj; 80 | } 81 | 82 | @Override 83 | public String toString() { 84 | return getEmpId()+ " - " + getEmpName()+"\n" 85 | +"\nType: "+getEmpType()+"\n" 86 | +"\nPhone: "+getEmpPhone()+"\n" 87 | +"\nAddress: "+getEmpAddress()+"\n" 88 | +"\nDate of Birth: "+getDob()+"\n" 89 | +"\nDate of Joining: " +getDoj(); 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_current_stock.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 22 | 23 | 24 | 25 | 33 | 34 | 39 | 40 | 50 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/createMaterialReport.php: -------------------------------------------------------------------------------- 1 | AddPage(); 13 | $pdf->SetLeftMargin(floatval(25)); 14 | $pdf->SetRightMargin(floatval(25)); 15 | $pdf->SetTopMargin(floatval(60)); 16 | //set font to arial, bold, 14pt 17 | $pdf->SetFont('Helvetica','B',16); 18 | $pdf->Cell(155 ,10,'',0,1);//end of line 19 | //Cell(width , height , text , border , end line , [align] ) 20 | $pdf->Cell(90 ,8,'P.S. Enterprises',0,1);//end of line 21 | 22 | //set font to arial, regular, 12pt 23 | $pdf->SetFont('Helvetica','',12); 24 | 25 | $pdf->Cell(90 ,8,'Industrial Area, Focal Point',0,0); 26 | $pdf->Cell(65 ,8,'',0,1);//end of line 27 | $pdf->Cell(90 ,8,'Ludhiana, Punjab, India',0,1); 28 | $pdf->Cell(90 ,8,'Phone +919914802110',0,1); 29 | $pdf->Cell(155,10,'',0,1);//end of line 30 | 31 | $pdf->SetFont('Helvetica','B',16); 32 | $pdf->Cell(165 ,8,'Material-Wise Sales Analysis Report',0,1, 'C');//end of line 33 | $pdf->Cell(155 ,10,'',0,1);//end of line 34 | $pdf->Cell(155 ,10,'',0,1);//end of line 35 | 36 | //invoice contents 37 | $pdf->SetFont('Courier','B',14); 38 | $pdf->Cell(20,10,'Code',1,0,'C'); 39 | $pdf->Cell(90,10,'Material',1,0,'C'); 40 | $pdf->Cell(25,10,'Quantity',1,0,'C'); 41 | $pdf->Cell(30,10,'Price',1,1,'C'); 42 | 43 | $pdf->SetFont('Courier','',12); 44 | 45 | //Numbers are right-aligned so we give 'R' after new line parameter 46 | 47 | while($row = mysqli_fetch_row($querym)){ 48 | $squery = mysqli_query($con,"select material_code, SUM(quantity), SUM(price) from sales_order where material_code = '$row[0]'"); 49 | while($item = mysqli_fetch_row($squery)){ 50 | $exquery = mysqli_query($con,"select material_description from materials where material_code = '$item[0]'"); 51 | $exrow = mysqli_fetch_row($exquery); 52 | if($item[2]!= 0){ 53 | $pdf->Cell(20 ,8,$item[0],1,0); 54 | $pdf->Cell(90 ,8,$exrow[0],1,0); 55 | $pdf->Cell(25 ,8,number_format($item[1]),1,0); 56 | $pdf->Cell(30 ,8,number_format($item[2]),1,1, 'R');} 57 | } 58 | } 59 | 60 | $pdf->Cell(150,5,'',0,1); 61 | 62 | $pdf->Output($reqN, 'I'); 63 | ?> -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/retrieveChartResults.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $conn->connect_error); 12 | } 13 | 14 | 15 | $lsql = "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Ludhiana')"; 16 | $jsql .= "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Jalandhar')"; 17 | $asql .= "SELECT SUM(bill_price) FROM `sales_orders_list` WHERE `Customer` IN (SELECT `Customer_id` FROM `customers` WHERE `City` = 'Allahabad')"; 18 | $tsql = "SELECT SUM(bill_price) FROM `sales_orders_list`"; 19 | $response = array(); 20 | $lresult = $conn->query($lsql); 21 | if(mysqli_num_rows($lresult)>0){ 22 | 23 | $response['ludhiana_orders'] = array(); 24 | while($row=mysqli_fetch_array($lresult)){ 25 | array_push($response['ludhiana_orders'], $row); 26 | } 27 | $response['success']=1; 28 | $response['message']="Records retrieved successfully!"; 29 | 30 | }else{ 31 | $response['success']=0; 32 | $response['message']="No records found!"; 33 | } 34 | $jresult = $conn->query($jsql); 35 | if(mysqli_num_rows($jresult)>0){ 36 | 37 | $response['jalandhar_orders'] = array(); 38 | while($row=mysqli_fetch_array($jresult)){ 39 | array_push($response['jalandhar_orders'], $row); 40 | } 41 | $response['success']=1; 42 | $response['message']="Records retrieved successfully!"; 43 | 44 | }else{ 45 | $response['success']=0; 46 | $response['message']="No records found!"; 47 | } 48 | $aresult = $conn->query($asql); 49 | if(mysqli_num_rows($aresult)>0){ 50 | 51 | $response['allahabad_orders'] = array(); 52 | while($row=mysqli_fetch_array($aresult)){ 53 | array_push($response['allahabad_orders'], $row); 54 | } 55 | $response['success']=1; 56 | $response['message']="Records retrieved successfully!"; 57 | 58 | }else{ 59 | $response['success']=0; 60 | $response['message']="No records found!"; 61 | } 62 | $tresult = $conn->query($tsql); 63 | if(mysqli_num_rows($tresult)>0){ 64 | 65 | $response['total_orders'] = array(); 66 | while($row=mysqli_fetch_array($tresult)){ 67 | array_push($response['total_orders'], $row); 68 | } 69 | $response['success']=1; 70 | $response['message']="Records retrieved successfully!"; 71 | 72 | }else{ 73 | $response['success']=0; 74 | $response['message']="No records found!"; 75 | } 76 | 77 | echo json_encode($response); 78 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/cards_layout_purchase_order_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 22 | 23 | 24 | 29 | 35 | 41 | 42 | 43 | 48 | 54 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/adapters/MainActivityRecyclerViewAdapter.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.adapters; 2 | 3 | import android.content.Context; 4 | import android.graphics.Color; 5 | import android.support.annotation.NonNull; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.widget.ImageView; 11 | import android.widget.RelativeLayout; 12 | import android.widget.TextView; 13 | 14 | import com.jstech.fluenterp.models.DataModel; 15 | 16 | import java.util.ArrayList; 17 | import com.jstech.fluenterp.R; 18 | 19 | public class MainActivityRecyclerViewAdapter extends RecyclerView.Adapter { 20 | 21 | ArrayList mValues; 22 | Context mContext; 23 | protected ItemListener mListener; 24 | 25 | public MainActivityRecyclerViewAdapter(Context context, ArrayList values, ItemListener itemListener) { 26 | mValues = values; 27 | mContext = context; 28 | mListener=itemListener; 29 | } 30 | 31 | public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 32 | 33 | public TextView textView; 34 | public ImageView imageView; 35 | public RelativeLayout relativeLayout; 36 | DataModel item; 37 | 38 | public ViewHolder(View v) { 39 | super(v); 40 | v.setOnClickListener(this); 41 | textView = v.findViewById(R.id.textView); 42 | imageView = v.findViewById(R.id.imageView); 43 | relativeLayout = v.findViewById(R.id.relativeLayout); 44 | } 45 | 46 | public void setData(DataModel item) { 47 | this.item = item; 48 | textView.setText(item.text); 49 | imageView.setImageResource(item.drawable); 50 | relativeLayout.setBackgroundColor(Color.parseColor(item.color)); 51 | } 52 | 53 | 54 | @Override 55 | public void onClick(View view) { 56 | if (mListener != null) { 57 | mListener.onItemClick(item); 58 | } 59 | } 60 | } 61 | 62 | @Override 63 | public MainActivityRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 64 | View view = LayoutInflater.from(mContext).inflate(R.layout.recycler_view_item, parent, false); 65 | return new ViewHolder(view); 66 | } 67 | 68 | @Override 69 | public void onBindViewHolder(@NonNull ViewHolder holder, int position) { 70 | holder.setData((DataModel) mValues.get(position)); 71 | } 72 | 73 | /*@Override 74 | public void onBindViewHolder(ViewHolder Vholder, int position) { 75 | Vholder.setData(mValues.get(position)); 76 | }*/ 77 | 78 | @Override 79 | public int getItemCount() { 80 | return mValues.size(); 81 | } 82 | 83 | public interface ItemListener { 84 | void onItemClick(DataModel item); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/adapters/AdapterDisplayMaterials.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.adapters; 2 | import android.support.annotation.NonNull; 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.TextView; 8 | import com.jstech.fluenterp.R; 9 | import com.jstech.fluenterp.models.Material; 10 | import java.util.ArrayList; 11 | 12 | public class AdapterDisplayMaterials extends RecyclerView.Adapter { 13 | 14 | ArrayList dataSet; 15 | 16 | public AdapterDisplayMaterials(ArrayList data){ 17 | this.dataSet = data; 18 | } 19 | 20 | @NonNull 21 | @Override 22 | public MaterialViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 23 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_material, parent, false); 24 | AdapterDisplayMaterials.MaterialViewHolder myViewHolder = new AdapterDisplayMaterials.MaterialViewHolder(view); 25 | return myViewHolder; 26 | } 27 | 28 | @Override 29 | public void onBindViewHolder(@NonNull MaterialViewHolder holder, int position) { 30 | 31 | TextView textViewMaterialId = holder.textViewMatId; 32 | TextView textViewMaterialType = holder.textViewMatType; 33 | TextView textViewMaterialDescription = holder.textViewMatDesc; 34 | TextView textViewMaterialDU = holder.textViewMatDu; 35 | TextView textViewMaterialCost = holder.textViewMatCost; 36 | textViewMaterialId.setText(String.valueOf(dataSet.get(position).getMaterialCode())); 37 | textViewMaterialType.setText(String.valueOf(dataSet.get(position).getMaterialType())); 38 | textViewMaterialDescription.setText(String.valueOf(dataSet.get(position).getMaterialDescription())); 39 | textViewMaterialDU.setText(String.valueOf(dataSet.get(position).getDimensionalUnit())); 40 | textViewMaterialCost.setText(String.valueOf(dataSet.get(position).getCostPerDu())); 41 | } 42 | 43 | @Override 44 | public int getItemCount() { 45 | return dataSet.size(); 46 | } 47 | 48 | public class MaterialViewHolder extends RecyclerView.ViewHolder{ 49 | TextView textViewMatId; 50 | TextView textViewMatDesc; 51 | TextView textViewMatType; 52 | TextView textViewMatDu; 53 | TextView textViewMatCost; 54 | public MaterialViewHolder(View itemView) { 55 | super(itemView); 56 | this.textViewMatId = itemView.findViewById(R.id.textViewMaterialId); 57 | this.textViewMatType = itemView.findViewById(R.id.textViewMaterialType); 58 | this.textViewMatDesc = itemView.findViewById(R.id.textViewMaterialDescription); 59 | this.textViewMatDu = itemView.findViewById(R.id.textViewMaterialDu); 60 | this.textViewMatCost = itemView.findViewById(R.id.textViewMaterialCost); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_display_employee_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 43 | 44 | 47 | 56 | 57 | 58 | 67 | 68 | 74 | 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp; 2 | 3 | import android.content.Intent; 4 | import android.provider.SyncStateContract; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.os.Bundle; 7 | import android.view.Window; 8 | import android.view.WindowManager; 9 | 10 | import com.daimajia.androidanimations.library.Techniques; 11 | import com.viksaa.sssplash.lib.activity.AwesomeSplash; 12 | import com.viksaa.sssplash.lib.cnst.Flags; 13 | import com.viksaa.sssplash.lib.model.ConfigSplash; 14 | 15 | public class SplashActivity extends AwesomeSplash { 16 | 17 | @Override 18 | public void initSplash(ConfigSplash configSplash) { 19 | 20 | Window window = this.getWindow(); 21 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 22 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 23 | //noinspection deprecation 24 | window.setStatusBarColor(this.getResources().getColor(R.color.status_bar_colour)); 25 | 26 | //Customize Circular Reveal 27 | configSplash.setBackgroundColor(R.color.splashback); //any color you want form colors.xml 28 | configSplash.setAnimCircularRevealDuration(1500); //int ms 29 | configSplash.setRevealFlagX(Flags.REVEAL_RIGHT); //or Flags.REVEAL_LEFT 30 | configSplash.setRevealFlagY(Flags.REVEAL_TOP); //or Flags.REVEAL_TOP 31 | 32 | //Choose LOGO OR PATH; if you don't provide String value for path it's logo by default 33 | 34 | //Customize Logo 35 | configSplash.setLogoSplash(R.drawable.splash_applogo); //or any other drawable 36 | configSplash.setAnimLogoSplashDuration(1500); //int ms 37 | configSplash.setAnimLogoSplashTechnique(Techniques.Bounce); //choose one form Techniques (ref: https://github.com/daimajia/AndroidViewAnimations) 38 | 39 | 40 | //Customize Path 41 | // configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO); //set path String 42 | configSplash.setOriginalHeight(400); //in relation to your svg (path) resource 43 | configSplash.setOriginalWidth(400); //in relation to your svg (path) resource 44 | configSplash.setAnimPathStrokeDrawingDuration(2000); 45 | configSplash.setPathSplashStrokeSize(3); //I advise value be <5 46 | configSplash.setPathSplashStrokeColor(R.color.Wheat); //any color you want form colors.xml 47 | configSplash.setAnimPathFillingDuration(2000); 48 | configSplash.setPathSplashFillColor(R.color.Wheat); //path object filling color 49 | 50 | 51 | //Customize Title 52 | configSplash.setTitleSplash("FluentERP"); //change your app name here 53 | configSplash.setTitleTextColor(R.color.card_parent_background); 54 | configSplash.setTitleTextSize(35f); //float value 55 | configSplash.setAnimTitleDuration(2000); 56 | configSplash.setAnimTitleTechnique(Techniques.FlipInX); 57 | configSplash.setTitleFont("fonts/Roboto.ttf"); 58 | } 59 | 60 | @Override 61 | public void animationsFinished() { 62 | Intent intent = new Intent(SplashActivity.this, MainActivity.class); 63 | startActivity(intent); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Logo Files/FluentERP.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml -------------------------------------------------------------------------------- /PHP-DBConnectivity/createPurchaseOrder.php: -------------------------------------------------------------------------------- 1 | connect_error) { 24 | die("Connection failed: " . $conn->connect_error); 25 | } 26 | 27 | if (isset($quantity0, $quantity1, $quantity2, $quantity3)) { 28 | $sql = "INSERT INTO purchase_order VALUES "; 29 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code0','$quantity0'),"; 30 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code1','$quantity1'),"; 31 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code2','$quantity2'),"; 32 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code3','$quantity3');"; 33 | } 34 | else if (isset($quantity0) && !isset($quantity1) && !isset($quantity2) && !isset($quantity3)) { 35 | $sql = "INSERT INTO purchase_order VALUES ('$purchase_doc_no', '$seller_id','$material_code0','$quantity0');"; 36 | } 37 | else if (isset($quantity1)&& !isset($quantity0) && !isset($quantity2) && !isset($quantity3)) { 38 | $sql = "INSERT INTO purchase_order VALUES ('$purchase_doc_no', '$seller_id','$material_code1','$quantity1');"; 39 | } 40 | else if (isset($quantity2)&& !isset($quantity0) && !isset($quantity1) && !isset($quantity3)) { 41 | $sql = "INSERT INTO purchase_order VALUES ('$purchase_doc_no', '$seller_id','$material_code2','$quantity2');"; 42 | } 43 | else if (isset($quantity3)&& !isset($quantity0) && !isset($quantity1) && !isset($quantity2)) { 44 | $sql = "INSERT INTO purchase_order VALUES ('$purchase_doc_no', '$seller_id','$material_code3','$quantity3');"; 45 | } 46 | else if (isset($quantity0, $quantity1) && !isset($quantity2) && !isset($quantity3)) { 47 | $sql = "INSERT INTO purchase_order VALUES "; 48 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code0','$quantity0'),"; 49 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code1','$quantity1');"; 50 | } 51 | else if (isset($quantity0, $quantity1, $quantity2) && !isset($quantity3)) { 52 | $sql = "INSERT INTO purchase_order VALUES "; 53 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code0','$quantity0'),"; 54 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code1','$quantity1'),"; 55 | $sql .= "('$purchase_doc_no', '$seller_id','$material_code2','$quantity2');"; 56 | } 57 | 58 | $response = array(); 59 | 60 | if ($conn->query($sql) === TRUE) { 61 | $response['success']=1; 62 | $response['message']="Purchase Order Created with number: " . $purchase_doc_no; 63 | }else{ 64 | $response['success']=0; 65 | $response['message']=$conn->error; 66 | } 67 | $conn->close(); 68 | echo json_encode($response) 69 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_change_purchase_order_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 39 | 40 | 51 | 52 | 55 | 67 | 68 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_check_order_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 39 | 40 | 51 | 52 | 55 | 67 | 68 | 69 | 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/createPriceReport.php: -------------------------------------------------------------------------------- 1 | query($sql1); 10 | $count1 = mysqli_num_rows($result1); 11 | $sql2 = "SELECT bill_price FROM sales_orders_list where bill_price BETWEEN 50000 AND 100000"; 12 | $result2 = $conn->query($sql2); 13 | $count2 = mysqli_num_rows($result2); 14 | $sql3 = "SELECT bill_price FROM sales_orders_list where bill_price BETWEEN 100000 AND 150000"; 15 | $result3 = $conn->query($sql3); 16 | $count3 = mysqli_num_rows($result3); 17 | $sql4 = "SELECT bill_price FROM sales_orders_list where bill_price BETWEEN 150000 AND 200000"; 18 | $result4 = $conn->query($sql4); 19 | $count4 = mysqli_num_rows($result4); 20 | $sql5 = "SELECT bill_price FROM sales_orders_list where bill_price BETWEEN 200000 AND 250000"; 21 | $result5 = $conn->query($sql5); 22 | $count5 = mysqli_num_rows($result5); 23 | $sql6 = "SELECT bill_price FROM sales_orders_list where bill_price BETWEEN 250000 AND 300000"; 24 | $result6 = $conn->query($sql6); 25 | $count6 = mysqli_num_rows($result6); 26 | $sql7 = "SELECT bill_price FROM sales_orders_list where bill_price > 300000"; 27 | $result7 = $conn->query($sql7); 28 | $count7 = mysqli_num_rows($result7); 29 | 30 | $pdf = new FPDF('P','mm','A4'); 31 | $pdf->AddPage(); 32 | $pdf->SetLeftMargin(floatval(40)); 33 | $pdf->SetRightMargin(floatval(40)); 34 | $pdf->SetTopMargin(floatval(60)); 35 | //set font to arial, bold, 14pt 36 | $pdf->SetFont('Helvetica','B',16); 37 | $pdf->Cell(175 ,10,'',0,1);//end of line 38 | //Cell(width , height , text , border , end line , [align] ) 39 | $pdf->Cell(90 ,8,'P.S. Enterprises',0,1);//end of line 40 | 41 | //set font to arial, regular, 12pt 42 | $pdf->SetFont('Helvetica','',12); 43 | 44 | $pdf->Cell(90 ,8,'Industrial Area, Focal Point',0,0); 45 | $pdf->Cell(65 ,8,'',0,1);//end of line 46 | $pdf->Cell(90 ,8,'Ludhiana, Punjab, India',0,1); 47 | $pdf->Cell(90 ,8,'Phone +919914802110',0,1); 48 | $pdf->Cell(155,10,'',0,1);//end of line 49 | 50 | $pdf->SetFont('Helvetica','B',16); 51 | $pdf->Cell(130 ,8,'Range of Prices Sales Analysis Report',0,1, 'C');//end of line 52 | $pdf->Cell(155 ,10,'',0,1);//end of line 53 | $pdf->Cell(155 ,10,'',0,1);//end of line 54 | 55 | //invoice contents 56 | $pdf->SetFont('Courier','B',14); 57 | $pdf->Cell(90,10,'Range',1,0,'C'); 58 | $pdf->Cell(40,10,'Number of Sales',1,1,'C'); 59 | 60 | $pdf->SetFont('Courier','',12); 61 | 62 | //Numbers are right-aligned so we give 'R' after new line parameter 63 | 64 | 65 | $pdf->Cell(80 ,8,'Less than 50,000',1,0); 66 | $pdf->Cell(50 ,8,$count1,1,1); 67 | $pdf->Cell(80 ,8,'50,000 - 1,00,000',1,0); 68 | $pdf->Cell(50 ,8,$count2,1,1); 69 | $pdf->Cell(80 ,8,'1,00,000 - 1,50,000',1,0); 70 | $pdf->Cell(50 ,8,$count3,1,1); 71 | $pdf->Cell(80 ,8,'1,50,000 - 2,00,000',1,0); 72 | $pdf->Cell(50 ,8,$count4,1,1); 73 | $pdf->Cell(80 ,8,'2,00,000 - 2,50,000',1,0); 74 | $pdf->Cell(50 ,8,$count5,1,1); 75 | $pdf->Cell(80 ,8,'2,50,000 - 3,00,000',1,0); 76 | $pdf->Cell(50 ,8,$count6,1,1); 77 | $pdf->Cell(80 ,8,'More than 3,00,000',1,0); 78 | $pdf->Cell(50 ,8,$count7,1,1); 79 | $pdf->Cell(135,5,'',0,1); 80 | 81 | $pdf->Output($reqN, 'I'); 82 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/createSalesOrder.php: -------------------------------------------------------------------------------- 1 | connect_error) { 31 | die("Connection failed: " . $conn->connect_error); 32 | } 33 | 34 | if (isset($quantity0, $quantity1, $quantity2, $quantity3)) { 35 | $sql = "INSERT INTO sales_order VALUES "; 36 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 37 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1'),"; 38 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2'),"; 39 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code3','$quantity3', '$price3');"; 40 | } 41 | else if (isset($quantity0) && !isset($quantity1) && !isset($quantity2) && !isset($quantity3)) { 42 | $sql = "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0');"; 43 | } 44 | else if (isset($quantity1)&& !isset($quantity0) && !isset($quantity2) && !isset($quantity3)) { 45 | $sql = "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1');"; 46 | } 47 | else if (isset($quantity2)&& !isset($quantity0) && !isset($quantity1) && !isset($quantity3)) { 48 | $sql = "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2');"; 49 | } 50 | else if (isset($quantity3)&& !isset($quantity0) && !isset($quantity1) && !isset($quantity2)) { 51 | $sql = "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code3','$quantity3', '$price3');"; 52 | } 53 | else if (isset($quantity0, $quantity1) && !isset($quantity2) && !isset($quantity3)) { 54 | $sql = "INSERT INTO sales_order VALUES "; 55 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 56 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1');"; 57 | } 58 | else if (isset($quantity0, $quantity1, $quantity2) && !isset($quantity3)) { 59 | $sql = "INSERT INTO sales_order VALUES "; 60 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 61 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1'),"; 62 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2');"; 63 | } 64 | 65 | $response = array(); 66 | 67 | if ($conn->query($sql) === TRUE) { 68 | $response['success']=1; 69 | $response['message']="Sales Order Created with number: " . $sales_doc_no; 70 | }else{ 71 | $response['success']=0; 72 | $response['message']=$conn->error; 73 | } 74 | $conn->close(); 75 | echo json_encode($response) 76 | ?> -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_display_sellers.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 45 | 46 | 50 | 62 | 63 | 64 | 74 | 75 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /PHP-DBConnectivity/createInvoice.php: -------------------------------------------------------------------------------- 1 | AddPage(); 16 | $pdf->SetLeftMargin(floatval(30)); 17 | $pdf->SetRightMargin(floatval(30)); 18 | $pdf->SetTopMargin(floatval(60)); 19 | //set font to arial, bold, 14pt 20 | $pdf->SetFont('Helvetica','B',16); 21 | $pdf->Cell(150 ,5,'INVOICE',0,1, 'C'); 22 | $pdf->Cell(155 ,10,'',0,1);//end of line 23 | $pdf->Cell(155 ,10,'',0,1);//end of line 24 | 25 | //Cell(width , height , text , border , end line , [align] ) 26 | $pdf->Cell(90 ,8,'P.S. Enterprises',0,1);//end of line 27 | 28 | //set font to arial, regular, 12pt 29 | $pdf->SetFont('Helvetica','',12); 30 | 31 | $pdf->Cell(90 ,8,'Industrial Area, Focal Point',0,0); 32 | $pdf->Cell(65 ,8,'',0,1);//end of line 33 | 34 | $pdf->Cell(90 ,8,'Ludhiana, Punjab, India',0,0); 35 | $pdf->Cell(25 ,8,'Date',0,0); 36 | $pdf->Cell(40 ,8,$result['date_of_order'],0,1);//end of line 37 | 38 | $pdf->Cell(90 ,8,'Phone +919914802110',0,0); 39 | $pdf->Cell(25 ,8,'Invoice #',0,0); 40 | $pdf->Cell(40 ,8,$result['sales_doc_no'],0,1);//end of line 41 | 42 | $pdf->Cell(90 ,8,'Fax +911615046210',0,0); 43 | $pdf->Cell(25 ,8,'Customer ID',0,0); 44 | $pdf->Cell(40 ,8,$result['Customer'],0,1);//end of line 45 | 46 | //make a dummy empty cell as a vertical spacer 47 | $pdf->Cell(155,10,'',0,1);//end of line 48 | 49 | 50 | $pdf->Cell(10,5,'Bill To ->',0,1); 51 | 52 | //add dummy cell at beginning of each line for indentation 53 | $pdf->Cell(10,8,'',0,0); 54 | $pdf->Cell(90,8,$resultC['Name'],0,1); 55 | 56 | $pdf->Cell(10,8,'',0,0); 57 | $pdf->Cell(90,8,$resultC['Address'],0,1); 58 | 59 | $pdf->Cell(10,8,'',0,0); 60 | $pdf->Cell(90,8,$resultC['City'],0,1); 61 | 62 | $pdf->Cell(10,8,'',0,0); 63 | $pdf->Cell(90,8,$resultC['Contact'],0,1); 64 | 65 | //make a dummy empty cell as a vertical spacer 66 | $pdf->Cell(155,10,'',0,1);//end of line 67 | 68 | //invoice contents 69 | $pdf->SetFont('Courier','B',14); 70 | 71 | $pdf->Cell(90,10,'Material Description',1,0,'C'); 72 | $pdf->Cell(27,10,'Quantity',1,'C'); 73 | $pdf->Cell(38,10,'Amount',1,1, 'C');//end of line 74 | 75 | $pdf->SetFont('Courier','',12); 76 | 77 | //Numbers are right-aligned so we give 'R' after new line parameter 78 | 79 | while($row = mysqli_fetch_row($querySO)){ 80 | $mquery = mysqli_query($con,"select material_description from materials where material_code = '$row[0]'"); 81 | while($item = mysqli_fetch_row($mquery)){ 82 | $pdf->Cell(90 ,8,$item[0],1,0); 83 | $pdf->Cell(27 ,8,number_format($row[1]),1,0); 84 | $pdf->Cell(38 ,8,number_format($row[2]),1,1,'R');//end of line 85 | } 86 | } 87 | 88 | $pdf->Cell(150,5,'',0,1); 89 | 90 | $pdf->Cell(90,8,'',0,0); 91 | $pdf->Cell(27,8,'Total Due',0,0); 92 | $pdf->Cell(11,8,'Rs. ',1,0); 93 | $pdf->Cell(27,8,number_format($result['bill_price']),1,1,'R');//end of line 94 | 95 | $pdf->Output($reqN, 'I'); 96 | ?> -------------------------------------------------------------------------------- /PHP-DBConnectivity/modifySalesOrder.php: -------------------------------------------------------------------------------- 1 | connect_error) { 27 | die("Connection failed: " . $conn->connect_error); 28 | } 29 | 30 | $sql = "DELETE FROM sales_order where sales_doc_no = '$sales_doc_no';" 31 | 32 | if ($quantity0!='nil' && $quantity1!='nil' && $quantity2!='nil' && $quantity3!='nil')) { 33 | $sql .= "INSERT INTO sales_order VALUES "; 34 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 35 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1'),"; 36 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2'),"; 37 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code3','$quantity3', '$price3');"; 38 | } 39 | else if ($quantity0!='nil' && $quantity1=='nil' && $quantity2=='nil' && $quantity3=='nil')) { 40 | $sql .= "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0');"; 41 | } 42 | else if ($quantity0=='nil' && $quantity1!='nil' && $quantity2=='nil' && $quantity3=='nil')) { 43 | $sql .= "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1');"; 44 | } 45 | else if ($quantity0=='nil' && $quantity1=='nil' && $quantity2!='nil' && $quantity3=='nil')) { 46 | $sql .= "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2');"; 47 | } 48 | else if ($quantity0=='nil' && $quantity1=='nil' && $quantity2=='nil' && $quantity3!='nil')) { 49 | $sql .= "INSERT INTO sales_order VALUES ('$sales_doc_no', '$Customer_id','$material_code3','$quantity3', '$price3');"; 50 | } 51 | else if ($quantity0!='nil' && $quantity1!='nil' && $quantity2=='nil' && $quantity3=='nil')) { 52 | $sql .= "INSERT INTO sales_order VALUES "; 53 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 54 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1');"; 55 | } 56 | else if ($quantity0!='nil' && $quantity1!='nil' && $quantity2!='nil' && $quantity3=='nil')) { 57 | $sql .= "INSERT INTO sales_order VALUES "; 58 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code0','$quantity0', '$price0'),"; 59 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code1','$quantity1', '$price1'),"; 60 | $sql .= "('$sales_doc_no', '$Customer_id','$material_code2','$quantity2', '$price2');"; 61 | } 62 | 63 | 64 | 65 | $response = array(); 66 | 67 | if ($conn->query($sql) === TRUE) { 68 | $response['success']=1; 69 | $response['message']="Sales Order Updated Successfully"; 70 | }else{ 71 | $response['success']=0; 72 | $response['message']="Sales Order Update Failed"; 73 | } 74 | $conn->close(); 75 | echo json_encode($response) 76 | ?> -------------------------------------------------------------------------------- /app/src/main/java/com/jstech/fluenterp/misc/AppCompatPreferenceActivity.java: -------------------------------------------------------------------------------- 1 | package com.jstech.fluenterp.misc; 2 | 3 | import android.content.res.Configuration; 4 | import android.os.Bundle; 5 | import android.preference.PreferenceActivity; 6 | import android.support.annotation.LayoutRes; 7 | import android.support.annotation.Nullable; 8 | import android.support.v7.app.ActionBar; 9 | import android.support.v7.app.AppCompatDelegate; 10 | import android.support.v7.widget.Toolbar; 11 | import android.view.MenuInflater; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | 15 | /** 16 | * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls 17 | * to be used with AppCompat. 18 | */ 19 | public abstract class AppCompatPreferenceActivity extends PreferenceActivity { 20 | 21 | private AppCompatDelegate mDelegate; 22 | 23 | @Override 24 | protected void onCreate(Bundle savedInstanceState) { 25 | getDelegate().installViewFactory(); 26 | getDelegate().onCreate(savedInstanceState); 27 | super.onCreate(savedInstanceState); 28 | } 29 | 30 | @Override 31 | protected void onPostCreate(Bundle savedInstanceState) { 32 | super.onPostCreate(savedInstanceState); 33 | getDelegate().onPostCreate(savedInstanceState); 34 | } 35 | 36 | public ActionBar getSupportActionBar() { 37 | return getDelegate().getSupportActionBar(); 38 | } 39 | 40 | public void setSupportActionBar(@Nullable Toolbar toolbar) { 41 | getDelegate().setSupportActionBar(toolbar); 42 | } 43 | 44 | @Override 45 | public MenuInflater getMenuInflater() { 46 | return getDelegate().getMenuInflater(); 47 | } 48 | 49 | @Override 50 | public void setContentView(@LayoutRes int layoutResID) { 51 | getDelegate().setContentView(layoutResID); 52 | } 53 | 54 | @Override 55 | public void setContentView(View view) { 56 | getDelegate().setContentView(view); 57 | } 58 | 59 | @Override 60 | public void setContentView(View view, ViewGroup.LayoutParams params) { 61 | getDelegate().setContentView(view, params); 62 | } 63 | 64 | @Override 65 | public void addContentView(View view, ViewGroup.LayoutParams params) { 66 | getDelegate().addContentView(view, params); 67 | } 68 | 69 | @Override 70 | protected void onPostResume() { 71 | super.onPostResume(); 72 | getDelegate().onPostResume(); 73 | } 74 | 75 | @Override 76 | protected void onTitleChanged(CharSequence title, int color) { 77 | super.onTitleChanged(title, color); 78 | getDelegate().setTitle(title); 79 | } 80 | 81 | @Override 82 | public void onConfigurationChanged(Configuration newConfig) { 83 | super.onConfigurationChanged(newConfig); 84 | getDelegate().onConfigurationChanged(newConfig); 85 | } 86 | 87 | @Override 88 | protected void onStop() { 89 | super.onStop(); 90 | getDelegate().onStop(); 91 | } 92 | 93 | @Override 94 | protected void onDestroy() { 95 | super.onDestroy(); 96 | getDelegate().onDestroy(); 97 | } 98 | 99 | public void invalidateOptionsMenu() { 100 | getDelegate().invalidateOptionsMenu(); 101 | } 102 | 103 | private AppCompatDelegate getDelegate() { 104 | if (mDelegate == null) { 105 | mDelegate = AppCompatDelegate.create(this, null); 106 | } 107 | return mDelegate; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_graphical_analysis.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 33 | 34 | 43 | 44 | 49 | 55 | 56 | 57 | 58 | 67 | 68 | 73 | 74 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_customer_display.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | 38 | 39 | 42 | 49 | 50 | 51 | 57 | 58 |