コード例 #1
0
 public function saveAction()
 {
     $columns = $this->_model->info(Zend_Db_Table_Abstract::COLS);
     $array = array();
     $this->_model->getAdapter()->beginTransaction();
     $message = '';
     // Declaração dos Render() do Zend para a Validação do Formulário
     $formRenders = array($this->_form->addElementsForm(), $this->_form->addElementsExistantStock(), $this->_form->addElementsStockControl());
     // Função que valida os Campos do Formulario com multiplos Render()
     parent::validateMultipleForm($formRenders);
     // <-----
     try {
         foreach ($this->_values as $id => $value) {
             if (isset($value) && $value != '' && in_array($id, $columns)) {
                 $array[$id] = addslashes($value);
             }
         }
         if ($this->_values['cdsupply'] != null) {
             $array['fgsupplycontrol'] = 1;
             if ($this->_values['cdsupplycentre'] != null && $this->_values['cdsupplier'] != null) {
                 date_default_timezone_set('UTC');
                 $supplystockModel = new SupplystockModel();
                 $arraySupplyStock = array();
                 $arraySupplyStock['cdsupply'] = $this->_values['cdsupply'];
                 $arraySupplyStock['cdsupplycentre'] = $this->_values['cdsupplycentre'];
                 $arraySupplyStock['cdsupplier'] = $this->_values['cdsupplier'];
                 $dtcheckin = date("Y-m-d") . " " . date("H:i");
                 $arraySupplyStock['dtcheckin'] = $dtcheckin;
                 if ($this->_values['vlsupplyunit'] != null) {
                     $vlunitprice = $this->_values['vlsupplyunit'];
                     $vlsupplytoDB = str_replace(" ", "", $vlunitprice);
                     $vlsupplytoDB = str_replace(",", ".", $vlsupplytoDB);
                     $vlsupplytoDB = str_replace("R\$", "", $vlsupplytoDB);
                     $arraySupplyStock['vlunitprice'] = $vlsupplytoDB;
                 }
                 if ($this->_values['nrsupplyquantity'] != null) {
                     $supplyModel = new SupplyModel();
                     $arraySupplyStock['qtquantity'] = $this->_values['nrsupplyquantity'];
                     $arraySupplyStock['qtsupplybalance'] = $this->_values['nrsupplyquantity'];
                     $qtdebalance = $supplyModel->fetchRow("cdsupply = " . $this->_values['cdsupply']);
                     $supplyModel->update(array("qtbalance" => $qtdebalance['qtbalance'] + $arraySupplyStock['qtsupplybalance']), "cdsupply = " . $this->_values['cdsupply']);
                 }
                 $supplystockModel->insert($arraySupplyStock);
             }
         } else {
             $array['fgsupplycontrol'] = 2;
         }
         $this->_model->insert($array);
         $message = "Cadastro realizado com sucesso.";
         $this->_model->getAdapter()->commit();
     } catch (Exception $e) {
         $this->_model->getAdapter()->rollBack();
         $message = '';
         $message = "Erro na operação.";
         $message = $e->getMessage();
     }
     $this->view->message = $message;
 }
コード例 #2
0
 public function dadosAction()
 {
     $supplyStockModel = new SupplystockModel();
     $values = $this->_request->getParams();
     $dateInitialDate = new Zend_Date($values["initialDate"], 'dd-MM-YYYY HH:mm:ss');
     $values["initialDate"] = $dateInitialDate->toString('YYYY-MM-dd HH:mm:ss');
     $dateFinalDate = new Zend_Date($values["finalDate"], 'dd-MM-YYYY HH:mm:ss');
     $values["finalDate"] = $dateFinalDate->toString('YYYY-MM-dd HH:mm:ss');
     $supplyFlowData = $supplyStockModel->fetchAll($supplyStockModel->getAllMovimentationSupply($values));
     $this->_helper->layout->disableLayout();
     $page = $this->_request->getParam("page", 1);
     $responce = new stdClass();
     $responce->page = $page;
     $responce->total = 10;
     $responce->records = 100;
     $i = 0;
     foreach ($supplyFlowData as $row) {
         $nameDestination = '';
         $nameHorigem = '';
         $destinationData = $supplyStockModel->fetchRow($supplyStockModel->getByNameCentre($row->cdsupplycentreto));
         $horigemData = $supplyStockModel->fetchRow($supplyStockModel->getByNameCentre($row->cdsupplycentrefrom));
         $nameDestination = $destinationData->idsupplycentre;
         $nameHorigem = $horigemData->idsupplycentre;
         if ($nameDestination == '0') {
             $destinationData = "Externo";
         }
         $responce->rows[$i]['cell'] = array($nameHorigem, $nameDestination, $row->nmsupply, $row->qtquantity, $row->dtcheckin, $row->dtcheckout);
         $i++;
     }
     $this->view->dados = $responce;
 }
コード例 #3
0
 public function balanceSupplyStock($cdsupplycentrefrom, $cdsupplycentreto, $cdsupply, $qtquantity)
 {
     $supplystock = new SupplystockModel();
     /* >>> Update centro de saída
      * Busca na tabela supplyStock o registro por centro e item/supply(getCdsupplystockFirstDtcheckin) por menor data de entrada.
      */
     $supplystockDataFrom = $supplystock->fetchRow($supplystock->getCdsupplystockFirstDtcheckin($cdsupplycentrefrom, $cdsupply));
     $cdsupplystock = $supplystockDataFrom->cdsupplystock;
     $supplystockDataFrom->qtsupplybalance = $supplystockDataFrom->qtsupplybalance - $qtquantity;
     $supplystock->update($supplystockDataFrom->toArray(), "cdsupplystock = " . $cdsupplystock);
     /* <<< */
     /* >>> Update/Insert centro de entrada */
     /* Busca na tabela supplyStock o registro por centro, item/supply e nota fiscal.
      * Condição da cláusula where(getCdsupplystockByIdinvoice): busca nota fiscal do item do centro de saída igual a nota fiscal do centro de entrada.
      * Se satisfeita a condição é feito update senão, é feito insert.
      * 
      * Agora, pega essa gambi:
      */
     $supplystockDataTo = $supplystock->fetchRow($supplystock->getCdsupplystockByIdinvoice($cdsupplycentreto, $cdsupply, $supplystockDataFrom->idinvoice));
     if (sizeof($supplystockDataTo) > 0) {
         /*             * *UPDATE** */
         $cdsupplystock = $supplystockDataTo->cdsupplystock;
         $supplystockDataTo->qtsupplybalance = $supplystockDataTo->qtsupplybalance + $qtquantity;
         $supplystock->update($supplystockDataTo->toArray(), "cdsupplystock = " . $cdsupplystock);
     } else {
         /*             * *INSERT** */
         $cdsupplier = $supplystockDataFrom->cdsupplier;
         $vlunitprice = $supplystockDataFrom->vlunitprice;
         $dtexpire = $supplystockDataFrom->dtexpire;
         $idinvoice = $supplystockDataFrom->idinvoice;
         $dtcheckin = new Zend_Date(null, 'dd-MM-YYYY HH:mm:ss');
         $dtcheckin = $dtcheckin->toString('YYYY-MM-dd HH:mm:ss');
         $supplystockDataTo = array("cdsupplycentre" => $cdsupplycentreto, "cdsupply" => $cdsupply, "cdsupplier" => $cdsupplier, "qtquantity" => "0", "qtsupplybalance" => $qtquantity, "vlunitprice" => $vlunitprice, "dtexpire" => $dtexpire, "dtcheckin" => $dtcheckin, "idinvoice" => $idinvoice);
         $supplystock->insert($supplystockDataTo);
     }
     /* >>> */
 }
コード例 #4
0
 public function saveAction()
 {
     parent::saveAction();
     /* Instancia classe SupplyStock */
     $supplystockModel = new SupplystockModel();
     /* Instancia classe Supply */
     $supplyModel = new SupplyModel();
     /* Instancia classe SupplyFlow */
     $supplyflowModel = new SupplyflowModel();
     $supplies = json_decode($_GET['supply'], true);
     $i = 0;
     $supply = array();
     $supplystockModel->getAdapter()->beginTransaction();
     try {
         foreach ($supplies as $row) {
             $data = explode("-", $_POST['dtcheckout']);
             if ($row['dtexpires'] != "Indeterminado") {
                 $expire = explode("-", $row['dtexpires']);
             }
             $valor = substr($row['vlunitprice'], 2);
             /* Adiciona lista de Itens na SupplyStock */
             $supply[$i] = array('cdsupply' => $row['cdsupply'], 'qtquantity' => $row['qtquantity'], 'qtsupplybalance' => $row['qtquantity'], 'cdsupplycentre' => $_POST['cdsupplycentrefrom'], 'dtexpire' => $expire[2] . "-" . $expire[1] . "-" . $expire[0] . " 00:00:00", 'dtcheckin' => $data[2] . "-" . $data[1] . "-" . $data[0] . " " . $_POST['hrcheckin'] . ":00", 'cdsupplier' => $_POST['cdsupplyentrysupplier'], 'idinvoice' => $_POST['cdsupplyinvoice'], 'idbatch' => $_POST['cdsupplylot'], 'vlunitprice' => $valor);
             /* Insere registros na StockFlow */
             $supplyflow[$i] = array('cdsupply' => $row['cdsupply'], 'qtquantity' => $row['qtquantity'], 'cdsupplycentreto' => $_POST['cdsupplycentrefrom'], 'fgsupplyioreason' => '4', 'dtcheckin' => date("Y-m-d H:i:s"), 'dtcheckout' => date("Y-m-d H:i:s"), 'cdsupplycentrefrom' => null);
             /* Atualiza quantidade de itens na Supply */
             $dataSupplier = $supplyModel->fetchRow($supplyModel->getSupplyByCdSupply($row['cdsupply']));
             $dataSupplier['qtbalance'] = $dataSupplier['qtbalance'] + $row['qtquantity'];
             $array['qtbalance'] = $dataSupplier['qtbalance'];
             $supplyModel->update($array, 'cdsupply = ' . $row['cdsupply']);
             $supplystockModel->insert($supply[$i]);
             $supplyflowModel->insert($supplyflow[$i]);
             $i++;
         }
         $lastId = $supplystockModel->getAdapter()->lastInsertId();
         $message = "Cadastro efetuado com sucesso.<br>Número no Protocolo gerado: " . $lastId;
         $supplystockModel->getAdapter()->commit();
     } catch (Exception $e) {
         $supplystockModel->getAdapter()->rollBack();
         $message = "Erro na inserção dos dados.";
     }
     $this->view->message = $message;
 }
コード例 #5
0
 public function checkquantitystockAction()
 {
     $values = $this->_request->getParams();
     $values['qtquantity'] = str_replace(',', '.', $values['qtquantity']);
     $supplystockModel = new SupplystockModel();
     $qtsupplybalance = $supplystockModel->fetchRow($supplystockModel->getQtsupplybalanceByCdsupplyCdsupplycentre($values['cdsupply'], $values['cdsupplycentre']));
     if ($values['qtquantity'] > $qtsupplybalance['qtsupplybalance']) {
         if (number_format($qtsupplybalance['qtsupplybalance']) == 0) {
             $resultsupplystock['idreturn'] = 2;
         } else {
             $resultsupplystock['idreturn'] = 1;
             $resultsupplystock['qtsupplybalance'] = number_format($qtsupplybalance['qtsupplybalance'], 2, ',', '.');
         }
     } else {
         $resultsupplystock['idreturn'] = 0;
     }
     $this->view->resultsupplystock = $resultsupplystock;
 }