PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/core/app/view/compra-view.php

https://gitlab.com/D-apos-software/Alcesac
PHP | 367 lines | 286 code | 81 blank | 0 comment | 9 complexity | 85d1566461ceba31d1fc9cd9a8af215d MD5 | raw file
  1. <head>
  2. <link rel="stylesheet" href="css/vista_compra/style.css">
  3. <link rel="stylesheet" href="assets/js/vendor/footable/css/footable.core.min.css">
  4. </head>
  5. <?php
  6. date_default_timezone_set('America/Costa_Rica');
  7. $hoy = date("Y-m-d");
  8. $alert_stock = false;
  9. $u = null;
  10. $u = UserData::getById(Session::getUID());
  11. $usuario = $u->is_admin;
  12. $id_usuario = $u->id;
  13. $hora = date("H:i:s");
  14. $fecha_completo = date("Y-m-d H:i:s");
  15. ?>
  16. <script src="assets/js/vendor/jquery/jquery-1.11.2.min.js"></script>
  17. <button type="button" class="btn btn-success" data-toggle="modal" data-target="#myModal2">
  18. <span class="glyphicon glyphicon-indent-left"></span> Estado de productos
  19. </button>
  20. <div style="margin-top:20px; " class="row">
  21. <div class="col-sm-6 col-md-8">
  22. <!-- Detalle de Compra -->
  23. <div class="panel panel-default" id="panel-detalle">
  24. <div class="panel-heading">
  25. <h6 class="panel-title">Detalle de Compra</h6>
  26. </div>
  27. <div class="panel-body">
  28. <div class="form-group">
  29. <div class="row">
  30. <div class="col-sm-12">
  31. <div class="input-group">
  32. <button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModal">
  33. <span class="glyphicon glyphicon-plus"></span> Agregar productos
  34. </button>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="table-responsive">
  40. <table id="tbldetalle" class="table table-xxs">
  41. <thead>
  42. <tr class="bg-blue">
  43. <th></th>
  44. <th>Producto</th>
  45. <th>Cant.</th>
  46. <th class="text-center">Precio</th>
  47. <th class="text-center">Importe</th>
  48. <th class="text-center">Quitar</th>
  49. </tr>
  50. </thead>
  51. <tbody id="resultados">
  52. </tbody>
  53. </table>
  54. </div>
  55. </div>
  56. </div>
  57. <!-- /Detalle de Compra -->
  58. <div class="form-group">
  59. <div class="row">
  60. <div class="col-sm-3">
  61. <a href="index.php?view=cancelar_compra" class="btn btn-danger btn-labeled btn-block"><b>
  62. <i class="icon-cancel-circle2"></i>
  63. </b> Cancelar Compra</a>
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. <!-- tile -->
  69. <!-- Informacion Proveedor -->
  70. <div class="col-sm-6 col-md-4">
  71. <!-- tile -->
  72. <section class="tile">
  73. <!-- tile header -->
  74. <div class="tile-header bg-slategray text-center" style="background-color: #4caf50 !important;
  75. padding: 20px 15px !important;">
  76. <h1 class="custom-font text-uppercase" id="total_compra"><strong>IMPORTANTE </strong></h1>
  77. </div>
  78. <!-- /tile header -->
  79. <!-- tile body -->
  80. <div class="tile-body">
  81. <form role="form" autocomplete="off" class="form-validate-jquery" method="post" action="index.php?view=addcompra">
  82. <!--
  83. <div class="form-group">
  84. <div class="row">
  85. <div class="col-sm-12">
  86. <label>Proveedor</label>
  87. <select class="form-control select2" required name="id_proveedor">
  88. <option value="NULL">---- Selecciona Proveedor (OPCIONAL) ----</option>
  89. <?php $proveedores = PersonaData::getProveedor(); ?>
  90. <?php foreach ($proveedores as $proveedor) : ?>
  91. <option value="<?php echo $proveedor->id; ?>"><?php echo $proveedor->nombre; ?></option>
  92. <?php endforeach; ?>
  93. </select>
  94. </div>
  95. </div>
  96. </div>
  97. -->
  98. <div class="form-group">
  99. <div class="row">
  100. <div class="col-sm-6">
  101. <label>Tipo Comprobante</label>
  102. <!--<select data-placeholder="..." name="id_tipo_comprobante"
  103. class="form-control" style="text-transform:uppercase;"
  104. onkeyup="javascript:this.value=this.value.toUpperCase();">
  105. <option value="1">TICKET</option>
  106. <option value="2">BOLETA</option>
  107. <option value="3">FACTURA</option>
  108. </select>-->
  109. <?php $tipo_comprobantes = TipoComprobanteData::getAll(); ?>
  110. <select data-placeholder="..." name="id_tipo_comprobante" class="form-control" style="text-transform:uppercase;" onkeyup="javascript:this.value=this.value.toUpperCase();">
  111. <option value="">--- Selecciona ---</option>
  112. <?php foreach ($tipo_comprobantes as $tipo_comprobante) : ?>
  113. <option value="<?php echo $tipo_comprobante->estado ?>"><?php echo $tipo_comprobante->nombre; ?></option>
  114. <?php endforeach; ?>
  115. </select>
  116. </div>
  117. <div class="col-sm-6">
  118. <label>Fecha Comprobante</label>
  119. <input type="date" id="txtFechaC" name="fecha_comprobante" placeholder="" class="form-control" value="<?php echo $hoy; ?>" disabled>
  120. </div>
  121. </div>
  122. </div>
  123. <div class="form-group">
  124. <div class="row">
  125. <div class="col-sm-6">
  126. <label>Forma de Pago</label>
  127. <!--<select data-placeholder="..." name="contado"
  128. class="form-control" style="text-transform:uppercase;"
  129. onkeyup="javascript:this.value=this.value.toUpperCase();">
  130. <option value="1">CONTADO</option>
  131. </select>-->
  132. <?php $tipo_comprobantes = PeriodosData::getAll(); ?>
  133. <select data-placeholder="..." name="periodo" class="form-control" style="text-transform:uppercase;">
  134. <option value="">--- Selecciona ---</option>
  135. <?php foreach ($tipo_comprobantes as $tipo_comprobante) : ?>
  136. <option value="1"><?php echo $tipo_comprobante->nombre; ?></option>
  137. <?php endforeach; ?>
  138. </select>
  139. </div>
  140. <div class="col-sm-6">
  141. <label>No. Comprobante</label>
  142. <div class="form-group has-feedback has-feedback-left">
  143. <input type="text" name="nro_comprobante" placeholder="04508" class="form-control" style="text-transform:uppercase;" onkeyup="javascript:this.value=this.value.toUpperCase();" required>
  144. <div class="form-control-feedback">
  145. <i class="icon-certificate text-size-base"></i>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <div class="form-group">
  152. <div class="row">
  153. <div class="col-sm-12">
  154. <button type="submit" class="btn btn-success
  155. btn-labeled btn-block btn-ladda btn-ladda-spinner"><b><i class="fa fa-money"></i>
  156. </b> Guardar Compra</button>
  157. </div>
  158. </div>
  159. </div>
  160. </form>
  161. </div>
  162. <!-- /tile body -->
  163. </section>
  164. <!-- /tile -->
  165. </div>
  166. <!-- Informacion Proveedor -->
  167. </div>
  168. </div>
  169. <!-- /content area -->
  170. </div>
  171. <!-- /main content -->
  172. </div>
  173. <!-- /page content -->
  174. </div>
  175. <!-- /page container -->
  176. </body>
  177. </html>
  178. <!-- SECCION MODALS -->
  179. <!-- Carga los datos ajax -->
  180. <!-- Modal -->
  181. <div class="modal fade bs-example-modal-lg" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  182. <div class="modal-dialog modal-lg" role="document">
  183. <div class="modal-content">
  184. <div class="modal-header">
  185. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">ACEPTAR</span></button>
  186. <h4 class="modal-title" id="myModalLabel">Buscar productos</h4>
  187. </div>
  188. <div class="modal-body">
  189. <div id="loader" style="position: absolute; text-align: center; top: 55px; width: 100%;display:none;"></div><!-- Carga gif animado -->
  190. <div class="outer_div"></div><!-- Datos ajax Final -->
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <!-- The Modal -->
  196. <div class="modal" id="myModal2">
  197. <div class="modal-dialog">
  198. <div class="modal-content">
  199. <!-- Modal Header -->
  200. <div class="modal-header">
  201. <h4 class="modal-title">Productos Avisos Stock</h4>
  202. <button type="button" class="close" data-dismiss="modal">&times;</button>
  203. </div>
  204. <!-- Modal body -->
  205. <div class="modal-body">
  206. <table class="table table-striped">
  207. <thead>
  208. <tr>
  209. <th>Nombre</th>
  210. <th>Aviso stock mínimo</th>
  211. <th>Aviso stock máximo</th>
  212. <th style="color:#d43f3a;">Stock</th>
  213. </tr>
  214. </thead>
  215. <tbody>
  216. <?php $productos = ProductoData::getAll();
  217. if (count($productos) > 0) {
  218. ?>
  219. <?php foreach ($productos as $producto) : ?>
  220. <?php $entrada_producto = 0; ?>
  221. <?php $entradas = ProcesoVentaData::getAllEntradas($producto->id);
  222. if (count($entradas) > 0) { ?>
  223. <?php foreach ($entradas as $entrada) : $entrada_producto = $entrada->cantidad + $entrada_producto;
  224. endforeach; ?>
  225. <?php } else {
  226. $entrada_producto = 0;
  227. }; ?>
  228. <?php $salida_producto = 0; ?>
  229. <?php $salidas = ProcesoVentaData::getAllSalidas($producto->id);
  230. if (count($salidas) > 0) { ?>
  231. <?php foreach ($salidas as $salida) : $salida_producto = $salida->cantidad + $salida_producto;
  232. endforeach; ?>
  233. <?php } else {
  234. $salida_producto = 0;
  235. }; ?>
  236. <?php $stock = ($producto->stock + $entrada_producto) - $salida_producto; ?>
  237. <?php
  238. if ($stock < $producto->aviso_stock || $stock >= $producto->stock_max) {
  239. $alert_stock = true;
  240. ?>
  241. <tr>
  242. <td><?php echo $producto->nombre; ?></td>
  243. <td><?php echo $producto->aviso_stock; ?></td>
  244. <td><?php echo $producto->stock_max; ?></td>
  245. <td><?php echo $stock; ?></td>
  246. <?php } ?>
  247. <?php endforeach; ?>
  248. <tfoot class="hide-if-no-paging">
  249. <tr>
  250. <td colspan="6" class="text-center">
  251. <ul class="pagination"></ul>
  252. </td>
  253. </tr>
  254. </tfoot>
  255. <?php }
  256. ?>
  257. <?php
  258. ?>
  259. </tbody>
  260. </table>
  261. </div>
  262. <!-- Modal footer -->
  263. <div class="modal-footer">
  264. <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  265. </div>
  266. </div>
  267. </div>
  268. </div>
  269. <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
  270. <script src="js/vista_compra/script.js"></script>
  271. <script src="sweetalert2.all.min.js"></script>
  272. <script src="sweetalert2.min.js"></script>
  273. <link rel="stylesheet" href="sweetalert2.min.css">
  274. <script>
  275. $(document).ready(function() {
  276. load(1);
  277. });
  278. </script>
  279. <script>
  280. var estado = <?php echo $alert_stock; ?>;
  281. if (estado == true) {
  282. $(function() {
  283. $("#myModal2").modal();
  284. });
  285. }
  286. </script>