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'); }
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']])); }); }
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']); }); }
function init() { parent::init(); $category = $this->add('xepan\\commerce\\Model_FreelancerCategory'); $crud = $this->add('xepan\\hr\\CRUD'); $crud->setModel($category); }
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']); }
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'); }
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(); } }
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); }
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']); } }); }
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']); } }); }
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']); }
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(); } } }
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']); }