This commit is contained in:
Alexis Algoud 2016-12-15 12:33:26 +01:00
parent 81b01cd055
commit 9f6f874655
4 changed files with 64 additions and 70 deletions

View File

@ -158,7 +158,7 @@ class CoreObject extends CommonObject {
$query[$field] = $this->date_0;
}
else{
$query[$field] = $this->db->jdate($this->{$field});
$query[$field] = $this->db->idate($this->{$field});
}
}
else if($this->is_array($info)){
@ -427,7 +427,6 @@ class CoreObject extends CommonObject {
}
else {
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$this->{$field} = dol_stringtotime($date);
}
@ -435,6 +434,7 @@ class CoreObject extends CommonObject {
}
public function set_values(&$Tab) {
foreach ($Tab as $key=>$value) {
if($this->checkFieldType($key,'date')) {

View File

@ -355,7 +355,7 @@ abstract class DoliDB implements Database
$values[] = $this->quote($v);
}
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.$table.'
( '.implode( ",", $keys ).' )
VALUES ( '.implode( ",", $values ).' ) ';

View File

@ -71,8 +71,9 @@ class Inventory extends CoreObject
public $db;
function __construct(DoliDB &$db)
public function __construct(DoliDB &$db)
{
global $conf;
$this->db = &$db;
@ -85,13 +86,13 @@ class Inventory extends CoreObject
}
function sort_det()
private function sort_det()
{
if(!empty($this->Inventorydet)) usort($this->Inventorydet, array('Inventory', 'customSort'));
}
function fetch($id,$annexe = true)
public function fetch($id,$annexe = true)
{
if(!$annexe) $this->withChild = false;
@ -115,7 +116,7 @@ class Inventory extends CoreObject
}
function customSort(&$objA, &$objB)
private function customSort(&$objA, &$objB)
{
global $db;
@ -128,7 +129,7 @@ class Inventory extends CoreObject
return $r;
}
function changePMP() {
public function changePMP() {
foreach ($this->Inventorydet as $k => &$Inventorydet)
{
@ -147,7 +148,7 @@ class Inventory extends CoreObject
}
function update(User &$user)
public function update(User &$user)
{
//si on valide l'inventaire on sauvegarde le stock à cette instant
@ -159,7 +160,7 @@ class Inventory extends CoreObject
parent::update($user);
}
function set_values(&$Tab)
public function set_values(&$Tab)
{
global $db,$langs;
@ -186,19 +187,19 @@ class Inventory extends CoreObject
parent::set_values($Tab);
}
function deleteAllLine() {
public function deleteAllLine(User &$user) {
foreach($this->Inventorydet as &$det) {
$det->to_delete = true;
}
$this->update();
$this->update($user);
$this->Inventorydet=array();
}
function add_product($fk_product, $fk_entrepot='') {
public function add_product($fk_product, $fk_entrepot='') {
$k = $this->addChild('Inventorydet');
$det = &$this->Inventorydet[$k];
@ -215,7 +216,7 @@ class Inventory extends CoreObject
}
function correct_stock($fk_product, $fk_warehouse, $nbpiece, $movement, $label='', $price=0, $inventorycode='')
public function correct_stock($fk_product, $fk_warehouse, $nbpiece, $movement, $label='', $price=0, $inventorycode='')
{
global $conf, $db, $langs, $user;
@ -250,7 +251,7 @@ class Inventory extends CoreObject
}
}
function regulate()
public function regulate()
{
global $db,$user,$langs,$conf;
@ -312,6 +313,36 @@ class Inventory extends CoreObject
}
public function add_products_for($fk_warehouse,$fk_category=0,$fk_supplier=0,$only_prods_in_stock=0) {
$e = new Entrepot($this->db);
$e->fetch($fk_warehouse);
$TChildWarehouses = array($fk_warehouse);
$e->get_children_warehouses($fk_warehouse, $TChildWarehouses);
$sql = 'SELECT ps.fk_product, ps.fk_entrepot
FROM '.MAIN_DB_PREFIX.'product_stock ps
INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = ps.fk_product)
LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product cp ON (cp.fk_product = p.rowid)
LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price pfp ON (pfp.fk_product = p.rowid)
WHERE ps.fk_entrepot IN ('.implode(', ', $TChildWarehouses).')';
if($fk_category>0) $sql.= " AND cp.fk_categorie=".$fk_category;
if($fk_supplier>0) $sql.= " AND pfp.fk_soc=".$fk_supplier;
if(!empty($only_prods_in_stock)) $sql.= ' AND ps.reel > 0';
$sql.=' GROUP BY ps.fk_product, ps.fk_entrepot
ORDER BY p.ref ASC,p.label ASC';
$res = $this->db->query($sql);
if($res) {
while($obj = $this->db->fetch_object($res)){
$this->add_product($obj->fk_product, $obj->fk_entrepot);
}
}
}
static function getLink($id) {
global $langs,$db;

View File

@ -83,34 +83,7 @@ function _action()
$fk_warehouse = (int)GETPOST('fk_warehouse');
$only_prods_in_stock = (int)GETPOST('OnlyProdsInStock');
$e = new Entrepot($db);
$e->fetch($fk_warehouse);
$TChildWarehouses = array($fk_warehouse);
$e->get_children_warehouses($fk_warehouse, $TChildWarehouses);
$sql = 'SELECT ps.fk_product, ps.fk_entrepot
FROM '.MAIN_DB_PREFIX.'product_stock ps
INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = ps.fk_product)
LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product cp ON (cp.fk_product = p.rowid)
LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price pfp ON (pfp.fk_product = p.rowid)
WHERE ps.fk_entrepot IN ('.implode(', ', $TChildWarehouses).')';
if($fk_category>0) $sql.= " AND cp.fk_categorie=".$fk_category;
if($fk_supplier>0) $sql.= " AND pfp.fk_soc=".$fk_supplier;
if($only_prods_in_stock>0) $sql.= ' AND ps.reel > 0';
$sql.=' GROUP BY ps.fk_product, ps.fk_entrepot
ORDER BY p.ref ASC,p.label ASC';
$res = $db->query($sql);
if($res) {
while($obj = $db->fetch_object($res)){
$inventory->add_product($obj->fk_product, $obj->fk_entrepot);
}
}
$inventory->add_products_for($fk_warehouse,$fk_category,$fk_supplier,$only_prods_in_stock);
$inventory->update($user);
header('Location: '.dol_buildpath('inventory/inventory.php?id='.$inventory->id.'&action=edit', 1));
@ -134,14 +107,14 @@ function _action()
$id = GETPOST('id');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
$inventory->fetch($id);
$inventory->set_values($_REQUEST);
if ($inventory->errors)
{
setEventMessage($inventory->errors, 'errors');
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'edit');
_card( $inventory, 'edit');
}
else
{
@ -156,18 +129,18 @@ function _action()
$id = GETPOST('id');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
$inventory->fetch($id);
if($inventory->status == 0) {
$inventory->status = 1;
$inventory->save($PDOdb);
$inventory->update($user);
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'view');
_card( $inventory, 'view');
}
else {
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'view');
_card( $inventory, 'view');
}
break;
@ -181,7 +154,7 @@ function _action()
$inventory->changePMP($PDOdb);
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'view');
_card( $inventory, 'view');
break;
@ -235,7 +208,7 @@ function _action()
$inventory->sort_det();
}
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'edit');
_card( $inventory, 'edit');
break;
@ -261,16 +234,16 @@ function _action()
if (!$user->rights->inventory->create) accessforbidden();
$id = __get('id', 0, 'int');
$id = GETPOST('id');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
$inventory->fetch($id);
$inventory->deleteAllLine($PDOdb);
setEventMessage('Inventaire vidé');
_fiche($PDOdb, $user, $db, $conf, $langs, $inventory, 'edit');
_card( $inventory, 'edit');
break;
@ -278,33 +251,23 @@ function _action()
if (!$user->rights->inventory->create) accessforbidden();
$id = __get('id', 0, 'int');
$id = GETPOST('id');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
$inventory->fetch($id);
$inventory->delete($PDOdb);
$inventory->delete($user);
header('Location: '.dol_buildpath('/inventory/inventory.php', 1));
exit;
//_list();
case 'printDoc':
$id = __get('id', 0, 'int');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
generateODT($PDOdb, $db, $conf, $langs, $inventory);
break;
case 'exportCSV':
$id = __get('id', 0, 'int');
$id = GETPOST('id');
$inventory = new Inventory($db);
$inventory->load($PDOdb, $id);
$inventory->fetch($id);
exportCSV($inventory);
@ -453,7 +416,7 @@ function _card(&$inventory, $mode='edit')
$warehouse = new Entrepot($db);
$warehouse->fetch($inventory->fk_warehouse);
print dol_get_fiche_head(inventoryPrepareHead($inventory, $langs->trans('inventoryOfWarehouse', $warehouse->libelle), '&action='.$mode));
print dol_get_fiche_head(inventoryPrepareHead($inventory, $langs->trans('inventoryOfWarehouse', $warehouse->libelle), empty($mode) ? '': '&action='.$mode));
$lines = array();
_card_line($inventory, $lines, $mode);