function save($oData) { mysql_query("BEGIN"); if ($oData["subproducto"] == "si") { $id = $oData["id_producto_padre"]; $rs = $this->getById($id); $precio_unitario = round($rs['precio_unitario_producto'] / $oData['unidades_por_paquete'], 2); $rdo1 = $precio_unitario + $rs['iva_producto'] * $precio_unitario / 100; $rdo2 = $rs['ganancia_producto'] * $rdo1 / 100; $precio_final = round($rdo1 + $rdo2, 2); $sql = "INSERT INTO productos (id_tipo_producto, \r\n detalle_producto, \r\n precio_unitario_producto, \r\n iva_producto, \r\n ganancia_producto,\r\n precio_final_producto, \r\n codigo_producto, \r\n id_tipo_prediccion,\r\n id_rubro,\r\n id_marca,\r\n\t\t\t\t\t\t\t\t\t\t\tid_registro_estado)\r\n VALUES (" . $rs['id_tipo_producto'] . ", UPPER('" . addslashes($oData['detalle_producto']) . "'), " . $precio_unitario . ", " . $rs['iva_producto'] . ", " . $rs['ganancia_producto'] . ", " . $precio_final . ", " . $oData['codigo_producto'] . ", " . $rs['id_tipo_prediccion'] . ", " . $rs['id_rubro'] . ", " . $rs['id_marca'] . ", " . $rs['id_registro_estado'] . ") "; if (!mysql_query($sql)) { die('Error: ' . mysql_error() . $sql); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } else { $id_subproducto = mysql_insert_id(); $sql = "INSERT INTO productos_proveedores (id_producto, id_proveedor, precio_costo_proveedor, tpo_de_entrega)\r\n SELECT " . $id_subproducto . ", t1.id_proveedor, t1.precio_costo_proveedor, t1.tpo_de_entrega\r\n FROM productos_proveedores t1 WHERE t1.id_producto=" . $oData["id_producto_padre"]; if (!mysql_query($sql)) { die('Error: ' . mysql_error() . $sql); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } else { $sql = "UPDATE productos SET id_subproducto={$id_subproducto}, cant_por_paquete=" . $oData['unidades_por_paquete'] . " WHERE id_producto=" . $oData["id_producto_padre"]; if (!mysql_query($sql)) { die('Error: ' . mysql_error() . $sql); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } else { mysql_query("COMMIT"); pushInfo("Cambios aplicados exitosamente"); return true; } } } } else { if ($oData['id_producto']) { //UPDATE $sql = "UPDATE productos SET id_tipo_producto = " . $oData['tipo_producto'] . ", detalle_producto = UPPER('" . utf8_decode(addslashes($oData['detalle_producto'])) . "'), precio_unitario_producto = " . $oData['precio_unitario_producto'] . ", iva_producto = " . $oData['iva_producto'] . ", ganancia_producto = " . $oData['ganancia_producto'] . ", precio_final_producto = " . round($oData['precio_final_producto'], 2) . ", codigo_producto = " . $oData['codigo_producto'] . ", id_tipo_prediccion = " . $oData['tipo_prediccion'] . ", id_rubro = " . $oData['nombre_rubro'] . ", id_marca = " . $oData['nombre_marca'] . ", id_registro_estado = " . $oData['id_registro_estado'] . " WHERE id_producto = " . $oData['id_producto']; } else { //INSERT $sql = "INSERT INTO productos (id_tipo_producto, \r\n detalle_producto, \r\n precio_unitario_producto, \r\n iva_producto, \r\n ganancia_producto,\r\n precio_final_producto, \r\n codigo_producto, \r\n id_tipo_prediccion,\r\n id_rubro,\r\n id_marca,\r\n\t\t\t\t\t\t\t\t\t\t\tid_registro_estado)\r\n VALUES (" . $oData['tipo_producto'] . ", UPPER('" . utf8_decode(addslashes($oData['detalle_producto'])) . "'), " . $oData['precio_unitario_producto'] . ", " . $oData['iva_producto'] . ", " . $oData['ganancia_producto'] . ", " . round($oData['precio_final_producto'], 2) . ", " . $oData['codigo_producto'] . ", " . $oData['tipo_prediccion'] . ", " . $oData['nombre_rubro'] . ", " . $oData['nombre_marca'] . ", " . $oData['id_registro_estado'] . ") "; } if (!mysql_query($sql)) { die('Error: ' . mysql_error() . $sql); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } else { $prov = explode(",", $oData['prov_checked']); if (!$oData['id_producto']) { $id_prod = mysql_insert_id(); } else { $id_prod = $oData['id_producto']; $sql = "DELETE FROM productos_proveedores WHERE id_producto = " . $id_prod; mysql_query($sql); } foreach ($prov as $proveedor) { $values = explode("|", $proveedor); $sql = "INSERT INTO productos_proveedores SET id_producto = " . $id_prod . ", id_proveedor = " . $values[0] . ", precio_costo_proveedor = " . $values[1] . ", tpo_de_entrega = " . $values[2]; if (!mysql_query($sql)) { die('Error: ' . mysql_error()); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } } if ($oData["tipo_prediccion"] == 3) { $sql = "SELECT * FROM indices_estacionales WHERE id_producto = " . $oData["id_producto"]; $result = getRS($sql); if (!getNrosRows($result)) { $exp = new ExpertoPrediccion(); $dur_periodo = $exp->getDuracionPeriodo(); $cant_dias_anio = date("z", mktime(0, 0, 0, 12, 31, date("Y"))) + 1; $periodo_x_anio = number_format($cant_dias_anio / $dur_periodo); for ($i = 0; $i < $periodo_x_anio; $i++) { $sql = "INSERT INTO indices_estacionales (id_producto, orden) VALUES (" . $id_prod . "," . ($i + 1) . ")"; $rs = getRS($sql); if (!$rs) { die('Error: ' . mysql_error()); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } } } } if ($oData['id_producto']) { $rs = $this->getById($oData["id_producto"]); if ($rs["id_subproducto"]) { $precio_unitario = round($rs['precio_unitario_producto'] / $rs['cant_por_paquete'], 2); $rdo1 = $precio_unitario + $rs['iva_producto'] * $precio_unitario / 100; $rdo2 = $rs['ganancia_producto'] * $rdo1 / 100; $precio_final = round($rdo1 + $rdo2, 2); $sql = "UPDATE productos SET precio_unitario_producto = " . $precio_unitario . ", iva_producto = " . $rs['iva_producto'] . ", ganancia_producto = " . $rs['ganancia_producto'] . ", precio_final_producto = " . $precio_final . " WHERE id_producto = " . $rs["id_subproducto"]; $rs = getRS($sql); if (!$rs) { die('Error: ' . mysql_error()); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } } else { $subproducto = $this->getSubproducto($oData['id_producto']); if ($subproducto) { $sql = "UPDATE productos SET cant_por_paquete=" . $oData['unidades_por_paquete'] . " WHERE id_producto = " . $subproducto['id_producto']; $rs = getRS($sql); if (!$rs) { die('Error: ' . mysql_error()); mysql_query("ROLLBACK"); pushError("Error al crear el producto"); return false; } } } } mysql_query("COMMIT"); pushInfo("Cambios aplicados exitosamente"); return true; } } }
<?php include_once 'ExpertoRepartos.php'; $oData = $oRequestData = $_POST ? $_POST : $_GET; $exp = new ExpertoRepartos(); switch ($oData["behavior"]) { case "reloadListRepartos": $fecha_fin = $oData["fecha_fin"]; $fecha_inicio = $oData["fecha_inicio"]; $data = $exp->getAll($fecha_inicio, $fecha_fin); echo "<script> var data = \"{$data}\";\n parent.mygrid.clearAll();\n\t\t\t\t\t\t\tparent.mygrid.detachEvent(parent.idOnXLE);\n parent.mygrid.parse(data, 'xml');\n parent.mygrid.filterByAll();\n </script>"; exit; break; case 'save': if ($exp->save($oData)) { pushInfo("Cambios aplicados exitosamente"); echo true; } else { pushError("El registro no pudo ser creado"); echo false; } break; case "delete": $flag = false; if (isset($oData['id_reparto'])) { $ids = explode(",", $oData['id_reparto']); foreach ($ids as $id) { if (!$exp->delete($id)) { $flag = true; } }
pushError("Los cambios no pudieron ser aplicados"); } else { pushInfo("Cambios aplicados exitosamente"); } exit; break; case 'toExcel': $exp->toExcel($oData["filtros"]); exit; break; case 'enviarVentas': $rdo = $exp->enviarVentas($oData); if (!$rdo) { pushError("El mail no ha podido ser enviado..."); } else { pushInfo("Mail enviado!!!"); } echo $msge; exit; break; } $exp = new ExpertoVentas(); if ($oData["source"] == "ventasListAll") { $desde = $oData["fecha_inicio"]; $hasta = $oData["fecha_fin"]; $data = $exp->getAllVentas($desde, $hasta); } else { if ($oData["id_reparto"]) { $id_reparto = $oData["id_reparto"]; $data = $exp->getAllVentasByReparto($id_reparto); }