Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Bmd;
|
||||
|
||||
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||||
use Xentral\Modules\Bmd\Service\BmdRevenueLedgerService;
|
||||
|
||||
final class Bootstrap
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function registerServices()
|
||||
{
|
||||
return [
|
||||
'BmdRevenueLedgerService' => 'onInitBmdRevenueLedgerService',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return BmdRevenueLedgerService
|
||||
*/
|
||||
public static function onInitBmdRevenueLedgerService(ContainerInterface $container)
|
||||
{
|
||||
return new BmdRevenueLedgerService(
|
||||
$container->get('Database')
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Bmd\Exception;
|
||||
|
||||
use Xentral\Core\Exception\ModuleExceptionInterface;
|
||||
|
||||
interface BmdExceptionInterface extends ModuleExceptionInterface
|
||||
{
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Bmd\Exception;
|
||||
|
||||
use InvalidArgumentException as SplInvalidArgumentException;
|
||||
|
||||
class InvalidArgumentException extends SplInvalidArgumentException implements BmdExceptionInterface
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Bmd\Service;
|
||||
|
||||
use RuntimeException;
|
||||
use Xentral\Components\Database\Database;
|
||||
use Xentral\Modules\Bmd\Exception\InvalidArgumentException;
|
||||
|
||||
class BmdRevenueLedgerService
|
||||
{
|
||||
/** @var Database $db */
|
||||
private $db;
|
||||
|
||||
public function __construct(Database $db)
|
||||
{
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $revenueledger
|
||||
* @param string $label
|
||||
* @param string $taxcode
|
||||
* @param float $salestaxpercent
|
||||
*/
|
||||
public function saveBmdRevenueLedger($revenueledger, $label, $taxcode, $salestaxpercent)
|
||||
{
|
||||
if (empty($revenueledger)) {
|
||||
throw new InvalidArgumentException('revenueledger can not be empty');
|
||||
}
|
||||
|
||||
$sql = 'INSERT INTO `bmdrevenueledger`
|
||||
(
|
||||
`revenueledger`,
|
||||
`label`,
|
||||
`taxcode`,
|
||||
`salestaxpercent`
|
||||
)
|
||||
VALUES (
|
||||
:revenueledger,
|
||||
:label,
|
||||
:taxcode,
|
||||
:salestaxpercent
|
||||
)';
|
||||
|
||||
$values = [
|
||||
'revenueledger' => $revenueledger,
|
||||
'label' => $label,
|
||||
'taxcode' => $taxcode,
|
||||
'salestaxpercent' => $salestaxpercent,
|
||||
];
|
||||
$this->db->perform($sql, $values);
|
||||
$insertId = $this->db->lastInsertId();
|
||||
if ($insertId === 0) {
|
||||
throw new RuntimeException('Import template could not be created.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
* @param int $revenueledger
|
||||
* @param string $label
|
||||
* @param string $taxcode
|
||||
* @param float $salestaxpercent
|
||||
*/
|
||||
public function updateBmdRevenueLedger($id, $revenueledger, $label, $taxcode, $salestaxpercent)
|
||||
{
|
||||
if (empty($revenueledger)) {
|
||||
throw new InvalidArgumentException('revenueledger can not be empty');
|
||||
}
|
||||
|
||||
$sql = 'UPDATE `bmdrevenueledger`
|
||||
SET
|
||||
`revenueledger`=:revenueledger,
|
||||
`label` = :label,
|
||||
`taxcode` = :taxcode,
|
||||
`salestaxpercent` = :salestaxpercent
|
||||
WHERE id=:id';
|
||||
|
||||
$values = [
|
||||
'revenueledger' => $revenueledger,
|
||||
'label' => $label,
|
||||
'taxcode' => $taxcode,
|
||||
'salestaxpercent' => $salestaxpercent,
|
||||
'id' => $id,
|
||||
];
|
||||
|
||||
$numAffected = (int)$this->db->fetchAffected($sql, $values);
|
||||
|
||||
if ($numAffected == 0) {
|
||||
throw new RuntimeException('Import template could not be updated.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getBmdRevenueLadgerById($id)
|
||||
{
|
||||
$sql = 'SELECT `id`, `revenueledger`,`label`,`taxcode`,`salestaxpercent` FROM `bmdrevenueledger` WHERE id =:id';
|
||||
$values = [
|
||||
'id' => $id,
|
||||
];
|
||||
$data = $this->db->fetchRow($sql, $values);
|
||||
if (empty($data)) {
|
||||
throw new InvalidArgumentException('Id is not valid.');
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function deleteRevenueLedgerById($id)
|
||||
{
|
||||
$sql = "DELETE FROM `bmdrevenueledger` WHERE `id` =:id";
|
||||
$numAffected = (int)$this->db->fetchAffected($sql, ['id' => $id]);
|
||||
|
||||
if ($numAffected == 0) {
|
||||
throw new RuntimeException('Import template could not be deleted.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getAllRevenueLedgers()
|
||||
{
|
||||
$sql = 'SELECT `id`, `revenueledger`,`label`,`taxcode`,`salestaxpercent` FROM `bmdrevenueledger`';
|
||||
|
||||
return $this->db->fetchAll($sql);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
var Bmd = (function ($) {
|
||||
'use strict';
|
||||
|
||||
var me = {
|
||||
|
||||
isInitialized: false,
|
||||
|
||||
selector: {
|
||||
ledgerNewDialog: '#ledgernewdialog',
|
||||
ledgerEditDialog: '.ledgereditdialog',
|
||||
ledgerDeleteDialog: '.ledgerdeletedialog',
|
||||
bmdledgerNewEdit: '#bmdledgernewedit',
|
||||
bmdledgerDelete: '#bmdledgerdelete',
|
||||
revenueledger: '#revenueledger',
|
||||
ledgerLabel: '#label',
|
||||
taxcode: '#taxcode',
|
||||
salestaxpercent: '#salestaxpercent',
|
||||
revenueledgerdeleteid: '#revenueledgerdeleteid',
|
||||
revenueledgereditid: '#revenueledgereditid',
|
||||
ledgermsg:'#ledgermsg',
|
||||
ledgeroverviewTable:'#bmdledgeroverview'
|
||||
},
|
||||
|
||||
storage: {
|
||||
$dialog: null,
|
||||
$deleteDialog:null,
|
||||
},
|
||||
|
||||
init: function () {
|
||||
|
||||
if (me.isInitialized === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
me.storage.$dialog = $(me.selector.bmdledgerNewEdit);
|
||||
me.storage.$deleteDialog = $(me.selector.bmdledgerDelete);
|
||||
me.dialogInit();
|
||||
me.deleteDialogInit();
|
||||
me.registerEvents();
|
||||
|
||||
me.isInitialized = true;
|
||||
},
|
||||
|
||||
registerEvents: function () {
|
||||
|
||||
$(me.selector.ledgerNewDialog).on('click', function (event) {
|
||||
event.preventDefault();
|
||||
me.dialogNewOpen();
|
||||
});
|
||||
|
||||
$(me.selector.ledgeroverviewTable).on('click', me.selector.ledgerEditDialog, function (event) {
|
||||
event.preventDefault();
|
||||
me.dialogEditOpen(this.id.replace('lee-',''));
|
||||
});
|
||||
|
||||
$(me.selector.ledgeroverviewTable).on('click', me.selector.ledgerDeleteDialog, function (event) {
|
||||
event.preventDefault();
|
||||
me.dialogDeleteOpen(this.id.replace('led-',''));
|
||||
});
|
||||
},
|
||||
|
||||
deleteDialogInit: function () {
|
||||
me.storage.$deleteDialog.dialog({
|
||||
modal: true,
|
||||
bgiframe: true,
|
||||
closeOnEscape: false,
|
||||
minWidth: 500,
|
||||
minHeight: 200,
|
||||
maxHeight: 500,
|
||||
autoOpen: false,
|
||||
|
||||
open: function () {},
|
||||
close: function () {}
|
||||
});
|
||||
},
|
||||
|
||||
dialogInit: function () {
|
||||
me.storage.$dialog.dialog({
|
||||
modal: true,
|
||||
bgiframe: true,
|
||||
closeOnEscape: false,
|
||||
minWidth: 600,
|
||||
minHeight: 200,
|
||||
maxHeight: 500,
|
||||
autoOpen: false,
|
||||
|
||||
open: function () {
|
||||
$(me.selector.inputKey).trigger('focus');
|
||||
},
|
||||
close: function () {
|
||||
me.dialogReset();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
dialogNewOpen: function () {
|
||||
me.dialogReset();
|
||||
me.storage.$dialog.dialog('open');
|
||||
},
|
||||
|
||||
dialogEditOpen: function (id) {
|
||||
me.dialogReset();
|
||||
|
||||
$.ajax({
|
||||
url: 'index.php?module=bmd&action=erloes&cmd=revenueledgerdata',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: id
|
||||
},
|
||||
success: function(data) {
|
||||
|
||||
if(data.error){
|
||||
me.storage.$dialog.find(me.selector.ledgermsg).text(data.error);
|
||||
}
|
||||
else{
|
||||
me.storage.$dialog.find(me.selector.revenueledgereditid).val(data.id);
|
||||
me.storage.$dialog.find(me.selector.revenueledger).val(data.revenueledger);
|
||||
me.storage.$dialog.find(me.selector.ledgerLabel).val(data.label);
|
||||
me.storage.$dialog.find(me.selector.taxcode).val(data.taxcode);
|
||||
me.storage.$dialog.find(me.selector.salestaxpercent).val(data.salestaxpercent);
|
||||
me.storage.$dialog.dialog('open');
|
||||
}
|
||||
},
|
||||
beforeSend: function() {}
|
||||
});
|
||||
},
|
||||
|
||||
dialogDeleteOpen: function (id) {
|
||||
me.storage.$deleteDialog.find(me.selector.revenueledgerdeleteid).val(id);
|
||||
me.storage.$deleteDialog.dialog('open');
|
||||
},
|
||||
|
||||
dialogClose: function () {
|
||||
me.storage.$dialog.dialog('close');
|
||||
},
|
||||
|
||||
dialogReset: function () {
|
||||
me.storage.$dialog.find(me.selector.revenueledgereditid).val(null);
|
||||
me.storage.$dialog.find(me.selector.revenueledger).val(null);
|
||||
me.storage.$dialog.find(me.selector.ledgerLabel).val(null);
|
||||
me.storage.$dialog.find(me.selector.taxcode).val(null);
|
||||
me.storage.$dialog.find(me.selector.salestaxpercent).val(null);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: me.init
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
Bmd.init();
|
||||
});
|
||||
Reference in New Issue
Block a user