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); } } }
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); } }