Add php files
This commit is contained in:
321
include/ECM/EcmDeleteDocument/EcmDeleteDocument.php
Executable file
321
include/ECM/EcmDeleteDocument/EcmDeleteDocument.php
Executable file
@@ -0,0 +1,321 @@
|
||||
<?php
|
||||
|
||||
class EcmDeleteDocument{
|
||||
|
||||
public $module;
|
||||
public $module_class;
|
||||
public $id;
|
||||
public $db;
|
||||
public $item_list;
|
||||
public $codes;
|
||||
public $type;
|
||||
private $last;
|
||||
private $error;
|
||||
public $types=array('EcmStockDocOuts'=>'1' ,'EcmStockDocIns'=>'0','EcmStockDocInsideIns'=>'0','EcmStockDocInsideOuts'=>'1','EcmStockDocMoves'=>'2','EcmStockDocCorrects'=>'3','EcmInvoiceOuts'=>'1');
|
||||
|
||||
function __construct ($module, $id,$type)
|
||||
{
|
||||
$this->module=$module;
|
||||
$this->module_class=substr($module, 0, -1);
|
||||
$this->id=$id;
|
||||
if($type!=''){
|
||||
$this->type=$type;
|
||||
}
|
||||
$this->db=$GLOBALS['db'];
|
||||
$this->error=true;
|
||||
$this->codes='';
|
||||
$this->last=false;
|
||||
}
|
||||
|
||||
function isLast(){
|
||||
if($this->types[$this->module]==2){
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
$zap=$this->db->query("select id from ".strtolower($this->module_class.'s')." where stock_in_id='".$module->stock_in_id."' and deleted=0 order by date_entered desc limit 1");
|
||||
$dane=$this->db->fetchByAssoc($zap);
|
||||
if($dane['id']==$this->id){
|
||||
// $this->error=true;
|
||||
} else {
|
||||
$this->error=false;
|
||||
}
|
||||
}
|
||||
if($this->module=='EcmInvoiceOuts'){
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
$zap=$this->db->query("select id from ".strtolower($this->module_class.'s')." where stock_id='".$module->stock_id."' and type='".$module->type."' and deleted=0 order by document_autoincrement desc limit 1");
|
||||
|
||||
$dane=$this->db->fetchByAssoc($zap);
|
||||
if($dane['id']==$this->id){
|
||||
//$this->error=true;
|
||||
} else {
|
||||
$this->error=false;
|
||||
}
|
||||
}else {
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
$zap=$this->db->query("select id from ".strtolower($this->module_class.'s')." where stock_id='".$module->stock_id."' and deleted=0 order by date_entered desc limit 1");
|
||||
$dane=$this->db->fetchByAssoc($zap);
|
||||
if($dane['id']==$this->id){
|
||||
//$this->error=true;
|
||||
} else {
|
||||
$this->error=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removeIsPossible()
|
||||
{
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
if($module->deleted==1){
|
||||
$this->error=false;
|
||||
}
|
||||
$this->getItemList();
|
||||
$this->checkStates();
|
||||
$this->isLast();
|
||||
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
function cancelIsPossible()
|
||||
{
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
if($module->canceled==1){
|
||||
$this->error=false;
|
||||
}
|
||||
$this->getItemList();
|
||||
$this->checkStates();
|
||||
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
function refreshState()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function rebuildKsDocs()
|
||||
{
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used,in_id from ecmstockoperations where documentitem_id='".$val['id']."'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
while($res=$this->db->fetchByAssoc($row)){
|
||||
if($val['quantity']<0){
|
||||
$query="select id,used from ecmstockoperations where id='".$res['in_id']."'";
|
||||
|
||||
$row2=$this->db->query($query);
|
||||
$res2=$this->db->fetchByAssoc($row2);
|
||||
if($res2['used']==1){
|
||||
|
||||
$this->db->query('update ecmstockoperations set used="0" where id="'.$res2['id'].'"');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
function rebuildMmDocs()
|
||||
{
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used,in_id from ecmstockoperations where documentitem_id='".$val['id']."' and type='1'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
while($res=$this->db->fetchByAssoc($row)){
|
||||
|
||||
$query="select id,used from ecmstockoperations where id='".$res['in_id']."'";
|
||||
|
||||
$row2=$this->db->query($query);
|
||||
$res2=$this->db->fetchByAssoc($row2);
|
||||
|
||||
if($res2['used']==1){
|
||||
|
||||
$this->db->query('update ecmstockoperations set used="0" where id="'.$res2['id'].'"');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
function rebuildInsDocs()
|
||||
{
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used,in_id from ecmstockoperations where documentitem_id='".$val['id']."'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
while($res=$this->db->fetchByAssoc($row)){
|
||||
$query="select id,used from ecmstockoperations where id='".$res['in_id']."'";
|
||||
|
||||
$row2=$this->db->query($query);
|
||||
$res2=$this->db->fetchByAssoc($row2);
|
||||
if($res2['used']==1){
|
||||
|
||||
$this->db->query('update ecmstockoperations set used="0" where id="'.$res2['id'].'"');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function cancelDoc()
|
||||
{
|
||||
|
||||
if($this->error!=false){
|
||||
if($this->types[$this->module]==1){
|
||||
$this->rebuildInsDocs();
|
||||
|
||||
}
|
||||
if($this->types[$this->module]==2){
|
||||
$this->rebuildMmDocs();
|
||||
}
|
||||
if($this->types[$this->module]==3){
|
||||
$this->rebuildKsDocs();
|
||||
}
|
||||
|
||||
$this->db->query("delete from ecmstockoperations where parent_id='".$this->id."'");
|
||||
$this->db->query("update ".strtolower($this->module)." set canceled='1', pdf_text='Dokument został anulowany' where id='".$this->id."'");
|
||||
$this->db->query("update ecmtransactions set deleted=1 where record_id='".$this->id."'");
|
||||
$ss=new EcmStockState();
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$w=$this->db->query("select id from ecmstocks where deleted='0'");
|
||||
while($r=$this->db->fetchByAssoc($w)){
|
||||
$ss->UpdateStockState($r['id'],$val['ecmproduct_id']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function removeDoc()
|
||||
{
|
||||
if($this->error!=false){
|
||||
if($this->types[$this->module]==1){
|
||||
$this->rebuildInsDocs();
|
||||
|
||||
}
|
||||
if($this->types[$this->module]==2){
|
||||
$this->rebuildMmDocs();
|
||||
}
|
||||
if($this->types[$this->module]==3){
|
||||
$this->rebuildKsDocs();
|
||||
}
|
||||
|
||||
$this->db->query("delete from ecmstockoperations where parent_id='".$this->id."'");
|
||||
$this->db->query("update ecmtransactions set deleted=1 where record_id='".$this->id."'");
|
||||
$this->db->query("update ".strtolower($this->module)." set deleted='1', pdf_text='Dokument został anulowany' where id='".$this->id."'");
|
||||
|
||||
$ss=new EcmStockState();
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$w=$this->db->query("select id from ecmstocks where deleted='0'");
|
||||
while($r=$this->db->fetchByAssoc($w)){
|
||||
$ss->UpdateStockState($r['id'],$val['ecmproduct_id']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function getItemList()
|
||||
{
|
||||
$query="select id,ecmproduct_id,code,name,quantity from ".strtolower($this->module_class)."items where ".strtolower($this->module_class)."_id='".$this->id."'";
|
||||
$this->item_list=array();
|
||||
$zap=$this->db->query($query);
|
||||
while($res=$this->db->fetchByAssoc($zap)){
|
||||
$this->item_list[]=$res;
|
||||
}
|
||||
}
|
||||
|
||||
function checkStates()
|
||||
{
|
||||
if($this->types[$this->module]==0){
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used from ecmstockoperations where documentitem_id='".$val['id']."'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['used']!=0){
|
||||
$this->error=false;
|
||||
}
|
||||
$query="select sum(quantity) as quantity from ecmstockoperations where in_id='".$res['id']."'";
|
||||
|
||||
$row=$this->db->query($query);
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['quantity']!='')$this->error=false;
|
||||
$this->codes.=$val['code'].',';
|
||||
}
|
||||
}
|
||||
if($this->types[$this->module]==1){
|
||||
$module = new $this->module_class();
|
||||
$module->retrieve($this->id);
|
||||
if($module->type=='correct'){
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used from ecmstockoperations where documentitem_id='".$val['id']."'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['used']!=0){
|
||||
$this->error=false;
|
||||
}
|
||||
$query="select sum(quantity) as quantity from ecmstockoperations where in_id='".$res['id']."'";
|
||||
|
||||
$row=$this->db->query($query);
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['quantity']!='')$this->error=false;
|
||||
$this->codes.=$val['code'].',';
|
||||
}
|
||||
}
|
||||
}
|
||||
if($this->types[$this->module]==2){
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
$query="select id,quantity,used from ecmstockoperations where documentitem_id='".$val['id']."' where type=0";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['used']!=0){
|
||||
$this->error=false;
|
||||
}
|
||||
$query="select sum(quantity) as quantity from ecmstockoperations where in_id='".$res['id']."'";
|
||||
|
||||
$row=$this->db->query($query);
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['quantity']!='')$this->error=false;
|
||||
$this->codes.=$val['code'].',';
|
||||
}
|
||||
}
|
||||
// for KS
|
||||
if($this->types[$this->module]==3){
|
||||
foreach ($this->item_list as $key=>$val){
|
||||
if($val['quantity']<0){
|
||||
continue;
|
||||
|
||||
}
|
||||
$query="select id,quantity,used from ecmstockoperations where documentitem_id='".$val['id']."'";
|
||||
$row=$this->db->query($query);
|
||||
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['used']!=0){
|
||||
$this->error=false;
|
||||
}
|
||||
$query="select sum(quantity) as quantity from ecmstockoperations where in_id='".$res['id']."'";
|
||||
|
||||
$row=$this->db->query($query);
|
||||
$res=$this->db->fetchByAssoc($row);
|
||||
|
||||
if($res['quantity']!='')$this->error=false;
|
||||
$this->codes.=$val['code'].',';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
28
include/ECM/EcmDeleteDocument/EcmDeleteDocumentController.php
Executable file
28
include/ECM/EcmDeleteDocument/EcmDeleteDocumentController.php
Executable file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
require_once 'include/ECM/EcmDeleteDocument/EcmDeleteDocument.php';
|
||||
|
||||
class EcmDeleteDocumentController
|
||||
{
|
||||
|
||||
public function deleteDocument ($module, $id)
|
||||
{
|
||||
$test= new EcmDeleteDocument($module,$id);
|
||||
if($test->removeIsPossible()!=false){
|
||||
$test->removeDoc();
|
||||
return '1';
|
||||
} else {
|
||||
return '0';
|
||||
}
|
||||
}
|
||||
public function cancelDocument ($module, $id)
|
||||
{
|
||||
$test= new EcmDeleteDocument($module,$id);
|
||||
if($test->cancelIsPossible()!=false){
|
||||
$test->cancelDoc();
|
||||
return '1';
|
||||
} else {
|
||||
return '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user