public function addfromproveedorAction()
 {
     $form = new Application_Form_Addfromproveedor();
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             $bodega = new Application_Model_DbTable_Bodega();
             $cajatarea = new Application_Model_DbTable_Cajatarea();
             $destinatario = new Application_Model_DbTable_Destinatario();
             $documentoPrincipal = new Application_Model_DbTable_Documentoprincipal();
             $docHasDestinatario = new Application_Model_DbTable_Documentohasdestinatario();
             $documentoSecundario = new Application_Model_DbTable_Documentosecundario();
             $inventario = new Application_Model_DbTable_Inventario();
             $investado = new Application_Model_DbTable_Investado();
             $mercaderia = new Application_Model_DbTable_Mercaderia();
             $talla = new Application_Model_DbTable_Talla();
             $transaccion = new Application_Model_DbTable_Transaccion();
             $transporte = new Application_Model_DbTable_Transporte();
             $principalHasSecundario = new Application_Model_DbTable_Principalhassecundario();
             $inventarioHasTransaccion = new Application_Model_DbTable_Inventariohastransaccion();
             $glosaInventario = new Application_Model_DbTable_Glosainventario();
             $historialInventario = new Application_Model_DbTable_Historialinventario();
             $usuarioInfo = Zend_Auth::getInstance()->getStorage()->read();
             $fecha = date('Y/m/d H:i:s');
             if ($formData['tipoSubmit'] == "borrador") {
                 $investadoArr = $investado->getInvestado2("Borrador");
             } else {
                 $investadoArr = $investado->getInvestado2("Disponible");
                 //ESTADO DEL INVENTARIO, DEPENDE DEL BOTON DE SUBMIT
             }
             $id_investado = $investadoArr['inve_id_inv_estado'];
             $filaInventario = explode('-', $formData['stringMercanciaInput']);
             //0 => string '',1 => codigo,  2 => cant cajas, 3 al 8 => talla/cantidad, 9 => total mercaderia, 10 => subtotal, 11 => ''
             for ($i = 0; $i < count($filaInventario); $i++) {
                 $columnaInventario = explode('|', $filaInventario[$i]);
                 for ($j = 3, $k = 0; $j < 9; $j++, $k++) {
                     $duplaCurva = explode(',', $columnaInventario[$j]);
                     $tallaCurva[$k] = $duplaCurva[0];
                     // TALLAS
                     $cantidadCurva[$k] = $duplaCurva[1];
                     // CANTIDAD
                     if ($k == 0) {
                         $curva = $duplaCurva[1];
                     } else {
                         $curva .= ',' . $duplaCurva[1];
                     }
                 }
                 $columnaInventario['curva'] = $curva;
                 $columnaInventario['completa'] = "1";
                 //1 COMPLETA, 0 INCOMPLETA
                 for ($h = 0; $h < $columnaInventario[2]; $h++) {
                     // cantidad de cajas
                     $id_cajaTarea[$h] = $cajatarea->addCajatarea($columnaInventario);
                     // CAJA TAREA OK ! >cada caja es una distinta fisicamente
                 }
                 $bodegaArr = $bodega->getBodega2("Bodega Principal");
                 // BODEGA, depende del destinatario
                 $id_bodega = $bodegaArr['bod_id_bodega'];
                 $glosaInventarioArr = $glosaInventario->getGlosainventario("Transacción Desde Proveedor");
                 for ($k = 0; $k < 6 && $tallaCurva[$k] != '0'; $k++) {
                     $tallaArr = $talla->getTalla2($tallaCurva[$k]);
                     $mercaderiaArr = $mercaderia->getMercaderia4($columnaInventario[1], $tallaArr['tal_id_talla']);
                     // get MERCADERIA, depende del codigoSMO y talla
                     $id_mercaderia = $mercaderiaArr[0]['mer_id_mercaderia'];
                     //var_dump($mercaderiaArr);
                     for ($h = 0; $h < $columnaInventario[2]; $h++) {
                         // cantidad de cajas
                         $inventarioArr = array("mer_id_mercaderia" => $id_mercaderia, "bod_id_bodega" => $id_bodega, "inve_id_inv_estado" => $id_investado, "cjt_id_caja_tarea" => $id_cajaTarea[$h], "inv_cantidad" => $cantidadCurva[$k], "inv_fecha" => $fecha);
                         $id_inventario = $inventario->addInventario($inventarioArr);
                         // AGREGA INVENTARIO
                         //$indice =($k+1) + ( ($k+1)*($h+1) );
                         $indice = $k + 6 * $h;
                         $id_inventarioArr[$indice] = $id_inventario;
                         $historialInventarioArr = array('inv_id_inventario' => $id_inventario, 'ghi_id_glosa_inventario' => $glosaInventarioArr['ghi_id_glosa_inventario'], 'hii_entrada' => $cantidadCurva[$k], 'hii_salida' => '0', 'hii_total' => $cantidadCurva[$k], 'hii_fecha' => $fecha, 'hii_descripcion' => 'Transacción inicial, cantidad: ' . $cantidadCurva[$k] . ' del inventario: ' . $id_inventario . ' por Usuario:' . $usuarioInfo->usu_rut, 'hii_id_padre_historia' => null);
                         $historialInventario->addHistorialinventario($historialInventarioArr);
                         // HISTORIAL INVENTARIO
                     }
                 }
             }
             if ($formData['dop_numero_identificador'] == '' && $formData['dos_numero_identificador'] != '') {
                 //seleccionar tipo de documento principal  = factura/guiadespacho
                 $formData['dop_tipo_doc_principal'] = "Guía de Despacho";
                 $formData['dop_numero_identificador'] = $formData['dos_numero_identificador'];
                 $formData['dos_numero_identificador'] = "";
             } else {
                 if ($formData['dop_numero_identificador'] != '' && $formData['dos_numero_identificador'] == '') {
                     $formData['dop_tipo_doc_principal'] = "Factura";
                 } else {
                     if ($formData['dop_numero_identificador'] != '' && $formData['dos_numero_identificador'] != '') {
                         $formData['dop_tipo_doc_principal'] = "Factura";
                     } else {
                         $formData['dop_tipo_doc_principal'] = "No disponible";
                     }
                 }
             }
             $formData['fecha'] = $fecha;
             $destinatarioArr2 = $destinatario->getDestinatarioPorId($formData['des_id_destinatario']);
             //get nombre de salida
             $destinatarioArr2->toArray();
             $formData['des_salida'] = $destinatarioArr2[0]['des_nombre'];
             $destinatarioArr = $destinatario->getDestinatarioPorId($formData['des_id_destinatario2']);
             //get nombre de llegada
             $destinatarioArr->toArray();
             $formData['dop_empresa_relacionada'] = $destinatarioArr[0]['des_nombre'];
             $formData['dop_tipo_motivo'] = "Entrega";
             $id_docPrincipal = $documentoPrincipal->addDocumentoPrincipal($formData);
             // AGREGA DOCUMENTO PRINCIPAL
             $time_salida = DateTime::createFromFormat('d/m/Y', $formData['ctr_fecha_salida'])->format('Y/m/d H:i:s');
             $time_llegada = DateTime::createFromFormat('d/m/Y', $formData['ctr_fecha_llegada'])->format('Y/m/d H:i:s');
             $formData['ctr_fecha_salida'] = $time_salida;
             $formData['ctr_fecha_llegada'] = $time_llegada;
             $id_transporte = $transporte->addTransporte($formData);
             // AGREGA TRANSPORTE
             //ORIGEN
             $docHasDestinatarioArr['dop_id_documento_principal'] = $id_docPrincipal;
             $docHasDestinatarioArr['des_id_destinatario'] = $formData['des_id_destinatario'];
             $docHasDestinatarioArr['dhdo_tipo'] = 'Origen';
             $docHasDestinatario->addDocumentohasdestinatario($docHasDestinatarioArr);
             //DESTINATARIO
             $docHasDestinatarioArr['des_id_destinatario'] = $formData['des_id_destinatario2'];
             $docHasDestinatarioArr['dhdo_tipo'] = 'Destinatario';
             $docHasDestinatario->addDocumentohasdestinatario($docHasDestinatarioArr);
             // DOCUMENTO HAS DESTINATARIO
             if ($formData['dos_numero_identificador'] != '') {
                 $id_docSecundario = $documentoSecundario->addDocumentoSecundario($formData['dos_numero_identificador']);
                 // DOCUMENTO SECUNDARIO  >>> TEST DESDE ACA
                 $prinHasSecArr['id_principal'] = $id_docPrincipal;
                 $prinHasSecArr['id_secundario'] = $id_docSecundario;
                 $principalHasSecundario->addPrincipalHasSecundario($prinHasSecArr);
                 // DOCUMENTO PRINCIPAL HAS SECUNDARIO
             }
             if ($formData['tipoSubmit'] == "borrador") {
                 $formData['tra_tipo_motivo'] = "Desde Proveedor (Borrador)";
             } else {
                 $formData['tra_tipo_motivo'] = "Desde Proveedor";
             }
             $transaccionArr = array('dop_id_documento_principal' => $id_docPrincipal, 'ctr_id_transporte' => $id_transporte, 'tra_tipo_motivo' => $formData['tra_tipo_motivo'], 'tra_fecha_inicio' => $fecha, 'tra_fecha_finalizacion' => $fecha, 'tra_rut_autorizado_inicio' => $usuarioInfo->usu_rut, 'tra_rut_autorizado_final' => $usuarioInfo->usu_rut, 'tra_tipo' => $formData['dop_tipo_doc_principal'], 'tra_raw_mercaderia_input' => $formData['stringMercanciaInput']);
             $id_transaccion = $transaccion->addTransaccion($transaccionArr);
             // TRANSACCION
             for ($i = 0; $i < count($id_inventarioArr); $i++) {
                 $invHasTransaccionArr = array('tra_id_transaccion' => $id_transaccion, 'inv_id_inventario' => $id_inventarioArr[$i], 'iht_fecha' => $fecha);
                 $inventarioHasTransaccion->addInventariohastransaccion($invHasTransaccionArr);
                 // INVENTARIO HAS TRANSACCION
             }
             //$this->_helper->redirector('index');
             $returnUrl = $form->getElement('returnUrl')->getValue();
             if (!empty($returnUrl)) {
                 $this->_helper->getHelper('Redirector')->setGotoUrl($returnUrl);
             }
         } else {
             $form->populate($formData);
         }
     }
 }
Exemple #2
0
 private function pago_efectivo($formData)
 {
     $fecha = date('Y/m/d H:i:s');
     //buscar id del cliente
     $id_cliente = "1";
     //buscar id del credito
     $id_credito = "1";
     //talonario boleta, buscar por local y num boleta
     $id_talonario = "1";
     //entrega de ventas default
     $id_entrega_venta = "1";
     //guardar venta
     $ventaArr = array($id_cliente, $id_credito, $id_talonario, $id_entrega_venta, $fecha, $formData['f_total_final']);
     $venta = new Application_Model_DbTable_Venta();
     $id_venta = $venta->addVenta($ventaArr);
     //guardar descuento has venta
     $descuentohasventa = new Application_Model_DbTable_Descuentohasventa();
     $descuentohasventaArr = array($formData['des_id_descuento'], $id_venta, $formData['f_total_final']);
     $descuentohasventa->addDescuentohasventa($descuentohasventaArr);
     //guardar tipo de pago has venta
     $tipopagohasventa = new Application_Model_DbTable_Tipopagohasventa();
     $tipopagohasventaArr = array($formData['tip_id_tipo_pago'], $id_venta, $formData['f_total_final'], "", "", "");
     $tipopagohasventa->addTipopagohasventa($tipopagohasventaArr);
     //guardar comisiones (cajero + vendedor) en venta has usuario
     $ventahasusuario = new Application_Model_DbTable_Ventahasusuario();
     $usuario = new Application_Model_DbTable_Usuarios();
     $usuarioData = $usuario->getUsuario($formData['usu_id_usuario']);
     $perfil = new Application_Model_DbTable_UsuarioHasPerfil();
     $perfilData = $perfil->perfilesUsuario($formData['usu_id_usuario'])->toArray();
     $ventahasusuarioArrVendedor = array($id_venta, $formData['usu_id_usuario'], $formData['f_total_final'] * ($usuarioData['usu_porcentaje_comision'] / 100), $perfilData[0]['per_id_perfil']);
     $ventahasusuario->addVentahasusuario($ventahasusuarioArrVendedor);
     $usuarioInfo = Zend_Auth::getInstance()->getStorage()->read();
     $perfilDataCajero = $perfil->perfilesUsuario($usuarioInfo->usu_id_usuario)->toArray();
     $ventahasusuarioArrCajero = array($id_venta, $usuarioInfo->usu_id_usuario, $formData['f_total_final'] * ($usuarioInfo->usu_porcentaje_comision / 100), $perfilDataCajero[0]['per_id_perfil']);
     $ventahasusuario->addVentahasusuario($ventahasusuarioArrCajero);
     //guardar historial venta
     //no se ha devuelto nada, por lo tanto historial venta = null
     //guardar venta has inventario
     $inventario = new Application_Model_DbTable_Inventario();
     $ventahasinventario = new Application_Model_DbTable_Ventahasinventario();
     $mercaderia = new Application_Model_DbTable_Mercaderia();
     $bodega = new Application_Model_DbTable_Bodega();
     $historialInventario = new Application_Model_DbTable_Historialinventario();
     $filaInventario = explode('-', $formData['stringMercanciaInput']);
     $glosaInventario = new Application_Model_DbTable_Glosainventario();
     // stringMercanciaInput	|58001|2|34|44000|-|58001|2|34|44000|
     for ($i = 0; $i < count($filaInventario); $i++) {
         $filaInventario[$i] = explode('|', $filaInventario[$i]);
         $nomBodega = "Bodega " . $formData['loc_nombre'];
         $inventarioArr = $inventario->getInventarioPorFiltro($nomBodega, $filaInventario[$i][1], $filaInventario[$i][3]);
         $id_inventario = $inventarioArr[0]['inv_id_inventario'];
         $mercaderiaArr = $mercaderia->getMercaderia3($filaInventario[$i][1])->toArray();
         $id_mercaderia = $mercaderiaArr[0]['mer_id_mercaderia'];
         $bodegaArr = $bodega->getBodega2($nomBodega);
         $id_bodega = $bodegaArr['bod_id_bodega'];
         $ventahasinventarioArr = array($id_inventario, $id_venta, $filaInventario[$i][4], $filaInventario[$i][2]);
         $ventahasinventario->addVentahasinventario($ventahasinventarioArr);
         //guardar historial inventario
         $glosaInventarioArr = $glosaInventario->getGlosainventario("Venta");
         $historialLast = $historialInventario->getLastHistorialinventario($id_inventario);
         $newHiiTotal = $historialLast[0]['hii_total'] - $filaInventario[$i][2];
         //resta del ultimo historial menos la venta
         $historialInventarioArr = array('inv_id_inventario' => $id_inventario, 'ghi_id_glosa_inventario' => $glosaInventarioArr['ghi_id_glosa_inventario'], 'hii_entrada' => '0', 'hii_salida' => $filaInventario[$i][2], 'hii_total' => $newHiiTotal, 'hii_fecha' => $fecha, 'hii_descripcion' => 'Venta de mercadería (' . $filaInventario[$i][1] . '|' . $filaInventario[$i][2] . '|' . $filaInventario[$i][3] . '|' . $filaInventario[$i][4] . '), cantidad: ' . $filaInventario[$i][2] . ' del inventario: ' . $id_inventario . ' por Usuario:' . $usuarioInfo->usu_rut, 'hii_id_padre_historia' => $historialLast[0]['hii_id_historial_inventario']);
         $historialInventario->addHistorialinventario($historialInventarioArr);
         //guardar inventario
         if ($newHiiTotal == '0') {
             $newInvEstado = '3';
             //depleted
         } else {
             if ($newHiiTotal <= 0) {
                 $newInvEstado = '5';
                 //error
             } else {
                 $newInvEstado = '1';
                 //disponible
             }
         }
         $inventarioArr2 = array('inv_id_inventario' => $id_inventario, 'mer_id_mercaderia' => $id_mercaderia, 'bod_id_bodega' => $id_bodega, 'inve_id_inv_estado' => $newInvEstado, 'cjt_id_caja_tarea' => "1", 'inv_cantidad' => $newHiiTotal, 'inv_fecha' => $fecha);
         var_dump($inventarioArr2);
         //$inventario->updateInventario($inventarioArr2);
     }
 }