Esempio n. 1
0
 function init()
 {
     parent::init();
     $designer_cat = $this->add('xepan\\commerce\\Model_Designer_Image_Category');
     $designer_cat->addCondition('is_library', true);
     $cat_crud = $this->add('xepan\\base\\CRUD', ['entity_name' => 'Library Category'], 'designer_category', ['view/designer/backend-designer-category-grid']);
     $cat_crud->setModel($designer_cat, ['name']);
     $cat_crud->grid->addQuickSearch(['name']);
     $designer_image = $this->add('xepan\\commerce\\Model_Designer_Images');
     $designer_image->addExpression('library_category')->set($designer_image->refSQL('designer_category_id')->fieldQuery('is_library'));
     $designer_image->addCondition('library_category', true);
     $category_id = $this->app->stickyGET('category_id');
     $view = $this->add('View', null, 'category_name');
     $view->set('No Category');
     if ($category_id) {
         $designer_image->addCondition('designer_category_id', $category_id);
         $view_cat = $this->add('xepan\\commerce\\Model_Designer_Image_Category')->addCondition('id', $category_id);
         $view_cat->tryloadAny();
         $view->set($view_cat['name'] ?: 'No Category');
     }
     $image_crud = $this->add('xepan\\base\\CRUD', ['entity_name' => 'Images'], 'designer_category_images', ['view/designer/backend-designer-images-grid']);
     $image_crud->setModel($designer_image);
     $image_crud->grid->addQuickSearch(['designer_category_id', 'description']);
     $image_url = $this->app->url(null, ['cut_object' => $image_crud->name]);
     $view_url = $this->app->url(null, ['cut_object' => $view->name]);
     $cat_crud->on('click', 'a.category-image-filter', function ($js, $data) use($cat_crud, $image_crud, $image_url, $view, $view_url) {
         return [$view->js()->reload(['category_id' => $data['id']], null, $view_url), $image_crud->js()->reload(['category_id' => $data['id']], null, $image_url)];
     });
     $view->js('click', [$image_crud->js()->reload(['category_id' => ""], null, $image_url), $view->js()->reload(['category_id' => ""], null, $view_url)])->_selector('.do-remove-category');
 }
Esempio n. 2
0
 function init()
 {
     parent::init();
     $tnc = $this->add('xepan\\commerce\\Model_TNC');
     $crud = $this->add('xepan\\hr\\CRUD', null, null, ['view/tnc/grid']);
     if ($crud->isEditing()) {
         $crud->form->setLayout('view\\form\\tnc');
     }
     $crud->setModel($tnc);
     $crud->grid->addQuickSearch(['name']);
     $crud->grid->addPaginator(25);
     $crud->add('xepan\\base\\Controller_Avatar');
     $crud->add('xepan\\base\\Controller_MultiDelete');
     $g = $crud->grid;
     $g->addHook('formatRow', function ($g) {
         $g->current_row_html['content'] = $g->model['content'];
     });
     $this->app->stickyGET('tnc_id');
     $vp = $this->add('VirtualPage');
     $vp->set(function ($p) {
         $tnc_m = $p->add('xepan\\commerce\\Model_TNC')->load($_GET['tnc_id']);
         $p->add('View')->setHTML($tnc_m['content']);
     });
     $g->on('click', '.do-view-tnc-detail', function ($js, $data) use($vp) {
         return $js->univ()->frameURL("TERMS AND CONDITIONS", $this->api->url($vp->getURL(), ['tnc_id' => $data['id']]));
     });
 }
Esempio n. 3
0
 function init()
 {
     parent::init();
     /*Shipping Rules*/
     $shipping_rule = $this->add('xepan\\commerce\\Model_ShippingRule');
     $crud_shipping_rule = $this->add('xepan\\hr\\CRUD', null, null, ['view\\tax\\shippingrule']);
     //,null,'shippingrule',['view\tax\shippingrule']);
     $crud_shipping_rule->setModel($shipping_rule, ['country_id', 'country', 'state_id', 'state', 'name', 'based_on']);
     $crud_shipping_rule->grid->addPaginator(50);
     $crud_shipping_rule->grid->addQuickSearch(['name']);
     $country_id = $this->app->stickyGET('country_id');
     if ($country_id) {
         $field_state = $crud_shipping_rule->form->getElement('state_id');
         $field_state->getModel()->addCondition('country_id', $country_id);
     }
     if ($crud_shipping_rule->isEditing()) {
         $form = $crud_shipping_rule->form;
         $field_country = $crud_shipping_rule->form->getElement('country_id');
         $field_country->js('change', $form->js()->atk4_form('reloadField', 'state_id', [$this->app->url(), 'country_id' => $field_country->js()->val()]));
     }
     $crud_shipping_rule->grid->add('VirtualPage')->addColumn('Rules')->set(function ($page) {
         $shipping_rule_id = $_GET[$page->short_name . '_id'];
         $shipping_rule = $page->add('xepan\\commerce\\Model_ShippingRuleRow');
         $shipping_rule->addCondition('shipping_rule_id', $shipping_rule_id);
         $crud_shipping_rule = $page->add('xepan\\base\\CRUD', null, null, ['view\\tax\\shippingrulerow']);
         $crud_shipping_rule->setModel($shipping_rule);
         $crud_shipping_rule->grid->addPaginator(50);
         $crud_shipping_rule->grid->addQuickSearch(['shipping_rule']);
     });
 }
Esempio n. 4
0
 function init()
 {
     parent::init();
     $category = $this->add('xepan\\commerce\\Model_FreelancerCategory');
     $crud = $this->add('xepan\\hr\\CRUD');
     $crud->setModel($category);
 }
Esempio n. 5
0
 function init()
 {
     parent::init();
     $credit_model = $this->add('xepan\\commerce\\Model_Credit');
     $crud = $this->add('xepan\\hr\\CRUD');
     $crud->setModel($credit_model, ['customer_id', 'name', 'amount', 'type'], ['customer', 'amount', 'name']);
 }
Esempio n. 6
0
 function init()
 {
     parent::init();
     $credit_model = $this->add('xepan\\commerce\\Model_Credit');
     $crud = $this->add('xepan\\hr\\CRUD', null, null, ['view\\customer\\credit']);
     $crud->setModel($credit_model, ['customer_id', 'name', 'amount', 'type'], ['customer', 'amount', 'name', 'type']);
     $crud->add('xepan\\base\\Controller_MultiDelete');
 }
Esempio n. 7
0
 function init()
 {
     parent::init();
     $round_amount_standard = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['round_amount_standard' => 'DropDown'], 'config_key' => 'COMMERCE_TAX_AND_ROUND_AMOUNT_CONFIG', 'application' => 'commerce']);
     $round_amount_standard->add('xepan\\hr\\Controller_ACL');
     $round_amount_standard->tryLoadAny();
     $form = $this->add('Form');
     $form->setModel($round_amount_standard);
     $default_round_standard = $form->getElement('round_amount_standard')->setValueList(['None' => 'None', 'Standard' => 'Standard', 'Up' => 'Up', 'Down' => 'Down'])->set($round_amount_standard['round_amount_standard']);
     $form->addSubmit('Save')->addClass('btn btn-primary');
     if ($form->isSubmitted()) {
         $form->save();
         $round_amount_standard->app->employee->addActivity("Round Amount Standard : '" . $round_amount_standard['round_amount_standard'] . "' successfully updated for rounding amount in any voucher or bill or invoice", null, null, null, null, "xepan_commerce_amountstandard")->notifyWhoCan(' ', ' ', $round_amount_standard);
         $form->js(null, $form->js()->reload())->univ()->successMessage('Rounding Amount Standard Updated')->execute();
     }
 }
Esempio n. 8
0
 function init()
 {
     parent::init();
     $config_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['font_family' => 'text'], 'config_key' => 'COMMERCE_DESIGNER_TOOL_FONT_FAMILY', 'application' => 'commerce']);
     $config_m->add('xepan\\hr\\Controller_ACL');
     $config_m->tryLoadAny();
     $this->add('View')->set('Enter comma seperated font family with no space');
     $form = $this->add('Form');
     $form->setModel($config_m, ['font_family']);
     $form->addSubmit('Save')->addClass('btn btn-primary');
     if ($form->isSubmitted()) {
         $form->save();
         $form->js(null, $form->js()->reload())->univ()->successMessage('Saved')->execute();
     }
     // Custom font upload
     $font_model = $this->add('xepan\\commerce\\Model_DesignerFont');
     $crud = $this->add('xepan\\hr\\CRUD');
     $crud->setModel($font_model);
 }
Esempio n. 9
0
 function init()
 {
     parent::init();
     $cf_model = $this->add('xepan\\commerce\\Model_Item_CustomField');
     $cf_model->setOrder('id', 'desc');
     $crud = $this->add('xepan\\hr\\CRUD', 'null', null, ['view/item/customfield']);
     if ($crud->isEditing()) {
         $crud->form->setLayout('view\\form\\customfield');
     }
     $crud->setModel($cf_model, ['name', 'display_type', 'sequence_order', 'is_filterable', 'value']);
     $crud->grid->addPaginator(25);
     $frm = $crud->grid->addQuickSearch(['name']);
     $frm_drop = $frm->addField('DropDown', 'display_type')->setValueList(['Line' => 'Line', 'DropDown' => 'DropDown', 'Color' => 'Color'])->setEmptyText('Display Type');
     $frm_drop->js('change', $frm->js()->submit());
     $frm->addHook('applyFilter', function ($frm, $m) {
         if ($frm['customfield_id']) {
             $m->addCondition('customfield_id', $frm['customfield_id']);
         }
     });
 }
Esempio n. 10
0
 function init()
 {
     parent::init();
     $specification = $this->add('xepan\\commerce\\Model_Item_Specification');
     $crud = $this->add('xepan\\hr\\CRUD', 'null', null, ['view/item/specification']);
     if ($crud->isEditing('add')) {
         if ($emp_id = $this->app->employee->id) {
             $specification->addCondition('created_by_id', $emp_id);
         }
     }
     $crud->setModel($specification, ['name', 'display_type', 'sequence_order', 'is_filterable', 'is_system']);
     $crud->grid->addPaginator(25);
     $frm = $crud->grid->addQuickSearch(['name']);
     $frm_drop = $frm->addField('DropDown', 'display_type')->setValueList(['Line' => 'Line', 'DropDown' => 'DropDown', 'Color' => 'Color'])->setEmptyText('Display Type');
     $frm_drop->js('change', $frm->js()->submit());
     $frm->addHook('applyFilter', function ($frm, $m) {
         if ($frm['specification_id']) {
             $m->addCondition('specification_id', $frm['specification_id']);
         }
     });
 }
Esempio n. 11
0
 function init()
 {
     parent::init();
     // $crud =$this->app->layout->add('xepan\base\CRUD');
     $crud = $this->add('xepan\\base\\CRUD', ['allow_add' => false], null, ['view/payment/grid']);
     $btn = $crud->grid->addButton('Update')->addClass('btn btn-primary');
     $crud->setModel('xepan\\commerce\\PaymentGateway', array('is_active', 'name', 'processing', 'gateway_image_id'));
     $crud->grid->add('VirtualPage')->addColumn('Update_data')->set(function ($page) {
         $id = $_GET[$page->short_name . '_id'];
         $payment_gateway = $page->add('xepan/commerce/Model_PaymentGateway')->load($id);
         $form = $page->add('Form');
         $fields = json_decode($payment_gateway['default_parameters'], true);
         $values = json_decode($payment_gateway['parameters'], true);
         foreach ($fields as $field => $value) {
             if (is_array($value)) {
                 $form->addField('DropDown', $field)->setValueList($value)->set($values[$field]);
             } else {
                 $form->addField('line', $field)->set($values[$field]);
             }
         }
         $form->addSubmit('Update');
         if ($form->isSubmitted()) {
             $fields = json_decode($payment_gateway['default_parameters'], true);
             foreach ($fields as $field => $value) {
                 if (is_array($value)) {
                     $fields[$field] = $value[$form[$field]];
                 } else {
                     $fields[$field] = $form[$field];
                 }
             }
             $payment_gateway['parameters'] = json_encode($fields);
             $payment_gateway->save();
             $form->js(null, $form->js()->reload())->univ()->successMessage('Update Information')->execute();
         }
     });
     //update all Paymentgateway with there default parameters
     if ($btn->isClicked()) {
         $gateway = new GatewayFactory();
         //Get Omnipay Gateway
         $payment_gateway = $gateway->getSupportedGateways();
         //Save in SQL Model
         foreach ($payment_gateway as $gateway) {
             //tryload  PaymentGateway Model with name
             $pg_model = $this->add('xepan/commerce/Model_PaymentGateway');
             $pg_model->addCondition('name', $gateway);
             $pg_model->tryLoadAny();
             try {
                 //create OmniPay Object
                 $gateway_factory = GatewayFactory::create($gateway);
                 $pg_model['default_parameters'] = $gateway_factory->getDefaultParameters();
                 //getDefault Params
                 $pg_model['processing'] = $pg_model['processing'] ?: "OffSite";
                 $pg_model->saveAndUnload();
             } catch (\Exception $e) {
                 // throw $e;
             }
         }
         //xepan payment gateway
         foreach ($this->xepan_custom_gateway as $gateway_name) {
             $pg_model = $this->add('xepan/commerce/Model_PaymentGateway');
             $pg_model->addCondition('name', $gateway_name);
             $pg_model->tryLoadAny();
             try {
                 //create OmniPay Object
                 $gatewayfactory = new GatewayFactory();
                 $gateway_factory = $gatewayfactory->create($gateway_name);
                 $pg_model['default_parameters'] = $gateway_factory->getDefaultParameters();
                 //getDefault Params
                 $pg_model['processing'] = $pg_model['processing'] ?: "OffSite";
                 $pg_model->saveAndUnload();
             } catch (\Exception $e) {
                 throw $e;
             }
         }
         $crud->grid->js()->reload()->execute();
     }
     $crud->grid->addPaginator(10);
     $crud->grid->addQuickSearch(['name']);
 }
Esempio n. 12
0
 function init()
 {
     parent::init();
     /*
     	GETTING VALUES FROM CONFIG
     */
     $q_layout = $this->app->epan->config->getConfig('QUOTATIONLAYOUT');
     $so_layout = $this->app->epan->config->getConfig('SALESORDERLAYOUT');
     $si_layout = $this->app->epan->config->getConfig('SALESINVOICELAYOUT');
     $po_layout = $this->app->epan->config->getConfig('PURCHASEORDERLAYOUT');
     $pi_layout = $this->app->epan->config->getConfig('PURCHASEINVOICELAYOUT');
     $c_layout = $this->app->epan->config->getConfig('CHALLANLAYOUT');
     $dq_layout = $this->app->epan->config->getConfig('QUOTATIONDETAILLAYOUT');
     $dso_layout = $this->app->epan->config->getConfig('SALESORDERDETAILLAYOUT');
     $dsi_layout = $this->app->epan->config->getConfig('SALESINVOICEDETAILLAYOUT');
     $dpo_layout = $this->app->epan->config->getConfig('PURCHASEORDERDETAILLAYOUT');
     $dpi_layout = $this->app->epan->config->getConfig('PURCHASEINVOICEDETAILLAYOUT');
     $chalan_detail_layout = $this->app->epan->config->getConfig('CHALLANDETAILLAYOUT');
     /*
     	DECLARING FORM FOR SETTING LAYOUTS
     */
     /*=========== START QUOTATIONS LAYOUT CONFIG =============================*/
     $quotation_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'QUOTATION_LAYOUT', 'application' => 'commerce']);
     $quotation_m->add('xepan\\hr\\Controller_ACL');
     $quotation_m->tryLoadAny();
     $quotation_form = $this->add('Form', null, 'quotation');
     $quotation_form->setModel($quotation_m);
     $quotation_form->getElement('master')->set($quotation_form['master']);
     $quotation_form->getElement('detail')->set($quotation_form['detail']);
     $save = $quotation_form->addSubmit('Save')->addClass('btn btn-primary');
     $reset = $quotation_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($quotation_form->isSubmitted()) {
         if ($quotation_form->isClicked($save)) {
             $quotation_form->save();
             $quotation_m->app->employee->addActivity("Quotation Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $quotation_m);
             // $this->app->epan->config->setConfig('QUOTATIONLAYOUT',$quotation_form['quotation_layout'],'commerce');
             // $this->app->epan->config->setConfig('QUOTATIONDETAILLAYOUT',$quotation_form['quotation_detail_layout'],'commerce');
             return $quotation_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($quotation_form->isClicked($reset)) {
             $qtemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-master-quotation.html"));
             // $this->app->epan->config->setConfig('QUOTATIONLAYOUT',$qtemp,'commerce');
             $qtemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-print-detail.html"));
             $quotation_m['master'] = $qtemp;
             $quotation_m['detail'] = $qtemp1;
             $quotation_m->save();
             // $this->app->epan->config->setConfig('QUOTATIONDETAILLAYOUT',$qtemp1,'commerce');
             $quotation_m->app->employee->addActivity("Quotation Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $quotation_m);
             return $quotation_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
     /*=========== End QUOTATIONS LAYOUT CONFIG =============================*/
     /*=========== SRART SALE ORDER LAYOUT CONFIG =============================*/
     $salesorder_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['from_email' => 'Dropdown', 'subject' => 'line', 'body' => 'xepan\\base\\RichText', 'master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'SALESORDER_LAYOUT', 'application' => 'commerce']);
     $salesorder_m->add('xepan\\hr\\Controller_ACL');
     $salesorder_m->tryLoadAny();
     $sales_order_form = $this->add('Form', null, 'salesorder');
     $sales_order_form->setModel($salesorder_m);
     $sales_order_form->getElement('from_email')->set($salesorder_m['from_email'])->setModel('xepan\\communication\\Model_Communication_EmailSetting', ['name']);
     $sales_order_form->getElement('subject')->set($salesorder_m['subject']);
     $sales_order_form->getElement('body')->set($salesorder_m['body'])->setFieldHint('{$contact},{$first_name},{$last_name},{$name},{$user},{$emails_str},{$contacts_str},{$organization},{$post},{$address},{$city},{$state},{$pin_code},{$country},{$created_at},{$billing_address},{$billing_pincode},{$billing_city},{$billing_state},{$billing_country},{$shipping_address},{$shipping_city},{$shipping_pincode},{$shipping_state},{$shipping_country},{$search_string},{$document_no},{$related_qsp_master},{$total_amount},{$gross_amount},{$discount_amount},{$net_amount},{$net_amount_self_currency},{$round_amount},{$exchange_rate},{$narration},{$tnc},{$tnc_text}');
     $sales_order_form->getElement('master')->set($salesorder_m['master']);
     $sales_order_form->getElement('detail')->set($salesorder_m['detail']);
     // $salesorder_subject= $sales_order_config->getConfig('SALES_ORDER_SUBJECT_ONLINE');
     // $salesorder_body= $sales_order_config->getConfig('SALES_ORDER_BODY_ONLINE');
     // $salesorder_from_email= $sales_order_config->getConfig('SALES_ORDER_FROM_EMAIL_ONLINE');
     // $sales_order_form->addField('Dropdown','from_email')->set($salesorder_from_email)->setModel('xepan\communication\Model_Communication_EmailSetting',['name']);
     // $sales_order_form->addField('line','subject')->set($salesorder_subject);
     // $sales_order_form->addField('xepan\base\RichText','body')->set($salesorder_body)->setFieldHint('{$contact},{$first_name},{$last_name},{$name},{$user},{$emails_str},{$contacts_str},{$organization},{$post},{$address},{$city},{$state},{$pin_code},{$country},{$created_at},{$billing_address},{$billing_pincode},{$billing_city},{$billing_state},{$billing_country},{$shipping_address},{$shipping_city},{$shipping_pincode},{$shipping_state},{$shipping_country},{$search_string},{$document_no},{$related_qsp_master},{$total_amount},{$gross_amount},{$discount_amount},{$net_amount},{$net_amount_self_currency},{$round_amount},{$exchange_rate},{$narration},{$tnc},{$tnc_text}');
     // $sales_order_form->addField('xepan\base\RichText','sales_order_layout')->set($so_layout);
     // $sales_order_form->addField('xepan\base\RichText','sales_order_detail_layout')->set($dso_layout);
     $so_save = $sales_order_form->addSubmit('Save')->addClass('btn btn-primary');
     $so_reset = $sales_order_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($sales_order_form->isSubmitted()) {
         if ($sales_order_form->isClicked($so_save)) {
             $sales_order_form->save();
             // $sales_order_config->setConfig('SALES_ORDER_FROM_EMAIL_ONLINE',$sales_order_form['from_email'],'commerce');
             // $sales_order_config->setConfig('SALES_ORDER_SUBJECT_ONLINE',$sales_order_form['subject'],'commerce');
             // $sales_order_config->setConfig('SALES_ORDER_BODY_ONLINE',$sales_order_form['body'],'commerce');
             // $this->app->epan->config->setConfig('SALESORDERLAYOUT',$sales_order_form['sales_order_layout'],'commerce');
             // $this->app->epan->config->setConfig('SALESORDERDETAILLAYOUT',$sales_order_form['sales_order_detail_layout'],'commerce');
             $salesorder_m->app->employee->addActivity("Sales Order Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $salesorder_m);
             return $sales_order_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($sales_order_form->isClicked($so_reset)) {
             $sotemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-master-salesorder.html"));
             // $this->app->epan->config->setConfig('SALESORDERLAYOUT',$sotemp,'commerce');
             $sotemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-print-detail.html"));
             // $this->app->epan->config->setConfig('SALESORDERDETAILLAYOUT',$sotemp1,'commerce');
             $salesorder_m['master'] = $sotemp;
             $salesorder_m['detail'] = $sotemp1;
             $salesorder_m->save();
             $salesorder_m->app->employee->addActivity("Sales Order Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $salesorder_m);
             return $sales_order_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
     /*=========== END SALE ORDER LAYOUT CONFIG =============================*/
     /*=========== START SALE INVOICE LAYOUT CONFIG =============================*/
     $salesinvoice_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['from_email' => 'Dropdown', 'subject' => 'Line', 'body' => 'xepan\\base\\RichText', 'master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'SALESINVOICE_LAYOUT', 'application' => 'commerce']);
     $salesinvoice_m->add('xepan\\hr\\Controller_ACL');
     $salesinvoice_m->tryLoadAny();
     $sales_invoice_form = $this->add('Form', null, 'salesinvoice');
     $sales_invoice_form->setModel($salesinvoice_m);
     $sales_invoice_form->getElement('from_email')->set($salesinvoice_m['from_email'])->setModel('xepan\\communication\\Model_Communication_EmailSetting', ['name']);
     $sales_invoice_form->getElement('subject')->set($salesinvoice_m['subject']);
     $sales_invoice_form->getElement('body')->set($salesinvoice_m['body'])->setFieldHint('{$contact},{$first_name},{$last_name},{$name},{$user},{$emails_str},{$contacts_str},{$organization},{$post},{$address},{$city},{$state},{$pin_code},{$country},{$created_at},{$billing_address},{$billing_pincode},{$billing_city},{$billing_state},{$billing_country},{$shipping_address},{$shipping_city},{$shipping_pincode},{$shipping_state},{$shipping_country},{$search_string},{$document_no},{$related_qsp_master},{$total_amount},{$gross_amount},{$discount_amount},{$net_amount},{$net_amount_self_currency},{$round_amount},{$exchange_rate},{$narration},{$tnc},{$tnc_text},{$customer_pan_no},{$customer_tin_no},{$order_no},{$order_date},{$total_amount}');
     $sales_invoice_form->getElement('master')->set($salesinvoice_m['master']);
     $sales_invoice_form->getElement('detail')->set($salesinvoice_m['detail']);
     // $sales_invoice_config = $this->app->epan->config;
     // $salesinvoice_subject= $sales_invoice_config->getConfig('SALES_INVOICE_SUBJECT_ONLINE');
     // $salesinvoice_body= $sales_invoice_config->getConfig('SALES_INVOICE_BODY_ONLINE');
     // $salesinvoice_from_email= $sales_invoice_config->getConfig('SALES_INVOICE_FROM_EMAIL_ONLINE');
     // $sales_invoice_form->addField('Dropdown','from_email')->set($salesinvoice_from_email)->setModel('xepan\communication\Model_Communication_EmailSetting',['name']);
     // $sales_invoice_form->addField('line','subject')->set($salesinvoice_subject);
     // $sales_invoice_form->addField('xepan\base\RichText','body')->set($salesinvoice_body)->setFieldHint('{$contact},{$first_name},{$last_name},{$name},{$user},{$emails_str},{$contacts_str},{$organization},{$post},{$address},{$city},{$state},{$pin_code},{$country},{$created_at},{$billing_address},{$billing_pincode},{$billing_city},{$billing_state},{$billing_country},{$shipping_address},{$shipping_city},{$shipping_pincode},{$shipping_state},{$shipping_country},{$search_string},{$document_no},{$related_qsp_master},{$total_amount},{$gross_amount},{$discount_amount},{$net_amount},{$net_amount_self_currency},{$round_amount},{$exchange_rate},{$narration},{$tnc},{$tnc_text},{$customer_pan_no},{$customer_tin_no},{$order_no},{$order_date},{$total_amount}');
     // $sales_invoice_form->addField('xepan\base\RichText','sales_invoice_layout')->set($si_layout);
     // $sales_invoice_form->addField('xepan\base\RichText','sales_invoice_detail_layout')->set($dsi_layout);
     $si_save = $sales_invoice_form->addSubmit('Save')->addClass('btn btn-primary');
     $si_reset = $sales_invoice_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($sales_invoice_form->isSubmitted()) {
         if ($sales_invoice_form->isClicked($si_save)) {
             $sales_invoice_form->save();
             // $sales_invoice_config->setConfig('SALES_INVOICE_FROM_EMAIL_ONLINE',$sales_invoice_form['from_email'],'commerce');
             // $sales_invoice_config->setConfig('SALES_INVOICE_SUBJECT_ONLINE',$sales_invoice_form['subject'],'commerce');
             // $sales_invoice_config->setConfig('SALES_INVOICE_BODY_ONLINE',$sales_order_form['body'],'commerce');
             // $this->app->epan->config->setConfig('SALESINVOICELAYOUT',$sales_invoice_form['sales_invoice_layout'],'commerce');
             // $this->app->epan->config->setConfig('SALESINVOICEDETAILLAYOUT',$sales_invoice_form['sales_invoice_detail_layout'],'commerce');
             $salesinvoice_m->app->employee->addActivity("Sales Invoice Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $salesinvoice_m);
             return $sales_invoice_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($sales_invoice_form->isClicked($si_reset)) {
             $sitemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-master-salesinvoice.html"));
             // $this->app->epan->config->setConfig('SALESINVOICELAYOUT',$sitemp,'commerce');
             $sitemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-print-detail.html"));
             // $this->app->epan->config->setConfig('SALESINVOICEDETAILLAYOUT',$sitemp1,'commerce');
             $salesinvoice_m['master'] = $sitemp;
             $salesinvoice_m['detail'] = $sitemp1;
             $salesinvoice_m->save();
             $salesinvoice_m->app->employee->addActivity("Sales Invoice Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $salesinvoice_m);
             return $sales_invoice_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
     /*=========== END SALE INVOICE LAYOUT CONFIG =============================*/
     /*=========== START PURCHASE ORDER LAYOUT CONFIG =============================*/
     $purchaseorder_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'PURCHASEORDER_LAYOUT', 'application' => 'commerce']);
     $purchaseorder_m->add('xepan\\hr\\Controller_ACL');
     $purchaseorder_m->tryLoadAny();
     $purchase_order_form = $this->add('Form', null, 'purchaseorder');
     $purchase_order_form->setModel($purchaseorder_m);
     $purchase_order_form->getElement('master')->set($purchaseorder_m['master']);
     $purchase_order_form->getElement('detail')->set($purchaseorder_m['detail']);
     // $purchase_order_form->addField('xepan\base\RichText','purchase_order_layout')->set($po_layout);
     // $purchase_order_form->addField('xepan\base\RichText','purchase_order_detail_layout')->set($dpo_layout);
     $po_save = $purchase_order_form->addSubmit('Save')->addClass('btn btn-primary');
     $po_reset = $purchase_order_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($purchase_order_form->isSubmitted()) {
         if ($purchase_order_form->isClicked($po_save)) {
             // $this->app->epan->config->setConfig('PURCHASEORDERLAYOUT',$purchase_order_form['purchase_order_layout'],'commerce');
             // $this->app->epan->config->setConfig('PURCHASEORDERDETAILLAYOUT',$purchase_order_form['purchase_order_detail_layout'],'commerce');
             $purchase_order_form->save();
             $purchaseorder_m->app->employee->addActivity("Purchase Order Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $purchaseorder_m);
             return $purchase_order_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($purchase_order_form->isClicked($po_reset)) {
             $potemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-master-purchaseorder.html"));
             // $this->app->epan->config->setConfig('PURCHASEORDERLAYOUT',$potemp,'commerce');
             $potemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-print-detail.html"));
             // $this->app->epan->config->setConfig('PURCHASEORDERDETAILLAYOUT',$potemp1,'commerce');
             $purchaseorder_m['master'] = $potemp;
             $purchaseorder_m['detail'] = $potemp1;
             $purchaseorder_m->save();
             $purchaseorder_m->app->employee->addActivity("Purchase Order Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $purchaseorder_m);
             return $purchase_order_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
     /*=========== END PURCHASE ORDER LAYOUT CONFIG =============================*/
     /*=========== START PURCHASE INVOICE LAYOUT CONFIG =============================*/
     $purchaseinvoice_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'PURCHASEINVOICE_LAYOUT', 'application' => 'commerce']);
     $purchaseinvoice_m->add('xepan\\hr\\Controller_ACL');
     $purchaseinvoice_m->tryLoadAny();
     $purchase_invoice_form = $this->add('Form', null, 'purchaseinvoice');
     $purchase_invoice_form->setModel($purchaseinvoice_m);
     $purchase_invoice_form->getElement('master')->set($purchaseinvoice_m['master']);
     $purchase_invoice_form->getElement('detail')->set($purchaseinvoice_m['detail']);
     // $purchase_invoice_form->addField('xepan\base\RichText','purchase_invoice_layout')->set($pi_layout);
     // $purchase_invoice_form->addField('xepan\base\RichText','purchase_invoice_detail_layout')->set($dpi_layout);
     $pi_save = $purchase_invoice_form->addSubmit('Save')->addClass('btn btn-primary');
     $pi_reset = $purchase_invoice_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($purchase_invoice_form->isSubmitted()) {
         if ($purchase_invoice_form->isClicked($pi_save)) {
             // $this->app->epan->config->setConfig('PURCHASEINVOICELAYOUT',$purchase_invoice_form['purchase_invoice_layout'],'commerce');
             // $this->app->epan->config->setConfig('PURCHASEINVOICEDETAILLAYOUT',$purchase_invoice_form['purchase_invoice_detail_layout'],'commerce');
             $purchase_invoice_form->save();
             $purchaseinvoice_m->app->employee->addActivity("Purchase Invoice Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $purchaseinvoice_m);
             return $purchase_invoice_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($purchase_invoice_form->isClicked($pi_reset)) {
             $pitemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-master-purchaseinvoice.html"));
             // $this->app->epan->config->setConfig('PURCHASEINVOICELAYOUT',$pitemp,'commerce');
             $pitemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-print-detail.html"));
             // $this->app->epan->config->setConfig('PURCHASEINVOICEDETAILLAYOUT',$pitemp1,'commerce');
             $purchaseinvoice_m['master'] = $pitemp;
             $purchaseinvoice_m['detail'] = $pitemp1;
             $purchaseinvoice_m->save();
             $purchaseinvoice_m->app->employee->addActivity("Purchase Invoice Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $purchaseinvoice_m);
             return $purchase_invoice_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
     /*=========== END PURCHASE INVOICE LAYOUT CONFIG =============================*/
     /*=========== START  CHALAN LAYOUT CONFIG =============================*/
     $challan_m = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['master' => 'xepan\\base\\RichText', 'detail' => 'xepan\\base\\RichText'], 'config_key' => 'CHALLAN_LAYOUT', 'application' => 'commerce']);
     $challan_m->add('xepan\\hr\\Controller_ACL');
     $challan_m->tryLoadAny();
     $challan_form = $this->add('Form', null, 'challan');
     $challan_form->setModel($challan_m);
     $challan_form->getElement('master')->set($challan_m['master']);
     $challan_form->getElement('detail')->set($challan_m['detail']);
     // $challan_form->addField('xepan\base\RichText','challan_layout')->set($c_layout);
     // $challan_form->addField('xepan\base\RichText','challan_detail_layout')->set($chalan_detail_layout);
     $c_save = $challan_form->addSubmit('Save')->addClass('btn btn-primary');
     $c_reset = $challan_form->addSubmit('Reset Default')->addClass('btn btn-primary');
     if ($challan_form->isSubmitted()) {
         if ($challan_form->isClicked($c_save)) {
             // $this->app->epan->config->setConfig('CHALLANLAYOUT',$challan_form['challan_layout'],'commerce');
             // $this->app->epan->config->setConfig('CHALLANDETAILLAYOUT',$challan_form['challan_detail_layout'],'commerce');
             $challan_form->save();
             $challan_m->app->employee->addActivity("Challan Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $challan_m);
             return $challan_form->js()->univ()->successMessage('Saved')->execute();
         }
         if ($challan_form->isClicked($c_reset)) {
             $ctemp = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-challan.html"));
             $ctemp1 = file_get_contents(realpath("../vendor/xepan/commerce/templates/view/print-templates/duplicate-challan-detail.html"));
             // $this->app->epan->config->setConfig('CHALLANLAYOUT',$ctemp,'commerce');
             $challan_m['master'] = $ctemp;
             $challan_m['detail'] = $ctemp1;
             $challan_m->save();
             $challan_m->app->employee->addActivity("Challan Printing Layout Updated", null, null, null, null, "xepan_commerce_layouts")->notifyWhoCan(' ', ' ', $challan_m);
             return $challan_form->js()->univ()->successMessage('Saved')->execute();
         }
     }
 }
Esempio n. 13
0
 function init()
 {
     parent::init();
     /*Taxation */
     // $sub_tax = $this->add('xepan\base\Model_ConfigJsonModel',
     // 		[
     // 			'fields'=>[
     // 						'name'=>"Line",
     // 						'percentage'=>"Number"
     // 						],
     // 			'config_key'=>'SUB_TAX',
     // 			'application'=>'account'
     // 		]);
     $sub_tax = $this->add('xepan\\commerce\\Model_Taxation');
     $sub_tax_valuelist = [];
     foreach ($sub_tax as $obj) {
         $key = $obj['id'] . "-" . $obj['name'] . "-" . $obj['percentage'];
         $sub_tax_valuelist[$key] = $key;
     }
     $tax = $this->add('xepan\\commerce\\Model_Taxation');
     $tax->getElement('sub_tax')->setValueList($sub_tax_valuelist);
     $crud = $this->add('xepan\\hr\\CRUD', null, 'taxation', ['view/tax/grid']);
     $crud->setModel($tax, ['name', 'percentage', 'sub_tax']);
     if ($crud->isEditing()) {
         $form = $crud->form;
         $sub_tax_field = $form->getElement('sub_tax');
         $sub_tax_field->validate_values = false;
         $sub_tax_field->setAttr('multiple', 'multiple');
         $sub_tax_field->set(explode(",", $form->model['sub_tax']));
     }
     $crud->grid->addHook('formatRow', function ($g) {
         $g->current_row['subtax'] = $g->model['sub_tax'];
     });
     $crud->grid->addQuickSearch(['name']);
     $crud->grid->addPaginator(50);
     /*Taxation Rules*/
     $tax_rule = $this->add('xepan\\commerce\\Model_TaxationRule');
     $crud_rule = $this->add('xepan\\hr\\CRUD', null, 'taxation_rule', ['view\\tax\\taxationrule']);
     $crud_rule->setModel($tax_rule);
     $crud_rule->grid->addQuickSearch(['name']);
     $crud_rule->grid->addPaginator(50);
     $crud_rule->grid->add('VirtualPage')->addColumn('rules')->set(function ($page) {
         $taxation_rule_id = $_GET[$page->short_name . '_id'];
         // /*Taxation Rules Rows*/
         $tax_rule_row = $page->add('xepan\\commerce\\Model_TaxationRuleRow')->addCondition('taxation_rule_id', $taxation_rule_id);
         $crud_rule_row = $page->add('xepan\\hr\\CRUD', null, null, ['view\\tax\\rule']);
         $crud_rule_row->setModel($tax_rule_row);
         $crud_rule_row->grid->addQuickSearch(['name']);
         $crud_rule_row->grid->addPaginator(50);
         $this->app->stickyGET('country_id');
         if ($_GET['country_id']) {
             $field_state = $crud_rule_row->form->getElement('state_id');
             $field_state->getModel()->addCondition('country_id', $_GET['country_id']);
         }
         if ($crud_rule_row->isEditing()) {
             $form = $crud_rule_row->form;
             $field_country = $crud_rule_row->form->getElement('country_id');
             $field_country->js('change', $form->js()->atk4_form('reloadField', 'state_id', [$this->app->url(), 'country_id' => $field_country->js()->val()]));
         }
     });
     $misc_config = $this->add('xepan\\base\\Model_ConfigJsonModel', ['fields' => ['tax_on_shipping' => 'checkbox', 'tax_as_per' => 'DropDown'], 'config_key' => 'COMMERCE_TAX_AND_ROUND_AMOUNT_CONFIG', 'application' => 'commerce']);
     $misc_config->add('xepan\\hr\\Controller_ACL');
     $misc_config->tryLoadAny();
     $form = $this->add('Form', null, 'taxation_configuration');
     $form->setModel($misc_config);
     $tax_on_shipping = $form->getElement('tax_on_shipping')->set($misc_config['tax_on_shipping']);
     $tax_as_per = $form->getElement('tax_as_per')->setValueList(['shipping' => 'Shipping Address', 'billing' => "Billing Address"])->set($misc_config['tax_as_per']);
     $form->addSubmit('Save')->addClass('btn btn-primary');
     if ($form->isSubmitted()) {
         $form->save();
         $form->js(null, $form->js()->reload())->univ()->successMessage('Taxation Information Updated')->execute();
     }
     // $misc_config = $this->app->epan->config;
     // $misc_tax_on_shipping = $misc_config->getConfig('TAX_ON_SHIPPING');
     // $misc_tax_on_discounted_price = $misc_config->getConfig('TAX_ON_DISCOUNTED_PRICE');
     // $misc_tax_as_per = $misc_config->getConfig('TAX_AS_PER');
     // $misc_item_price_inclusive_tax = $misc_config->getConfig('ITEM_PRICE_AND_SHIPPING_INCLUSIVE_TAX');
     /*taxation_configuration*/
     // $form = $this->add('Form',null,'taxation_configuration');
     // $field_tax_on_shipping = $form->addField('checkbox','tax_on_shipping')->set($misc_tax_on_shipping);
     // $field_tax_on_discounted_price = $form->addField('checkbox','tax_on_discounted_price')->set($misc_tax_on_discounted_price);
     // $field_item_price_inclusive_tax = $form->addField('checkbox','item_price_and_shipping_inclusive_tax')->set($misc_item_price_inclusive_tax);
     // $field_tax_as_per = $form->addField('DropDown','tax_as_per')->setValueList(['shipping'=>'Shipping Address','billing'=>"Billing Address"])->set($misc_tax_as_per);
     // $form->addSubmit('Save');
     // if($form->isSubmitted()){
     // $misc_config->setConfig('TAX_ON_SHIPPING',$form['tax_on_shipping']?:0,'commerce');
     // $misc_config->setConfig('TAX_ON_DISCOUNTED_PRICE',$form['tax_on_discounted_price']?:0,'commerce');
     // $misc_config->setConfig('TAX_AS_PER',$form['tax_as_per'],'commerce');
     // $misc_config->setConfig('ITEM_PRICE_AND_SHIPPING_INCLUSIVE_TAX',$form['item_price_inclusive_tax'],'commerce');
     // $form->js()->univ()->successMessage('Saved Successfully')->execute();
     // }
     // Sub tax
     // $sub_tax = $this->add('xepan\base\Model_ConfigJsonModel',
     // 				[
     // 					'fields'=>[
     // 								'name'=>"Line",
     // 								'percentage'=>"Number"
     // 								],
     // 					'config_key'=>'SUB_TAX',
     // 					'application'=>'account'
     // 				]);
     // $sub_tax = $this->add('xepan\commerce\Model_Taxation');
     // $crud_sub_tax = $this->add('xepan\hr\CRUD',null,
     // 				'sub_tax'
     // 			);
     // $crud_sub_tax->setModel($sub_tax);
     // $crud_sub_tax->grid->addQuickSearch(['name']);
 }