forked from nathalie/pedi2
Merge pull request 'funcion/nueva-lista-de-productos' (#29) from funcion/nueva-lista-de-productos into master
Reviewed-on: nathalie/pedi2#29
This commit is contained in:
commit
bb29e34b1b
18 changed files with 4348 additions and 6706 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -12,4 +12,6 @@ npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
.idea
|
.idea
|
||||||
/resources/csv/exports/*.csv
|
/resources/csv/exports/*.csv
|
||||||
/public
|
/public/css/
|
||||||
|
/public/js/
|
||||||
|
/public/mix-manifest.json
|
||||||
|
|
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
|
@ -1,8 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
2925
.idea/commandlinetools/Laravel_28_2_22_11_47.xml
generated
2925
.idea/commandlinetools/Laravel_28_2_22_11_47.xml
generated
File diff suppressed because it is too large
Load diff
|
@ -1,47 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
|
|
||||||
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<xs:element name="framework" type="frameworkType"/>
|
|
||||||
<xs:complexType name="commandType">
|
|
||||||
<xs:all>
|
|
||||||
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1"/>
|
|
||||||
<xs:element type="xs:string" name="params" minOccurs="0" maxOccurs="1"/>
|
|
||||||
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
|
||||||
<xs:element type="optionsBeforeType" name="optionsBefore" minOccurs="0" maxOccurs="1"/>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:complexType name="frameworkType">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element type="xs:string" name="extraData" minOccurs="0" maxOccurs="1"/>
|
|
||||||
<xs:element type="commandType" name="command" maxOccurs="unbounded" minOccurs="0"/>
|
|
||||||
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
|
||||||
</xs:sequence>
|
|
||||||
<xs:attribute type="xs:string" name="name" use="required"/>
|
|
||||||
<xs:attribute type="xs:string" name="invoke" use="required"/>
|
|
||||||
<xs:attribute type="xs:string" name="alias" use="required"/>
|
|
||||||
<xs:attribute type="xs:boolean" name="enabled" use="required"/>
|
|
||||||
<xs:attribute type="xs:integer" name="version" use="required"/>
|
|
||||||
<xs:attribute type="xs:string" name="frameworkId" use="optional"/>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:complexType name="optionsBeforeType">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element type="optionType" name="option" maxOccurs="unbounded" minOccurs="0"/>
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:complexType name="optionType">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
|
|
||||||
</xs:sequence>
|
|
||||||
<xs:attribute type="xs:string" name="name" use="required"/>
|
|
||||||
<xs:attribute type="xs:string" name="shortcut" use="optional"/>
|
|
||||||
<xs:attribute name="pattern" use="optional">
|
|
||||||
<xs:simpleType>
|
|
||||||
<xs:restriction base="xs:string">
|
|
||||||
<xs:enumeration value="space"/>
|
|
||||||
<xs:enumeration value="equals"/>
|
|
||||||
<xs:enumeration value="unknown"/>
|
|
||||||
</xs:restriction>
|
|
||||||
</xs:simpleType>
|
|
||||||
</xs:attribute>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:schema>
|
|
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/pedi2.iml" filepath="$PROJECT_DIR$/.idea/pedi2.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
90
.idea/pedi2.iml
generated
90
.idea/pedi2.iml
generated
|
@ -1,90 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/event-dispatcher" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php81" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/routing" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/css-selector" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-grapheme" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/egulias/email-validator" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-normalizer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php73" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/asm89/stack-cors" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/brick/math" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/league/flysystem" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/league/csv" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/league/mime-type-detection" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/collection" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ramsey/uuid" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/voku/portable-ascii" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/ignition-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/flare-client-php" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/facade/ignition" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fideloper/proxy" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/tinker" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/ui" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/sanctum" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fruitcake/laravel-cors" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/vlucas/phpdotenv" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpoption/phpoption" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psy/psysh" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nunomaduro/collision" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nesbot/carbon" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/league/commonmark" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/error-handler" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/deprecation-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/string" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/service-contracts" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/fakerphp/faker" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-client" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-iconv" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-idn" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/dragonmantank/cron-expression" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php80" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/setasign/fpdi" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/mpdf/mpdf" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message-factory" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
90
.idea/php.xml
generated
90
.idea/php.xml
generated
|
@ -1,90 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="PhpIncludePathManager">
|
|
||||||
<include_path>
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php81" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/log" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/console" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/process" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/brick/math" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/league/flysystem" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/opis/closure" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/league/csv" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/ramsey/collection" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/voku/portable-ascii" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/facade/ignition" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/laravel/tinker" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/laravel/framework" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/laravel/ui" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/laravel/sanctum" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/filp/whoops" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/string" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/container" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-client" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/rmccue/requests" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/prexview/prexview" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/setasign/fpdi" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/mpdf/mpdf" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
|
|
||||||
</include_path>
|
|
||||||
</component>
|
|
||||||
<component name="PhpProjectSharedConfiguration" php_language_level="7.2">
|
|
||||||
<option name="suggestChangeDefaultLanguageLevel" value="false" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -74,10 +74,11 @@ class SubpedidoController extends Controller
|
||||||
|
|
||||||
// recibe request, saca producto y cantidad, valida, y pasa a syncProducto en Subpedido
|
// recibe request, saca producto y cantidad, valida, y pasa a syncProducto en Subpedido
|
||||||
public function syncProductos(Subpedido $subpedido) {
|
public function syncProductos(Subpedido $subpedido) {
|
||||||
if ($subpedido->aprobado) return new SubpedidoResource($subpedido);
|
if ($subpedido->aprobado)
|
||||||
|
return new SubpedidoResource($subpedido);
|
||||||
|
|
||||||
$valid = request()->validate([
|
$valid = request()->validate([
|
||||||
'cantidad' => 'required|min:0',
|
'cantidad' => 'required|min:0',
|
||||||
'producto_id' => [
|
'producto_id' => [
|
||||||
'required',
|
'required',
|
||||||
Rule::in(Producto::all()->pluck('id')),
|
Rule::in(Producto::all()->pluck('id')),
|
||||||
|
@ -85,7 +86,6 @@ class SubpedidoController extends Controller
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$producto = Producto::find($valid['producto_id']);
|
$producto = Producto::find($valid['producto_id']);
|
||||||
|
|
||||||
$subpedido->syncProducto($producto, $valid['cantidad']);
|
$subpedido->syncProducto($producto, $valid['cantidad']);
|
||||||
return new SubpedidoResource($subpedido);
|
return new SubpedidoResource($subpedido);
|
||||||
}
|
}
|
||||||
|
|
7572
package-lock.json
generated
7572
package-lock.json
generated
File diff suppressed because it is too large
Load diff
5
public/css/app.css
vendored
5
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
2
public/js/app.js
vendored
2
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,11 +0,0 @@
|
||||||
/*!
|
|
||||||
* Vue.js v2.6.14
|
|
||||||
* (c) 2014-2021 Evan You
|
|
||||||
* Released under the MIT License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* bulma-toast 2.4.1
|
|
||||||
* (c) 2018-present @rfoel <rafaelfr@outlook.com>
|
|
||||||
* Released under the MIT License.
|
|
||||||
*/
|
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"/js/app.js": "/js/app.js",
|
|
||||||
"/css/app.css": "/css/app.css"
|
|
||||||
}
|
|
110
resources/js/components/ProductoCard.vue
Normal file
110
resources/js/components/ProductoCard.vue
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "ProductoCard",
|
||||||
|
props: {
|
||||||
|
producto: Object
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
cantidad: this.producto.cantidad,
|
||||||
|
enChismosa: this.producto.cantidad,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Event.$on('sync-subpedido', (cantidad,productoId) => {
|
||||||
|
if (this.producto.id === productoId)
|
||||||
|
this.sincronizar(cantidad);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
decrementar() {
|
||||||
|
this.cantidad -= 1;
|
||||||
|
},
|
||||||
|
incrementar() {
|
||||||
|
this.cantidad += 1;
|
||||||
|
},
|
||||||
|
confirmar() {
|
||||||
|
Event.$emit('sync-subpedido', this.cantidad, this.producto.id);
|
||||||
|
},
|
||||||
|
borrar() {
|
||||||
|
this.cantidad = 0;
|
||||||
|
this.confirmar();
|
||||||
|
},
|
||||||
|
sincronizar(cantidad) {
|
||||||
|
this.cantidad = cantidad;
|
||||||
|
this.producto.cantidad = cantidad;
|
||||||
|
this.enChismosa = cantidad;
|
||||||
|
},
|
||||||
|
hayCambios() {
|
||||||
|
return this.cantidad != this.enChismosa;
|
||||||
|
},
|
||||||
|
puedeBorrar() {
|
||||||
|
return this.enChismosa > 0;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="block column min-width">
|
||||||
|
<div class="box" style="height:100%">
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column is-three-quarters">
|
||||||
|
<p class="title is-6">
|
||||||
|
{{ producto.nombre }}
|
||||||
|
</p>
|
||||||
|
<p class="subtitle is-7" v-text="producto.proveedor"></p>
|
||||||
|
</div>
|
||||||
|
<div class="column is-one-quarter has-text-right">
|
||||||
|
<p class="has-text-weight-bold has-text-primary">$<span v-text="producto.precio"></span></p>
|
||||||
|
<p class="subtitle is-7" v-if="enChismosa !== 0">{{ enChismosa }} en chismosa</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="columns">
|
||||||
|
<div class="column is-three-quarters">
|
||||||
|
<div class="field has-addons">
|
||||||
|
<div class="control">
|
||||||
|
<button class="button is-small" @click.capture="decrementar();">
|
||||||
|
<i class="fa fa-solid fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<input id="cantidad" v-model="cantidad" class="input is-small" type="number" style="text-align: center">
|
||||||
|
</div>
|
||||||
|
<div class="control" @click="incrementar();">
|
||||||
|
<button class="button is-small">
|
||||||
|
<i class="fa fa-solid fa-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<button :disabled="!hayCambios()" class="button is-small is-success ml-3" @click="confirmar()">
|
||||||
|
<span class="icon">
|
||||||
|
<i class="fas fa-check"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
<button :disabled="!puedeBorrar()" class="button is-small is-danger ml-3" @click="borrar()">
|
||||||
|
<span class="icon">
|
||||||
|
<i class="fas fa-trash-alt"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="column is-one-quarter has-text-right">
|
||||||
|
<p>
|
||||||
|
<img v-show="producto.economia_solidaria" height="30px" width="30px" src="/assets/solidaria.png" alt="proveedor de economía solidaria">
|
||||||
|
<img v-show="producto.nacional" height="30px" width="30px" src="/assets/uruguay.png" alt="proveedor nacional"/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div><!-- END BOX -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@use "bulma/sass/utilities/mixins";
|
||||||
|
|
||||||
|
@include mixins.desktop {
|
||||||
|
.min-width {
|
||||||
|
min-width: 25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,113 +0,0 @@
|
||||||
<template>
|
|
||||||
<div v-bind:class="visible ? 'is-active modal' : 'modal'">
|
|
||||||
<div class="modal-background"></div>
|
|
||||||
<div class="modal-card">
|
|
||||||
<header class="modal-card-head">
|
|
||||||
<p class="modal-card-title" v-text="producto.nombre"></p>
|
|
||||||
<button class="delete" aria-label="close" @click.capture="cerrar"></button>
|
|
||||||
</header>
|
|
||||||
<section class="modal-card-body">
|
|
||||||
<div class="card-image">
|
|
||||||
<figure v-show="producto.nacional" class="image icono is-32x32" style="z-index:10">
|
|
||||||
<img src="/assets/uruguay.png">
|
|
||||||
</figure>
|
|
||||||
<figure v-show="producto.economia_solidaria" class="image icono is-32x32" style="z-index:10">
|
|
||||||
<img src="/assets/solidaria.png">
|
|
||||||
</figure>
|
|
||||||
<figure class="image is-4by3">
|
|
||||||
<img
|
|
||||||
v-bind:src="producto.imagen ? producto.imagen : 'https://bulma.io/images/placeholders/1280x960.png'">
|
|
||||||
</figure>
|
|
||||||
</div>
|
|
||||||
<div class="media-content">
|
|
||||||
<p class="title is-4" v-text="producto.proveedor"></p>
|
|
||||||
<p class="subtitle is-4">$<span v-text="producto.precio"></span></p>
|
|
||||||
<p class="subtitle is-6"><span v-show="producto.apto_veganxs">Apto para veganxs. </span><span v-show="producto.apto_celiacxs">Apto para celíacxs.</span></p>
|
|
||||||
<p class="subtitle is-5"><span v-text="producto.descripcion"></span></p>
|
|
||||||
<div class="field has-addons is-centered is-thin-centered">
|
|
||||||
<p class="control">
|
|
||||||
<button class="button" @click="cantidad !== 0 ? cantidad-- : cantidad">
|
|
||||||
<span class="icon is-small">
|
|
||||||
<!-- Habría que ver de poner un ícono de - -->
|
|
||||||
</span>
|
|
||||||
<span>-</span>
|
|
||||||
</button>
|
|
||||||
</p>
|
|
||||||
<p class="control">
|
|
||||||
<input id="cantidad" class="input" type="number" v-model.number="cantidad" style="text-align: center">
|
|
||||||
</p>
|
|
||||||
<p class="control">
|
|
||||||
<button class="button" @click="cantidad++">
|
|
||||||
<span class="icon is-small">
|
|
||||||
<!-- Habría que ver de poner un ícono de + -->
|
|
||||||
</span>
|
|
||||||
<span>+</span>
|
|
||||||
</button>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<footer class="modal-card-foot">
|
|
||||||
<!-- Habría que ver si cambiar el botón cuando al cantidad es 0 -->
|
|
||||||
<button class="button is-success" :disabled="cantidad <= 0" @click="agregarProducto">Aceptar</button>
|
|
||||||
<button class="button" @click.capture="cerrar">Cancelar</button>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
producto: null,
|
|
||||||
visible: false,
|
|
||||||
cantidad: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
miga: function(){
|
|
||||||
return {
|
|
||||||
nombre: this.producto.nombre,
|
|
||||||
href: "#" + this.producto.nombre
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
cerrar() {
|
|
||||||
this.cantidad = 0;
|
|
||||||
this.visible = false;
|
|
||||||
Event.$emit("migas-pop");
|
|
||||||
},
|
|
||||||
agregarProducto() {
|
|
||||||
if (this.cantidad < 0) alert("No se puede agregar cantidades negativas")
|
|
||||||
else if (!Number.isInteger(this.cantidad)) alert("Las cantidades deben ser números enteros")
|
|
||||||
else {
|
|
||||||
Event.$emit('sync-subpedido',this.cantidad, this.producto.id);
|
|
||||||
this.cerrar();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
Event.$on('producto-seleccionado', (producto) => {
|
|
||||||
this.producto = producto;
|
|
||||||
this.cantidad = this.$root.cantidad(producto)
|
|
||||||
this.visible = true;
|
|
||||||
Event.$emit("migas-agregar",this.miga);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
figure.image.icono {
|
|
||||||
float: right;
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.is-thin-centered {
|
|
||||||
width: 50%;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -8,26 +8,25 @@
|
||||||
<i class="fas fa-edit"></i>
|
<i class="fas fa-edit"></i>
|
||||||
</span>
|
</span>
|
||||||
</button></td>
|
</button></td>
|
||||||
<td><button @click.capture="eliminarProducto(producto)" class="button is-danger">
|
<td><button @click.capture="eliminarProducto()" class="button is-danger">
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<i class="fas fa-trash-alt"></i>
|
<i class="fas fa-trash-alt"></i>
|
||||||
</span>
|
</span>
|
||||||
</button></td>
|
</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
|
producto
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
producto: Object
|
producto: Object
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
seleccionarProducto(producto) {
|
seleccionarProducto() {
|
||||||
Event.$emit("producto-seleccionado",producto);
|
Event.$emit("producto-seleccionado",this.producto);
|
||||||
},
|
},
|
||||||
eliminarProducto(producto) {
|
eliminarProducto() {
|
||||||
Event.$emit("sync-subpedido", 0, this.producto.id);
|
Event.$emit("sync-subpedido", 0, this.producto.id);
|
||||||
Event.$emit("sync-subpedido");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +1,17 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-show="visible" class="container">
|
<div v-show="visible" class="block ml-6 mr-6">
|
||||||
<div class="columns is-multiline is-mobile">
|
<div class="columns is-multiline is-mobile">
|
||||||
<div v-for="(producto,i) in productos" :key="i" class="block column is-one-quarter-desktop is-one-third-tablet is-half-mobile">
|
<producto-card v-for="(producto,i) in productos" :key="i" :producto="producto">
|
||||||
<div @click.capture="seleccionarProducto(producto)" class="card" style="height:100%">
|
</producto-card><!-- END BLOCK COLUMN -->
|
||||||
<div class="card-image">
|
|
||||||
<figure class="image is-4by3">
|
|
||||||
<img v-bind:src="producto.imagen ? producto.imagen : 'https://bulma.io/images/placeholders/1280x960.png'">
|
|
||||||
</figure>
|
|
||||||
<figure v-show="producto.nacional" class="image icono is-32x32">
|
|
||||||
<img src="/assets/uruguay.png">
|
|
||||||
</figure>
|
|
||||||
<figure v-show="producto.economia_solidaria" class="image icono is-32x32">
|
|
||||||
<img src="/assets/solidaria.png">
|
|
||||||
</figure>
|
|
||||||
</div>
|
|
||||||
<div class="card-content">
|
|
||||||
<div class="media">
|
|
||||||
<div class="media-content">
|
|
||||||
<p class="title is-6" v-text="producto.nombre"></p>
|
|
||||||
<p class="subtitle is-7" v-text="producto.proveedor"></p>
|
|
||||||
<p class="subtitle is-7">$<span v-text="producto.precio"></span></p>
|
|
||||||
<p class="subtitle has-text-right is-7" v-if="producto.cantidad != 0"><span v-text="producto.cantidad"></span> en chismosa</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div><!-- END CARD -->
|
|
||||||
</div><!-- END BLOCK COLUMN -->
|
|
||||||
</div><!-- END COLUMNS -->
|
</div><!-- END COLUMNS -->
|
||||||
</div><!-- END CONTAINER -->
|
</div><!-- END CONTAINER -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import ProductoCard from "./ProductoCard.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {ProductoCard},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
productos: [],
|
productos: [],
|
||||||
|
@ -64,14 +44,10 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
seleccionarProducto(producto) {
|
params(filtro,valor) {
|
||||||
Event.$emit("producto-seleccionado",producto);
|
|
||||||
},
|
|
||||||
params: function(filtro,valor) {
|
|
||||||
let params = { paginar: this.paginar }
|
let params = { paginar: this.paginar }
|
||||||
params[filtro] = valor
|
params[filtro] = valor
|
||||||
return params
|
return params
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}</script>
|
||||||
</script>
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue