PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/administracion/models/ventas/ventas_restaurant/ventas/query/ventas_restaurant_anular_venta.php

https://gitlab.com/HeinerAEs/controlERP
PHP | 258 lines | 205 code | 38 blank | 15 comment | 15 complexity | 59418f076acd6939d695d5d8fcf45289 MD5 | raw file
  1. <?php
  2. include "../../../../../config/conexion.php";
  3. include "../../../../../config/basico.php";
  4. $ventas_id = $_POST['ventas_id'];
  5. $usuario_id = $_POST['usuario_admin_id'];
  6. $cliente_id = $_POST['cliente_id'];
  7. $mesa_id = $_POST['mesa_id'];
  8. $comentario = substr($_POST['comentario'], 0, 200);
  9. /*verificamos si las variables se envian*/
  10. if(empty($ventas_id)) {
  11. echo "Usted no a llenado todos los campos";
  12. exit;
  13. }
  14. /*Recuperamos variables de VENTA*/
  15. $query = "SELECT
  16. ventas.descuento
  17. FROM
  18. ventas ,
  19. sala_mesa ,
  20. cliente
  21. WHERE
  22. ventas.mesa_id = sala_mesa.mesa_id AND
  23. ventas.cliente_id = cliente.cliente_id AND
  24. ventas.estado_mesa = 1 AND
  25. ventas.mesa_id = $mesa_id" ;
  26. mysql_select_db($database_fastERP, $fastERP);
  27. $table = mysql_query($query, $fastERP) or die(mysql_error());
  28. $row_table = mysql_fetch_assoc($table);
  29. $query_ventas_det = "SELECT
  30. ventas_det.cantidad,
  31. FORMAT(ventas_det.precio, 2) AS precio,
  32. ventas_det.comentario,
  33. insumo.insumo
  34. FROM
  35. ventas ,
  36. ventas_det ,
  37. insumo
  38. WHERE
  39. ventas.ventas_id = ventas_det.ventas_id AND
  40. ventas_det.producto_id = insumo.insumo_id AND
  41. ventas_det.ventas_id = $ventas_id" ;
  42. $ventas_det = mysql_query($query_ventas_det, $fastERP) or die(mysql_error());
  43. $row_ventas_det = mysql_fetch_assoc($ventas_det);
  44. $total_acumulado = 0;
  45. do {
  46. $total_acumulado += $row_ventas_det['precio'] * $row_ventas_det['cantidad'];
  47. } while ($row_ventas_det = mysql_fetch_assoc($ventas_det));
  48. /*Variables de consulta*/
  49. $valor_neto = ($total_acumulado - $row_table['descuento']) / 1.18;
  50. $impuesto1 = $valor_neto * 0.18;
  51. $total = $total_acumulado - $row_table['descuento'];
  52. /*BEGIN END TABLE*/
  53. /*estado_mesa= 4 Estado de mesa N° 4 = terminado*/
  54. $query_ventas = sprintf("UPDATE `controlg_controlerp`.`ventas`
  55. SET fecha_anulado = now(), usuario_id_anular = %d, impuesto1 = '%s', valor_neto = '%s', total = '%s',
  56. estado = 3, estado_mesa = 4, comprobante_tipo = '', comentario_anula = '%s'
  57. WHERE ventas_id=%d;",
  58. fn_filtro($usuario_id),
  59. fn_filtro($impuesto1),
  60. fn_filtro($valor_neto),
  61. fn_filtro($total),
  62. fn_filtro($comentario),
  63. fn_filtro((int)$ventas_id)
  64. );
  65. mysql_select_db($database_fastERP, $fastERP);
  66. $ventas = mysql_query($query_ventas, $fastERP) or die(mysql_error());
  67. $query_ventas = sprintf("UPDATE `controlg_controlerp`.`sala_mesa`
  68. SET estado = 0
  69. WHERE mesa_id = %d;",
  70. fn_filtro((int)$mesa_id)
  71. );
  72. mysql_select_db($database_fastERP, $fastERP);
  73. $ventas = mysql_query($query_ventas, $fastERP) or die(mysql_error());
  74. /**/
  75. /**/
  76. /*INSERT de los insumos al ALMACEN*/
  77. $query = "SELECT
  78. insumo_det.unidad_comp_id,
  79. ins.unidad_id,
  80. ins.categoria_id,
  81. ins.insumo,
  82. ins.insumo_id,
  83. prod.area_produccion_id,
  84. (
  85. IF(ventas_det.comentario LIKE '1/2 plato%' ,
  86. ((ventas_det.cantidad * insumo_det.cantidad) / 2),
  87. (ventas_det.cantidad * insumo_det.cantidad))
  88. ) AS cantidad
  89. FROM
  90. insumo AS prod ,
  91. insumo_det ,
  92. insumo AS ins ,
  93. ventas ,
  94. ventas_det
  95. WHERE
  96. insumo_det.insumo_id = prod.insumo_id AND
  97. insumo_det.insumo_comp_id = ins.insumo_id AND
  98. ventas_det.producto_id = prod.insumo_id AND
  99. ventas.ventas_id = ventas_det.ventas_id AND
  100. ventas.ventas_id = $ventas_id";
  101. mysql_select_db($database_fastERP, $fastERP);
  102. $table = mysql_query($query, $fastERP) or die(mysql_error());
  103. $row_table = mysql_fetch_assoc($table);
  104. $unidad_id = ($row_table['unidad_id'] == '') ? 0 : $row_table['unidad_id'];
  105. $unidad_comp_id = ($row_table['unidad_comp_id'] == '') ? 0 : $row_table['unidad_comp_id'];
  106. /*STOCK SALIDA*/
  107. /*QUERY PARA BUSCAR EL ALMACEN SEGUN SU USUARIO*/
  108. $query_almacen = " SELECT usuario_almacen.almacen_id
  109. FROM usuario , usuario_almacen
  110. WHERE usuario.usuario_id = usuario_almacen.usuario_id
  111. AND usuario_almacen.usuario_id = $usuario_id " ;
  112. $almacen = mysql_query($query_almacen, $fastERP) or die(mysql_error());
  113. $row_almacen = mysql_fetch_assoc($almacen);
  114. $almacen_id = $row_almacen['almacen_id'];
  115. $stock_out = sprintf("INSERT INTO `controlg_controlerp`.`stock_out` (`usuario_id`, `almacen_id`, `ventas_id`, `fecha`, `tipo_salida`, `detalle`)
  116. VALUES ('%s', '%s', '%s', now(), 1, 'venta');",
  117. fn_filtro($usuario_id),
  118. fn_filtro($almacen_id),
  119. fn_filtro($ventas_id)
  120. );
  121. if(!mysql_query($stock_out, $fastERP)){ echo "Error al insertar:\n$stock_out"; }
  122. $stock_in_id = mysql_insert_id();
  123. do {
  124. /*Query equivalencia de UNIDAD*/
  125. $query_unidad = "SELECT unidad_detalle.equivalencia
  126. FROM unidad AS origen , unidad_detalle , unidad AS destino
  127. WHERE unidad_detalle.unidad_origen_id = origen.unidad_id
  128. AND unidad_detalle.unidad_destino_id = destino.unidad_id
  129. AND origen.unidad_id = $unidad_id
  130. AND destino.unidad_id = $unidad_comp_id;";
  131. mysql_select_db($database_fastERP, $fastERP);
  132. $unidad = mysql_query($query_unidad, $fastERP) or die(mysql_error());
  133. $row_unidad = mysql_fetch_assoc($unidad);
  134. $cantidad_receta = ($row_table['categoria_id'] == 2) ? ($row_table['cantidad'] * -1) : (($row_table['cantidad'] * $row_unidad['equivalencia']) * -1);
  135. $almacen_det = sprintf("INSERT INTO `controlg_controlerp`.`almacen_det` (`ventas_id`, `producto_id`, `cantidad`, `activo`)
  136. VALUES ('%s', '%s', '%s', '1');",
  137. fn_filtro($ventas_id),
  138. fn_filtro($row_table['insumo_id']),
  139. fn_filtro($cantidad_receta)
  140. );
  141. if(!mysql_query($almacen_det, $fastERP))
  142. echo "Error al insertar:\n$almacen_det";
  143. /*BEGIN INVENTARY 2*/
  144. /*STOCK SALIDA*/
  145. $query_area_prod = "SELECT
  146. almacen.almacen_id
  147. FROM
  148. area_produccion ,
  149. almacen
  150. WHERE
  151. area_produccion.almacen_id = almacen.almacen_id AND
  152. area_produccion.area_produccion_id = $row_table[area_produccion_id]";
  153. $area_prod = mysql_query($query_area_prod, $fastERP) or die(mysql_error());
  154. $totalRows_area_prod = mysql_num_rows($area_prod);
  155. $row_area_prod = mysql_fetch_assoc($area_prod);
  156. $stock_out_det = sprintf("INSERT INTO `controlg_controlerp`.`stock_out_det` (`stock_out_id`, `insumo_id`, `almacen_id`, `unidad_id`, `cantidad`)
  157. VALUES ('%s', '%s', '%s', '%s', '%s');",
  158. fn_filtro($stock_in_id),
  159. fn_filtro($row_table['insumo_id']),
  160. fn_filtro($row_area_prod['almacen_id']),
  161. fn_filtro($row_table['unidad_id']),
  162. fn_filtro($cantidad_receta)
  163. );
  164. if(!mysql_query($stock_out_det, $fastERP))
  165. echo "Error al insertar:\n$stock_out_det";
  166. /*STOCK*/
  167. $query_buscar_insumo = "SELECT
  168. stock.stock_id,
  169. stock.stock,
  170. stock.insumo_id
  171. FROM
  172. stock ,
  173. insumo ,
  174. unidad
  175. WHERE
  176. stock.insumo_id = insumo.insumo_id AND
  177. insumo.unidad_id = unidad.unidad_id AND
  178. stock.insumo_id = $row_table[insumo_id] AND
  179. stock.almacen_id = $row_area_prod[almacen_id]";
  180. $buscar_insumo = mysql_query($query_buscar_insumo, $fastERP) or die(mysql_error());
  181. $totalRows_buscar_insumo = mysql_num_rows($buscar_insumo);
  182. $row_buscar_insumo = mysql_fetch_assoc($buscar_insumo);
  183. if ($totalRows_buscar_insumo <= 0 || $totalRows_buscar_insumo == "" || empty($totalRows_buscar_insumo)) {
  184. $query_agregar_insumo = "SELECT
  185. insumo.insumo_id,
  186. insumo.insumo,
  187. unidad.unidad_id
  188. FROM
  189. insumo ,
  190. unidad
  191. WHERE
  192. insumo.unidad_id = unidad.unidad_id AND
  193. insumo.insumo_id = $row_table[insumo_id]";
  194. $agregar_insumo = mysql_query($query_agregar_insumo, $fastERP) or die(mysql_error());
  195. $row_agregar_insumo = mysql_fetch_assoc($agregar_insumo);
  196. $stock = sprintf("INSERT INTO `controlg_controlerp`.`stock` (`insumo_id`, `almacen_id`, `unidad_id`, `insumo`, `stock`)
  197. VALUES ('%s', '%s', '%s', '%s');",
  198. fn_filtro($row_agregar_insumo['insumo_id']),
  199. fn_filtro($row_area_prod['almacen_id']),
  200. fn_filtro($row_agregar_insumo['unidad_id']),
  201. fn_filtro($row_agregar_insumo['insumo']),
  202. fn_filtro($cantidad_receta * -1)
  203. );
  204. if(!mysql_query($stock, $fastERP))
  205. echo "Error al insertar:\n$stock";
  206. } else {
  207. $stock_cantidad = $row_buscar_insumo['stock'] + $cantidad_receta;
  208. $query_stock = sprintf("UPDATE `controlg_controlerp`.`stock`
  209. SET stock = '%s'
  210. WHERE insumo_id = %d
  211. AND stock_id = %d;",
  212. fn_filtro($stock_cantidad),
  213. fn_filtro((int)$row_buscar_insumo['insumo_id']),
  214. fn_filtro((int)$row_buscar_insumo['stock_id'])
  215. );
  216. $stock = mysql_query($query_stock, $fastERP) or die(mysql_error());
  217. }
  218. /*END INVENTARY 2*/
  219. } while ( $row_table = mysql_fetch_assoc($table) );
  220. ?>