Commit 864e76ea401009d4a705bf92db0c7a130678f024
1 parent
d1857acb65
Exists in
master
20102020 1600
Showing
90 changed files
with
6377 additions
and
1773 deletions
Show diff stats
.idea/compiler.xml
.idea/gradle.xml
.idea/misc.xml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | 2 | <project version="4"> |
3 | - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="11" project-jdk-type="JavaSDK"> | |
3 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK"> | |
4 | 4 | <output url="file://$PROJECT_DIR$/build/classes" /> |
5 | 5 | </component> |
6 | 6 | <component name="ProjectType"> |
... | ... | @@ -0,0 +1,11 @@ |
1 | +ITOMINVC.EST="T" | |
2 | +ITOMINVC.FEC="2020-09-30 12:18:00" fecha de exportacion | |
3 | + | |
4 | + | |
5 | +ITOMINVD.CON="2" EL VALOR CONTADO EN EL DISPOSITIVO | |
6 | +ITOMINVD.CON="-1" SI NO SE PUSO NINGUN VALOR O SEA SI NO SE CONTO | |
7 | +ITOMINVD.FECTOM="2020-09-30 12:16:00" FECHA Y HORA EN LA QUE SE TOMO | |
8 | +ITOMINVD.FECTOMFIN="2020-09-30 12:16:00" FECHA Y HORA SI SE MODIFICO LO TOMADO | |
9 | + | |
10 | + | |
11 | + |
Guardar Cabecera de Inventarios Sectorizados.docx
No preview for this file type
Guardar Cuerpo de Inventarios Sectorizados.docx
No preview for this file type
Obtener Cabecera de Inventarios Sectorizados.docx
No preview for this file type
Obtener cuerpo de Inventarios Sectorizados.docx
No preview for this file type
[VI_API_ARTICULOS_INVENTARIO].txt
... | ... | @@ -0,0 +1,23 @@ |
1 | +USE [ZUCCO_PILOTO_FMT_2B] | |
2 | +GO | |
3 | + | |
4 | +/****** Object: View [dbo].[VI_API_ARTICULOS_INVENTARIO] Script Date: 10/20/2020 11:15:17 ******/ | |
5 | +SET ANSI_NULLS ON | |
6 | +GO | |
7 | + | |
8 | +SET QUOTED_IDENTIFIER ON | |
9 | +GO | |
10 | + | |
11 | +CREATE VIEW VI_API_ARTICULOS_INVENTARIO | |
12 | + | |
13 | +SELECT A.CODSEC, A.CODART, A.UNIVEN, C.DVE, A.EXIVTA, A.EXIDEP, B.CODBAR, D.COO, A.DETART, | |
14 | +(SELECT PRECIO FROM LISTA_PRECIO_DET AS E INNER JOIN APAREMP AS F ON E.ID=F.LISTA_V WHERE E.SEC=A.CODSEC AND E.ART=A.CODART ) AS PREVEN , | |
15 | +A.COSTO, A.DEPSN, '' AS FOTO | |
16 | +FROM ARTICULOS AS A | |
17 | +LEFT JOIN CODBAR AS B | |
18 | +ON A.CODSEC=B.CODSEC AND A.CODART=B.CODART | |
19 | +INNER JOIN AUNIVTA AS C ON A.UNIVEN=C.ID | |
20 | +LEFT JOIN A_COD_ORI AS D ON D.SEC=A.CODSEC AND D.ART=A.CODART | |
21 | +GO | |
22 | + | |
23 | + |
app/build.gradle
... | ... | @@ -9,7 +9,7 @@ android { |
9 | 9 | |
10 | 10 | defaultConfig { |
11 | 11 | applicationId "com.focasoftware.deboinventariov20" |
12 | - minSdkVersion 26 | |
12 | + minSdkVersion 24 | |
13 | 13 | targetSdkVersion 30 |
14 | 14 | versionCode 1 |
15 | 15 | versionName "1.0" |
... | ... | @@ -41,16 +41,16 @@ android { |
41 | 41 | dependencies { |
42 | 42 | implementation fileTree(dir: "libs", include: ["*.jar"]) |
43 | 43 | implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" |
44 | - implementation 'androidx.core:core-ktx:1.3.1' | |
44 | + implementation 'androidx.core:core-ktx:1.3.2' | |
45 | 45 | implementation 'androidx.appcompat:appcompat:1.2.0' |
46 | 46 | implementation 'androidx.legacy:legacy-support-v4:1.0.0' |
47 | 47 | implementation 'com.google.android.material:material:1.2.1' |
48 | - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' | |
49 | - implementation 'androidx.navigation:navigation-fragment:2.3.0' | |
50 | - implementation 'androidx.navigation:navigation-ui:2.3.0' | |
48 | + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' | |
49 | + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1' | |
50 | + implementation 'androidx.navigation:navigation-ui-ktx:2.3.1' | |
51 | 51 | implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' |
52 | - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0' | |
53 | - implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' | |
52 | + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1' | |
53 | + implementation 'androidx.navigation:navigation-ui-ktx:2.3.1' | |
54 | 54 | implementation 'androidx.recyclerview:recyclerview:1.1.0' |
55 | 55 | testImplementation 'junit:junit:4.13' |
56 | 56 | androidTestImplementation 'androidx.test.ext:junit:1.1.2' |
app/src/main/java/com/focasoftware/deboinventariov20/DB/Constans/Constans.kt
app/src/main/java/com/focasoftware/deboinventariov20/DB/DAO/ArticulosDAO.kt
... | ... | @@ -7,11 +7,10 @@ import androidx.room.Query |
7 | 7 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_ART |
8 | 8 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_B |
9 | 9 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_H |
10 | +import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_SEC_B | |
11 | +import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_SEC_H | |
10 | 12 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_SERV_INV |
11 | -import com.focasoftware.deboinventariov20.Model.Articles | |
12 | -import com.focasoftware.deboinventariov20.Model.InvBody | |
13 | -import com.focasoftware.deboinventariov20.Model.InvHead | |
14 | -import com.focasoftware.deboinventariov20.Model.ServeInv | |
13 | +import com.focasoftware.deboinventariov20.Model.* | |
15 | 14 | |
16 | 15 | @Dao |
17 | 16 | interface ArticulosDAO { |
... | ... | @@ -63,7 +62,7 @@ interface InvHeadDAO { |
63 | 62 | suspend fun consultaCantidadInvH (inven: Int): Int |
64 | 63 | |
65 | 64 | @Query("UPDATE $TABLA_INV_H SET INV_PRODCONT=:cant WHERE INV_NUM=:inven") |
66 | - suspend fun updateInvBody(inven: Int,cant: Int) | |
65 | + suspend fun updateInvCantHead(inven: Int,cant: Int) | |
67 | 66 | |
68 | 67 | @Query("SELECT * FROM $TABLA_INV_H WHERE INV_NUM=:inven") |
69 | 68 | suspend fun foundInvHead (inven: Int): InvHead |
... | ... | @@ -77,7 +76,7 @@ interface InvBodyDAO { |
77 | 76 | @Query("DELETE FROM $TABLA_INV_B") |
78 | 77 | suspend fun deleteAllInvBody() |
79 | 78 | |
80 | - @Query("DELETE FROM $TABLA_INV_B WHERE INV_NUM =:inven") | |
79 | + @Query("DELETE FROM $TABLA_INV_B WHERE INV_NUM =:inven") | |
81 | 80 | suspend fun deleteInvBody(inven: Int) |
82 | 81 | |
83 | 82 | @Query("UPDATE $TABLA_INV_B SET CANT=:cant , INV_FEF=:actFechaHora WHERE SEC=:sec AND COD=:cod") |
... | ... | @@ -118,4 +117,71 @@ interface ServeInvDao { |
118 | 117 | |
119 | 118 | @Query("SELECT * FROM $TABLA_SERV_INV WHERE SER_NUM = :numero") |
120 | 119 | suspend fun fetchServer(numero: Int): ServeInv |
121 | -} | |
122 | 120 | \ No newline at end of file |
121 | +} | |
122 | + | |
123 | + | |
124 | + | |
125 | +@Dao | |
126 | +interface InvHeadSecDAO { | |
127 | + @Insert(onConflict = OnConflictStrategy.REPLACE) | |
128 | + fun insertInvHeadSec(Inventario: InvHeadSec) | |
129 | + | |
130 | + @Query("DELETE FROM $TABLA_INV_SEC_H WHERE INV_NUM = :inven") | |
131 | + suspend fun deleteAllInvHeadSec(inven: Int) | |
132 | + | |
133 | + @Query("SELECT * FROM $TABLA_INV_SEC_H ORDER BY INV_NUM") | |
134 | + suspend fun fetchAllInvSecHead(): List<InvHeadSec> | |
135 | + | |
136 | + @Query("UPDATE $TABLA_INV_SEC_H SET CONT=:cant WHERE INV_NUM=:inven") | |
137 | + suspend fun updateCantArtInvSecHead(inven: Int,cant: Int) | |
138 | + | |
139 | + @Query("DELETE FROM $TABLA_INV_SEC_H WHERE INV_NUM=:inven") | |
140 | + suspend fun deleteinvSecHead(inven: String) | |
141 | + | |
142 | + @Query("SELECT * FROM $TABLA_INV_SEC_H WHERE INV_NUM=:inven") | |
143 | + suspend fun foundInvSecHead (inven: String): InvHeadSec | |
144 | + | |
145 | + @Query("UPDATE $TABLA_INV_SEC_H SET FET=:fecha, FEC=:fecha WHERE INV_NUM=:inven") | |
146 | + suspend fun updateFETinvSecHead(inven: String, fecha:String) | |
147 | + | |
148 | + @Query("UPDATE $TABLA_INV_SEC_H SET FEC=:fecha WHERE INV_NUM=:inven") | |
149 | + suspend fun updateFECinvSecHead(inven: String, fecha:String) | |
150 | +} | |
151 | + | |
152 | +@Dao | |
153 | +interface InvBodySecDAO { | |
154 | + @Insert() | |
155 | + suspend fun insertInvBodySec(invBody: InvBodySec?) | |
156 | + | |
157 | + @Query("DELETE FROM $TABLA_INV_SEC_B WHERE INV = :inven") | |
158 | + suspend fun deleteAllInvBodySec(inven: Int) | |
159 | + | |
160 | + @Query("SELECT * FROM $TABLA_INV_SEC_B WHERE INV =:inven GROUP BY SEC, ART") | |
161 | + suspend fun buscarInvSecBody(inven: Int): List<InvBodySec> | |
162 | + | |
163 | + @Query("UPDATE $TABLA_INV_SEC_B SET CON=:cant , FECTOM=:actFechaHora WHERE INV =:inven AND SEC=:sec AND ART=:cod") | |
164 | + suspend fun updateInvSecBody(inven: String, cant: Float, sec: Long, cod: Long, actFechaHora:String) | |
165 | + | |
166 | + @Query("DELETE FROM $TABLA_INV_SEC_B WHERE INV =:inven") | |
167 | + suspend fun deleteInvSecBody(inven: String) | |
168 | + | |
169 | + @Query("SELECT * FROM $TABLA_INV_SEC_B WHERE INV =:inven GROUP BY SEC, ART") | |
170 | + suspend fun fetchInvSecBody(inven: String): List<InvBodySec> | |
171 | + | |
172 | + @Query("UPDATE $TABLA_INV_SEC_B SET FECTOM=:fecha, FECTOMFIN=:fecha WHERE INV =:inven") | |
173 | + suspend fun updateFECTOMyFECTOMFINinvSecBody(inven: String, fecha:String) | |
174 | + | |
175 | + @Query("UPDATE $TABLA_INV_SEC_B SET CON=:cant ,FECTOMFIN=:actFechaHora WHERE INV =:inven AND SEC=:sec AND ART=:cod") | |
176 | + suspend fun updateFECTOMFINinvSecBody(inven: String, cant: Float, sec: Long, cod: Long, actFechaHora:String) | |
177 | + | |
178 | + @Query("SELECT * FROM $TABLA_INV_SEC_B WHERE INV =:inven ") | |
179 | + suspend fun verificoExisteInvSec(inven: Int): List<InvBodySec> | |
180 | + | |
181 | + @Query("SELECT * FROM $TABLA_INV_SEC_B WHERE INV =:inven AND SEC=:sec AND ART=:cod") | |
182 | + suspend fun fetchArticuloByCodSec(inven: String, sec: String, cod: String):InvBodySec | |
183 | + | |
184 | + @Query("SELECT * FROM $TABLA_INV_SEC_B WHERE INV =:inven GROUP BY SEC, ART") | |
185 | + suspend fun fetchInvSecBodyGroup(inven: String): List<InvBodySec> | |
186 | + | |
187 | + | |
188 | +} |
app/src/main/java/com/focasoftware/deboinventariov20/DB/DataBase/AppDb.kt
... | ... | @@ -6,18 +6,17 @@ import androidx.room.Room |
6 | 6 | import androidx.room.RoomDatabase |
7 | 7 | import com.focasoftware.deboinventariov20.DB.Constans.Constans |
8 | 8 | import com.focasoftware.deboinventariov20.DB.DAO.* |
9 | -import com.focasoftware.deboinventariov20.Model.Articles | |
10 | -import com.focasoftware.deboinventariov20.Model.InvBody | |
11 | -import com.focasoftware.deboinventariov20.Model.InvHead | |
12 | -import com.focasoftware.deboinventariov20.Model.ServeInv | |
9 | +import com.focasoftware.deboinventariov20.Model.* | |
13 | 10 | |
14 | 11 | |
15 | -@Database(entities = [Articles::class, InvHead::class, InvBody::class, ServeInv::class], version = 1, exportSchema = false) | |
12 | +@Database(entities = [InvBodySec::class, InvHeadSec::class, Articles::class, InvHead::class, InvBody::class, ServeInv::class], version = 1, exportSchema = false) | |
16 | 13 | abstract class AppDb : RoomDatabase() { |
17 | 14 | abstract fun ArticulosDAO(): ArticulosDAO? |
18 | 15 | abstract fun InvHeadDAO(): InvHeadDAO? |
19 | 16 | abstract fun InvBodyDAO(): InvBodyDAO? |
20 | 17 | abstract fun ServeInvDao(): ServeInvDao? |
18 | + abstract fun InvHeadSecDAO(): InvHeadSecDAO? | |
19 | + abstract fun InvBodySecDAO(): InvBodySecDAO? | |
21 | 20 | |
22 | 21 | companion object { |
23 | 22 | private var INSTANCE: AppDb? = null |
app/src/main/java/com/focasoftware/deboinventariov20/Model/DefaultResponse.kt
app/src/main/java/com/focasoftware/deboinventariov20/Model/ItomInv.kt
... | ... | @@ -0,0 +1,34 @@ |
1 | +package com.focasoftware.deboinventariov20.Model | |
2 | + | |
3 | +import okhttp3.OkHttpClient | |
4 | +import okhttp3.logging.HttpLoggingInterceptor | |
5 | +import retrofit2.Retrofit | |
6 | +import retrofit2.converter.gson.GsonConverterFactory | |
7 | +import java.util.concurrent.TimeUnit | |
8 | + | |
9 | +object ItomInv { | |
10 | + | |
11 | + private val TIME_OUT: Long | |
12 | + get() { | |
13 | + return 200 | |
14 | + } | |
15 | + private val interceptor = run { | |
16 | + val httpLoggingInterceptor = HttpLoggingInterceptor() | |
17 | + httpLoggingInterceptor.apply { | |
18 | + httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY | |
19 | + } | |
20 | + } | |
21 | + private val okHttpClient = OkHttpClient.Builder() | |
22 | + .addNetworkInterceptor(interceptor) // same for .addInterceptor(...) | |
23 | + .connectTimeout(TIME_OUT, TimeUnit.SECONDS) //Backend is really slow | |
24 | + .writeTimeout(TIME_OUT, TimeUnit.SECONDS) | |
25 | + .readTimeout(TIME_OUT, TimeUnit.SECONDS) | |
26 | + .build() | |
27 | + | |
28 | + private val retrofit: Retrofit = Retrofit.Builder() | |
29 | + .client(okHttpClient) | |
30 | + .baseUrl(BASE_URL) | |
31 | + .addConverterFactory(GsonConverterFactory.create()) | |
32 | + .build() | |
33 | + val request: WebServiceApi = retrofit.create(WebServiceApi::class.java) | |
34 | +} | |
0 | 35 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/Model/Tablas.kt
... | ... | @@ -6,85 +6,129 @@ import androidx.room.PrimaryKey |
6 | 6 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_ART |
7 | 7 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_B |
8 | 8 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_H |
9 | +import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_SEC_B | |
10 | +import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_INV_SEC_H | |
9 | 11 | import com.focasoftware.deboinventariov20.DB.Constans.Constans.Companion.TABLA_SERV_INV |
10 | 12 | import com.google.gson.annotations.SerializedName |
11 | 13 | import java.io.Serializable |
12 | 14 | |
13 | -//data class Productos(@SerializedName("SEC") var sector: String?, | |
14 | -// @SerializedName("COD") var codigo: String?, | |
15 | -// @SerializedName("DESC") var descripcion: String?, | |
16 | -// @SerializedName("CB") var codBar: String?, | |
17 | -// @SerializedName("CBC") var codOrigen: String?, | |
18 | -// @SerializedName("PRE_VTA") var precio: String?, | |
19 | -// @SerializedName("PRE_COS") var costo: String?, | |
20 | -// @SerializedName( "EV") var exiVenta: String?, | |
21 | -// @SerializedName( "ED") var exiDeposito: String?, | |
22 | -// @SerializedName( "DE") var de: String?, | |
23 | -// @SerializedName( "BAL") var balanza: Int?, | |
24 | -// @SerializedName("DEPSN") var depSn: Int?, | |
25 | -// @SerializedName("FOTO") var imagen: String?) | |
26 | -data class Productos(@SerializedName("CODSEC") var sector: String?, | |
27 | - @SerializedName("CODART") var codigo: String?, | |
28 | - @SerializedName("DETART") var descripcion: String?, | |
29 | - @SerializedName("CODBAR") var codBar: String?, | |
30 | - @SerializedName("COO") var codOrigen: String?, | |
31 | - @SerializedName("PREVEN") var precio: String?, | |
32 | - @SerializedName("COSTO") var costo: String?, | |
33 | - @SerializedName( "EXIVTA") var exiVenta: String?, | |
34 | - @SerializedName( "EXIDEP") var exiDeposito: String?, | |
35 | - @SerializedName( "DVE") var de: String?, | |
36 | - @SerializedName( "UNIVEN") var balanza: Int?, | |
37 | - @SerializedName("DEPSN") var depSn: Boolean?, | |
38 | - @SerializedName("FOTO") var imagen: String?) | |
39 | - | |
40 | -data class InvToSend ( var fechaInicio: String?, | |
41 | - var fechaFinal: String?, | |
42 | - var lugar: Int?, | |
43 | - var sector: String?, | |
44 | - var codigo: String?, | |
45 | - var descripcion: String?, | |
46 | - var cantTomada: String?, | |
47 | - var fechaInicioArt: String?, | |
48 | - var fechaFinArt: String?) | |
49 | -//@Entity(tableName = TABLA_ART) | |
50 | -//data class Articles(@ColumnInfo(name = "SEC") var sector: String?, | |
51 | -// @ColumnInfo(name = "COD") var codigo: String?, | |
52 | -// @ColumnInfo(name = "DES") var descripcion: String?, | |
53 | -// @ColumnInfo(name = "CB") var codBar: String?, | |
54 | -// @ColumnInfo(name = "CBC") var codOrigen: String?, | |
55 | -// @ColumnInfo(name = "PRE_VTA") var precio: String?, | |
56 | -// @ColumnInfo(name = "PRE_COS") var costo: String?, | |
57 | -// @ColumnInfo(name = "EV") var exiVenta: String?, | |
58 | -// @ColumnInfo(name = "ED") var exiDeposito: String?, | |
59 | -// @ColumnInfo(name = "DE") var de: String?, | |
60 | -// @ColumnInfo(name = "BAL") var balanza: Int?, | |
61 | -// @ColumnInfo(name = "DEPSN") var depSn: Int?, | |
62 | -// @ColumnInfo(name = "FOTO") var imagen: String?) : Serializable { | |
63 | -// @PrimaryKey(autoGenerate = true) | |
64 | -// @ColumnInfo(name = "id") | |
65 | -// var id: Long = 0 | |
66 | -//} | |
15 | +data class Productos( | |
16 | + @SerializedName("CODSEC") var sector: String?, | |
17 | + @SerializedName("CODART") var codigo: String?, | |
18 | + @SerializedName("DETART") var descripcion: String?, | |
19 | + @SerializedName("CODBAR") var codBar: String?, | |
20 | + @SerializedName("COO") var codOrigen: String?, | |
21 | + @SerializedName("PREVEN") var precio: String?, | |
22 | + @SerializedName("COSTO") var costo: String?, | |
23 | + @SerializedName("EXIVTA") var exiVenta: String?, | |
24 | + @SerializedName("EXIDEP") var exiDeposito: String?, | |
25 | + @SerializedName("DVE") var de: String?, | |
26 | + @SerializedName("UNIVEN") var balanza: Int?, | |
27 | + @SerializedName("DEPSN") var depSn: Boolean?, | |
28 | + @SerializedName("FOTO") var imagen: String? | |
29 | +) | |
30 | + | |
31 | +data class Time( | |
32 | + @SerializedName("DIA") var dia: String?, | |
33 | + @SerializedName("MES") var mes: String?, | |
34 | + @SerializedName("ANO") var ano: String?, | |
35 | + @SerializedName("HORA") var hora: String?, | |
36 | + @SerializedName("MIN") var minutos: String?, | |
37 | + @SerializedName("SEG") var segundos: String? | |
38 | +) | |
39 | + | |
40 | +data class InvHeadSecR( | |
41 | + @SerializedName("INV_NUM") var invNum: Int, | |
42 | + @SerializedName("DET") var detalle: String, | |
43 | + @SerializedName("FET") var fechaInicio: String, | |
44 | + @SerializedName("DEP") var depsn: Int | |
45 | +) | |
46 | + | |
47 | +data class InvBodySecR( | |
48 | + @SerializedName("INV") var INV: String, | |
49 | + @SerializedName("SEC") var SEC: String?, | |
50 | + @SerializedName("ART") var ART: String?, | |
51 | + @SerializedName("DET") var DET: String?, | |
52 | + @SerializedName("PRE") var PRE: String?, | |
53 | + @SerializedName("COS") var COS: String?, | |
54 | + @SerializedName("DVE") var DVE: String?, | |
55 | + @SerializedName("EXIVTA") var EXIVTA: String?, | |
56 | + @SerializedName("EXIDEP") var EXIDEP: String?, | |
57 | + @SerializedName("CODBAR") var CODBAR: String?, | |
58 | + @SerializedName("COO") var COO: String?, | |
59 | + @SerializedName("DEPSN") var DEPSN: String?, | |
60 | + @SerializedName("UNIVEN") var uniVta: String? | |
61 | +) | |
62 | + | |
63 | +data class ItomInvD( | |
64 | + var Sector: String?, | |
65 | + var Codigo: String?, | |
66 | + var Descripcion: String?, | |
67 | + var CantTomada: String?, | |
68 | + var FechaInicioArt: String?, | |
69 | + var FechaFinArt: String? | |
70 | +) | |
71 | + | |
72 | +data class InvToSend( | |
73 | + var FechaInicio: String?, | |
74 | + var FechaFinal: String?, | |
75 | + var Lugar: Int?, | |
76 | + var Sector: String?, | |
77 | + var Codigo: String?, | |
78 | + var Descripcion: String?, | |
79 | + var CantTomada: String?, | |
80 | + var FechaInicioArt: String?, | |
81 | + var FechaFinArt: String? | |
82 | +) | |
83 | + | |
84 | +data class ItomInvC( | |
85 | + var FechaInicio: String?, | |
86 | + var FechaFinal: String?, | |
87 | + var Lugar: Int?, | |
88 | +) | |
89 | + | |
90 | +data class InvSecHeadToSend( | |
91 | + var ID: String?, | |
92 | + var EST: String?, | |
93 | + var FEC: String? | |
94 | +) | |
95 | + | |
96 | +data class InvSecBodyToSend( | |
97 | + var INV: String?, | |
98 | + var SEC: String?, | |
99 | + var ART: String?, | |
100 | + var CON: String?, | |
101 | + var FECTOM: String?, | |
102 | + var FECTOMFIN: String? | |
103 | +) | |
104 | + | |
105 | +data class NumInvSec(var inv_num: String?) | |
106 | + | |
67 | 107 | @Entity(tableName = TABLA_ART) |
68 | -data class Articles(@ColumnInfo(name = "CODSEC") var sector: String?, | |
69 | - @ColumnInfo(name = "CODART") var codigo: String?, | |
70 | - @ColumnInfo(name = "DETART") var descripcion: String?, | |
71 | - @ColumnInfo(name = "CODBAR") var codBar: String?, | |
72 | - @ColumnInfo(name = "COO") var codOrigen: String?, | |
73 | - @ColumnInfo(name = "PREVEN") var precio: String?, | |
74 | - @ColumnInfo(name = "COSTO") var costo: String?, | |
75 | - @ColumnInfo(name = "EXIVTA") var exiVenta: String?, | |
76 | - @ColumnInfo(name = "EXIDEP") var exiDeposito: String?, | |
77 | - @ColumnInfo(name = "DVE") var de: String?, | |
78 | - @ColumnInfo(name = "UNIVEN") var balanza: Int?, | |
79 | - @ColumnInfo(name = "DEPSN") var depSn: Boolean?, | |
80 | - @ColumnInfo(name = "FOTO") var imagen: String?) : Serializable { | |
108 | +data class Articles( | |
109 | + @ColumnInfo(name = "CODSEC") var sector: String?, | |
110 | + @ColumnInfo(name = "CODART") var codigo: String?, | |
111 | + @ColumnInfo(name = "DETART") var descripcion: String?, | |
112 | + @ColumnInfo(name = "CODBAR") var codBar: String?, | |
113 | + @ColumnInfo(name = "COO") var codOrigen: String?, | |
114 | + @ColumnInfo(name = "PREVEN") var precio: String?, | |
115 | + @ColumnInfo(name = "COSTO") var costo: String?, | |
116 | + @ColumnInfo(name = "EXIVTA") var exiVenta: String?, | |
117 | + @ColumnInfo(name = "EXIDEP") var exiDeposito: String?, | |
118 | + @ColumnInfo(name = "DVE") var de: String?, | |
119 | + @ColumnInfo(name = "UNIVEN") var balanza: Int?, | |
120 | + @ColumnInfo(name = "DEPSN") var depSn: Boolean?, | |
121 | + @ColumnInfo(name = "FOTO") var imagen: String? | |
122 | +) : Serializable { | |
81 | 123 | @PrimaryKey(autoGenerate = true) |
82 | 124 | @ColumnInfo(name = "id") |
83 | 125 | var id: Long = 0 |
84 | 126 | } |
85 | 127 | |
128 | + | |
86 | 129 | @Entity(tableName = TABLA_INV_H) |
87 | -data class InvHead(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM") var invNum: Int, | |
130 | +data class InvHead( | |
131 | + @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM") var invNum: Int, | |
88 | 132 | @ColumnInfo(name = "INV_DESC") var descripcion: String?, |
89 | 133 | @ColumnInfo(name = "ESTADO") var estado: Int?, |
90 | 134 | @ColumnInfo(name = "INV_FEI") var fechaInicio: String?, |
... | ... | @@ -96,23 +140,26 @@ data class InvHead(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "INV_NUM" |
96 | 140 | // Ajusta productos no incluidos en el conteo con stock en cero=1 |
97 | 141 | @ColumnInfo(name = "PRO_NO_CONTA") var stDesc: Int?, |
98 | 142 | // Mostror stock en el sistema al momento de la descarga del maestro. |
99 | - @ColumnInfo(name = "MOSTRAR_STOCK") var proNoCont: Int?) | |
143 | + @ColumnInfo(name = "MOSTRAR_STOCK") var proNoCont: Int? | |
144 | +) | |
100 | 145 | |
101 | 146 | |
102 | 147 | @Entity(tableName = TABLA_INV_B) |
103 | -data class InvBody(@ColumnInfo(name = "INV_NUM") var invNum: Int, | |
104 | - @ColumnInfo(name = "SEC") var sector: String?, | |
105 | - @ColumnInfo(name = "COD") var codigo: String?, | |
106 | - @ColumnInfo(name = "DES") var descripcion: String?, | |
107 | - @ColumnInfo(name = "CANT") var cantTomada: String?, | |
108 | - @ColumnInfo(name = "CB") var codBar: String?, | |
109 | - @ColumnInfo(name = "CBC") var codOrigen: String?, | |
110 | - @ColumnInfo(name = "PRE_VTA") var precio: String?, | |
111 | - @ColumnInfo(name = "PRE_COS") var costo: String?, | |
112 | - @ColumnInfo(name = "BAL") var balanza: Int?, | |
113 | - @ColumnInfo(name = "DSN") var depSn: Boolean?, | |
114 | - @ColumnInfo(name = "INV_FEI") var fechaInicio: String?, | |
115 | - @ColumnInfo(name = "INV_FEF") var fechaFinal: String?) : Serializable { | |
148 | +data class InvBody( | |
149 | + @ColumnInfo(name = "INV_NUM") var invNum: Int, | |
150 | + @ColumnInfo(name = "SEC") var sector: String?, | |
151 | + @ColumnInfo(name = "COD") var codigo: String?, | |
152 | + @ColumnInfo(name = "DES") var descripcion: String?, | |
153 | + @ColumnInfo(name = "CANT") var cantTomada: String?, | |
154 | + @ColumnInfo(name = "CB") var codBar: String?, | |
155 | + @ColumnInfo(name = "CBC") var codOrigen: String?, | |
156 | + @ColumnInfo(name = "PRE_VTA") var precio: String?, | |
157 | + @ColumnInfo(name = "PRE_COS") var costo: String?, | |
158 | + @ColumnInfo(name = "BAL") var balanza: Int?, | |
159 | + @ColumnInfo(name = "DSN") var depSn: Boolean?, | |
160 | + @ColumnInfo(name = "INV_FEI") var fechaInicio: String?, | |
161 | + @ColumnInfo(name = "INV_FEF") var fechaFinal: String? | |
162 | +) : Serializable { | |
116 | 163 | @PrimaryKey(autoGenerate = true) |
117 | 164 | @ColumnInfo(name = "id") |
118 | 165 | var id: Long = 0 |
... | ... | @@ -122,11 +169,48 @@ data class InvBody(@ColumnInfo(name = "INV_NUM") var invNum: Int, |
122 | 169 | data class ServeInv( |
123 | 170 | @ColumnInfo(name = "SER_DESC") var descripcion: String?, |
124 | 171 | @ColumnInfo(name = "SER_DIR") var direccion: String?, |
125 | - @ColumnInfo(name = "SER_PUERTO") var puerto: String?, | |
126 | - @ColumnInfo(name = "SER_PRE") var predeterminado: Int?): | |
127 | - Serializable { @PrimaryKey(autoGenerate = true) | |
128 | -@ColumnInfo(name = "SER_NUM") | |
129 | -var servNum: Int=0 | |
172 | + @ColumnInfo(name = "SER_PUERTO_SUBIDA") var puertoSubida: String?, | |
173 | + @ColumnInfo(name = "SER_PUERTO_BAJADA") var puertoBajada: String?, | |
174 | + @ColumnInfo(name = "SER_PRE") var predeterminado: Int? | |
175 | +) : | |
176 | + Serializable { | |
177 | + @PrimaryKey(autoGenerate = true) | |
178 | + @ColumnInfo(name = "SER_NUM") | |
179 | + var servNum: Int = 0 | |
130 | 180 | } |
131 | 181 | |
182 | +@Entity(tableName = TABLA_INV_SEC_H) | |
183 | +data class InvHeadSec( | |
184 | + @PrimaryKey() @ColumnInfo(name = "INV_NUM") var invNum: Int, | |
185 | + @ColumnInfo(name = "DET") var detalle: String?, | |
186 | + @ColumnInfo(name = "FET") var fechaInicio: String?, | |
187 | + @ColumnInfo(name = "DEP") var depsn: Boolean?, | |
188 | + @ColumnInfo(name = "EST") var estado: String?, | |
189 | + @ColumnInfo(name = "FEC") var fechaFinal: String?, | |
190 | + @ColumnInfo(name = "CONT") var prodContados: Int? | |
191 | +) | |
192 | + | |
193 | + | |
194 | +@Entity(tableName = TABLA_INV_SEC_B) | |
195 | +data class InvBodySec( | |
196 | + @ColumnInfo(name = "INV") var invNum: Int, | |
197 | + @ColumnInfo(name = "SEC") var sector: String?, | |
198 | + @ColumnInfo(name = "ART") var codigo: String?, | |
199 | + @ColumnInfo(name = "DET") var descripcion: String?, | |
200 | + @ColumnInfo(name = "PRE") var precio: String?, | |
201 | + @ColumnInfo(name = "UNIVTA") var uniVenta: String?, | |
202 | + @ColumnInfo(name = "COS") var costo: String?, | |
203 | + @ColumnInfo(name = "CON") var contado: String?, | |
204 | + @ColumnInfo(name = "DSN") var depSn: Boolean?, | |
205 | + @ColumnInfo(name = "EXIVTA") var EXIVTA: String?, | |
206 | + @ColumnInfo(name = "EXIDEP") var EXIDEP: String?, | |
207 | + @ColumnInfo(name = "CODBAR") var CODBAR: String?, | |
208 | + @ColumnInfo(name = "FECTOM") var fechaTomado: String?, | |
209 | + @ColumnInfo(name = "FECTOMFIN") var fechaFinal: String? | |
210 | +) : | |
211 | + Serializable { | |
212 | + @PrimaryKey(autoGenerate = true) | |
213 | + @ColumnInfo(name = "ID") | |
214 | + var id: Int = 0 | |
215 | +} | |
132 | 216 |
app/src/main/java/com/focasoftware/deboinventariov20/Model/WebService.kt
1 | 1 | package com.focasoftware.deboinventariov20.Model |
2 | 2 | |
3 | -import com.focasoftware.deboinventariov20.UI.actualizacionMaestros.BASE_URL | |
3 | + | |
4 | 4 | import okhttp3.OkHttpClient |
5 | 5 | import okhttp3.logging.HttpLoggingInterceptor |
6 | 6 | import retrofit2.Retrofit |
7 | 7 | import retrofit2.converter.gson.GsonConverterFactory |
8 | 8 | import java.util.concurrent.TimeUnit |
9 | 9 | |
10 | -object WebService { | |
11 | - private var instance: WebService? = null | |
12 | - private var retrofit: Retrofit? = null | |
13 | - private val TIME_OUT: Long | |
14 | - get() { | |
15 | - return 15 | |
16 | - } | |
17 | - private val interceptor = run { | |
18 | - val httpLoggingInterceptor = HttpLoggingInterceptor() | |
19 | - httpLoggingInterceptor.apply { | |
20 | - httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY | |
21 | - } | |
10 | +var BASE_URL: String = "" | |
11 | + | |
12 | +class WebService private constructor() { | |
13 | + | |
14 | + private val retrofit: Retrofit | |
15 | + private val loggingInterceptor: HttpLoggingInterceptor = HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY) | |
16 | + private val httpClientBuilder: OkHttpClient.Builder | |
17 | + | |
18 | +// private val interceptor = run { | |
19 | +// val httpLoggingInterceptor = HttpLoggingInterceptor() | |
20 | +// httpLoggingInterceptor.apply { | |
21 | +// httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY | |
22 | +// } | |
23 | +// } | |
24 | +// private val TIME_OUT: Long | |
25 | +// get() { | |
26 | +// return 200 | |
27 | +// } | |
28 | +// private val okHttpClient = OkHttpClient.Builder() | |
29 | +// .addNetworkInterceptor(interceptor) | |
30 | +// .connectTimeout(TIME_OUT, TimeUnit.SECONDS) | |
31 | +// .writeTimeout(TIME_OUT, TimeUnit.SECONDS) | |
32 | +// .readTimeout(TIME_OUT, TimeUnit.SECONDS) | |
33 | +// .build() | |
34 | + | |
35 | + fun createService(): WebServiceApi { | |
36 | + return retrofit.create(WebServiceApi::class.java) | |
22 | 37 | } |
23 | - private val okHttpClient = OkHttpClient.Builder() | |
24 | - .addNetworkInterceptor(interceptor) | |
25 | - .connectTimeout(TIME_OUT, TimeUnit.SECONDS) | |
26 | - .writeTimeout(TIME_OUT, TimeUnit.SECONDS) | |
27 | - .readTimeout(TIME_OUT, TimeUnit.SECONDS) | |
28 | - .build() | |
29 | 38 | |
39 | + fun <S> createService(serviceClass: Class<S>): S { | |
40 | + return retrofit.create(serviceClass) | |
41 | + } | |
42 | + | |
43 | + companion object { | |
44 | + | |
45 | + | |
46 | + @get:Synchronized | |
47 | + var instance: WebService? = null | |
48 | + get() { | |
49 | + if (field == null) { | |
50 | + field = WebService() | |
51 | + } | |
52 | + return field | |
53 | + } | |
54 | + private set | |
55 | + } | |
56 | + | |
57 | + init { | |
58 | + httpClientBuilder = OkHttpClient.Builder().addInterceptor(loggingInterceptor) | |
59 | + retrofit = Retrofit.Builder() | |
60 | + .baseUrl(BASE_URL) | |
61 | +// .client(okHttpClient) | |
62 | + .client(httpClientBuilder.build()) | |
63 | + .addConverterFactory(GsonConverterFactory.create()) | |
64 | + .build() | |
65 | + } | |
66 | +} | |
67 | +//object WebService2 { | |
68 | +// private var instance: WebService? = null | |
69 | +// private val TIME_OUT: Long | |
70 | +// get() { | |
71 | +// return 15 | |
72 | +// } | |
73 | +// private val interceptor = run { | |
74 | +// val httpLoggingInterceptor = HttpLoggingInterceptor() | |
75 | +// httpLoggingInterceptor.apply { | |
76 | +// httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY | |
77 | +// } | |
78 | +// } | |
79 | +// private val okHttpClient = OkHttpClient.Builder() | |
80 | +// .addNetworkInterceptor(interceptor) | |
81 | +// .connectTimeout(TIME_OUT, TimeUnit.SECONDS) | |
82 | +// .writeTimeout(TIME_OUT, TimeUnit.SECONDS) | |
83 | +// .readTimeout(TIME_OUT, TimeUnit.SECONDS) | |
84 | +// .build() | |
85 | +// | |
86 | +// fun getProductosService(): WebServiceApi { | |
87 | +// return Retrofit.Builder() | |
88 | +// .client(okHttpClient) | |
89 | +// .baseUrl(BASE_URL) | |
90 | +// .addConverterFactory(GsonConverterFactory.create()) | |
91 | +// .build() | |
92 | +// .create(insertarItominvc::class.java) | |
93 | +// } | |
94 | +//} | |
30 | 95 | // private fun WebService() { |
31 | 96 | // retrofit = Retrofit.Builder() |
32 | 97 | // .client(okHttpClient) |
... | ... | @@ -56,12 +121,3 @@ object WebService { |
56 | 121 | // } |
57 | 122 | |
58 | 123 | |
59 | - fun getProductosService(): WebServiceApi { | |
60 | - return Retrofit.Builder() | |
61 | - .client(okHttpClient) | |
62 | - .baseUrl(BASE_URL) | |
63 | - .addConverterFactory(GsonConverterFactory.create()) | |
64 | - .build() | |
65 | - .create(WebServiceApi::class.java) | |
66 | - } | |
67 | -} |
app/src/main/java/com/focasoftware/deboinventariov20/Model/WebServiceApi.kt
1 | 1 | package com.focasoftware.deboinventariov20.Model |
2 | 2 | |
3 | 3 | import retrofit2.Call |
4 | -import retrofit2.Response | |
5 | 4 | import retrofit2.http.Body |
6 | 5 | import retrofit2.http.GET |
7 | 6 | import retrofit2.http.POST |
8 | 7 | |
9 | - | |
10 | 8 | interface WebServiceApi { |
11 | 9 | |
12 | 10 | @GET("articulos/articulosCodBarra") |
13 | - fun getProductos(): Call<List<Productos>> | |
11 | + fun getProductos():Call<List<Productos?>?>? | |
12 | + | |
13 | + @GET("articulos/time") | |
14 | + fun getTime():Call<List<Time?>?>? | |
15 | + | |
16 | + @POST("api/insertar-itominvc") | |
17 | + fun insertarItominvc(@Body itomInvC: ItomInvC): Call<DefaultResponse> | |
18 | + | |
19 | + @POST("api/insertar-itominvd") | |
20 | + fun insertarItominvd(@Body itominvd: ItomInvD): Call<Void?> | |
21 | + | |
22 | + | |
23 | + | |
24 | + | |
25 | +// @POST("api/insertar-inventario") | |
26 | +// fun inventarioToSend(@Body invToSend: InvToSend): Call<Void?> | |
27 | + | |
28 | + @GET("api/get-cabecera-inventario") | |
29 | + fun getHeadInvSec():Call<List<InvHeadSecR?>?>? | |
30 | + | |
31 | + @POST("api/get-detalle-inventario") | |
32 | + fun getBodyInvSec(@Body inv_num: NumInvSec?): Call<List<InvBodySecR?>?>? | |
33 | + | |
34 | + @POST("api/update-cabecera-inventario") | |
35 | + fun inventarioSecToSendHead(@Body invSecHeadToSend: InvSecHeadToSend): Call<Void?> | |
14 | 36 | |
37 | + @POST("api/update-detalle-inventario") | |
38 | + fun inventarioSecToSendBody(@Body invSecBodyToSend: InvSecBodyToSend): Call<Void?> | |
15 | 39 | |
16 | - @POST("articulos/articulosCodBarra") | |
17 | - fun inventarioToSend(@Body invToSend: List<InvToSend>?): Call<Void?>? | |
18 | 40 | } |
19 | 41 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/MainActivity.kt
app/src/main/java/com/focasoftware/deboinventariov20/UI/SplashActivity.kt
1 | 1 | package com.focasoftware.deboinventariov20.UI |
2 | 2 | |
3 | 3 | import android.app.Activity |
4 | +import android.content.Context | |
4 | 5 | import android.content.Intent |
6 | +import android.content.SharedPreferences | |
5 | 7 | import android.os.Bundle |
6 | 8 | import com.focasoftware.deboinventariov20.R |
7 | 9 | |
10 | +private lateinit var sharedPreferences: SharedPreferences | |
11 | + | |
8 | 12 | class SplashActivity : Activity() { |
9 | 13 | |
10 | - override fun onCreate(savedInstanceState: Bundle?) { | |
11 | - super.onCreate(savedInstanceState) | |
12 | - setContentView(R.layout.activity_splash) | |
13 | - //window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | |
14 | + override fun onCreate(savedInstanceState: Bundle?) { | |
15 | + super.onCreate(savedInstanceState) | |
16 | + setContentView(R.layout.activity_splash) | |
17 | + | |
18 | + sharedPreferences = baseContext.getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
19 | + val editor = sharedPreferences.edit() | |
20 | + editor?.putString("inicio", "inicio") | |
21 | + editor?.apply() | |
22 | + editor.commit() | |
23 | + val bac = object : Thread() { | |
24 | + override fun run() { | |
25 | + try { | |
26 | + sleep(3000) | |
27 | + val intent = Intent(baseContext, MainActivity::class.java) | |
28 | + startActivity(intent) | |
29 | + finish() | |
30 | + } catch (e: Exception) { | |
31 | + e.printStackTrace() | |
32 | + } | |
33 | + } | |
34 | + } | |
35 | + bac.start() | |
14 | 36 | |
15 | - val bac = object : Thread(){ | |
16 | - override fun run(){ | |
17 | - try { | |
18 | - Thread.sleep(3) | |
19 | - val intent = Intent(baseContext, MainActivity:: class.java) | |
20 | - startActivity(intent) | |
21 | - finish() | |
22 | - } catch (e : Exception){ | |
23 | - e.printStackTrace() | |
24 | - } | |
25 | - } | |
26 | - } | |
27 | - bac.start() | |
28 | - } | |
37 | + } | |
29 | 38 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/BaseViewHolder.kt
app/src/main/java/com/focasoftware/deboinventariov20/UI/Utils/Utils.kt
1 | 1 | package com.focasoftware.deboinventariov20.UI.Utils |
2 | 2 | |
3 | +import android.app.Activity | |
3 | 4 | import android.app.AlertDialog |
4 | 5 | import android.app.Dialog |
5 | 6 | import android.content.Context |
7 | +import android.content.Intent | |
6 | 8 | import android.os.Bundle |
9 | +import android.provider.Settings | |
10 | +import android.view.LayoutInflater | |
11 | +import android.view.View | |
12 | +import android.view.WindowManager | |
13 | +import android.view.inputmethod.InputMethodManager | |
14 | +import androidx.core.content.ContextCompat.getSystemService | |
7 | 15 | import androidx.fragment.app.DialogFragment |
16 | +import androidx.fragment.app.FragmentActivity | |
8 | 17 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
18 | +import com.focasoftware.deboinventariov20.Model.ServeInv | |
19 | +import com.focasoftware.deboinventariov20.R | |
20 | +import com.focasoftware.deboinventariov20.UI.inventario.InventarioFragment | |
21 | +import kotlinx.android.synthetic.main.fragment_inventario.* | |
22 | +import kotlinx.android.synthetic.main.solicitar_fecha.view.* | |
9 | 23 | import kotlinx.coroutines.Dispatchers |
10 | 24 | import kotlinx.coroutines.GlobalScope |
11 | 25 | import kotlinx.coroutines.async |
... | ... | @@ -14,6 +28,9 @@ import java.net.UnknownHostException |
14 | 28 | import java.time.LocalDateTime |
15 | 29 | import java.time.format.DateTimeFormatter |
16 | 30 | |
31 | + | |
32 | +private var serverPre: ServeInv? = null | |
33 | + | |
17 | 34 | fun modificarCantidadEnCabecera(inventarioActual: Int, b: Boolean, context: Context) { |
18 | 35 | GlobalScope.async(Dispatchers.IO) { |
19 | 36 | var cantProductos = 0 |
... | ... | @@ -21,10 +38,10 @@ fun modificarCantidadEnCabecera(inventarioActual: Int, b: Boolean, context: Cont |
21 | 38 | AppDb.getAppDb(context)!!.InvHeadDAO()!!.consultaCantidadInvH(inventarioActual) |
22 | 39 | if (b) { |
23 | 40 | AppDb.getAppDb(context)!!.InvHeadDAO()!! |
24 | - .updateInvBody(inventarioActual, cantProductos + 1) | |
41 | + .updateInvCantHead(inventarioActual, cantProductos + 1) | |
25 | 42 | } else { |
26 | 43 | AppDb.getAppDb(context)!!.InvHeadDAO()!! |
27 | - .updateInvBody(inventarioActual, cantProductos - 1) | |
44 | + .updateInvCantHead(inventarioActual, cantProductos - 1) | |
28 | 45 | } |
29 | 46 | } |
30 | 47 | } |
... | ... | @@ -60,12 +77,16 @@ class NoEncontradoSimple : DialogFragment() { |
60 | 77 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
61 | 78 | return activity?.let { |
62 | 79 | val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) |
80 | + .setCancelable(true) | |
81 | + | |
63 | 82 | builder.show() |
64 | 83 | val title = "" |
65 | 84 | val content = "¡El producto buscado NO fue encontrado!" |
66 | 85 | |
67 | 86 | builder.setTitle(title).setMessage(content) |
68 | - .setPositiveButton(android.R.string.ok) { _, _ -> } | |
87 | + .setPositiveButton(android.R.string.ok) { _, _ -> | |
88 | + | |
89 | + } | |
69 | 90 | return builder.create() |
70 | 91 | } ?: throw IllegalStateException("Activity cannot be null") |
71 | 92 | } |
... | ... | @@ -105,6 +126,7 @@ fun isConnectedToThisServer(host: String): Boolean { |
105 | 126 | |
106 | 127 | return false |
107 | 128 | } |
129 | + | |
108 | 130 | class ServerValido : DialogFragment() { |
109 | 131 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
110 | 132 | return activity?.let { |
... | ... | @@ -117,6 +139,7 @@ class ServerValido : DialogFragment() { |
117 | 139 | } ?: throw IllegalStateException("Activity cannot be null") |
118 | 140 | } |
119 | 141 | } |
142 | + | |
120 | 143 | class ServerNoValido : DialogFragment() { |
121 | 144 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
122 | 145 | return activity?.let { |
... | ... | @@ -129,6 +152,7 @@ class ServerNoValido : DialogFragment() { |
129 | 152 | } ?: throw IllegalStateException("Activity cannot be null") |
130 | 153 | } |
131 | 154 | } |
155 | + | |
132 | 156 | class ServerNoConf : DialogFragment() { |
133 | 157 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
134 | 158 | return activity?.let { |
... | ... | @@ -141,6 +165,7 @@ class ServerNoConf : DialogFragment() { |
141 | 165 | } ?: throw IllegalStateException("Activity cannot be null") |
142 | 166 | } |
143 | 167 | } |
168 | + | |
144 | 169 | class ExportacionExitosa : DialogFragment() { |
145 | 170 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { |
146 | 171 | return activity?.let { |
... | ... | @@ -153,10 +178,125 @@ class ExportacionExitosa : DialogFragment() { |
153 | 178 | } ?: throw IllegalStateException("Activity cannot be null") |
154 | 179 | } |
155 | 180 | } |
181 | + | |
182 | +class ExportacionFracasada : DialogFragment() { | |
183 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
184 | + return activity?.let { | |
185 | + val title = "Exportación de Inventarios" | |
186 | + val content = "!No se pudo realizar la expotación¡" | |
187 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
188 | + builder.setTitle(title).setMessage(content) | |
189 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
190 | + return builder.create() | |
191 | + } ?: throw IllegalStateException("Activity cannot be null") | |
192 | + } | |
193 | +} | |
194 | + | |
195 | +fun obtenerFechaActualFormatoFoca(): String { | |
196 | + //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD | |
197 | + val current = LocalDateTime.now() | |
198 | + val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") | |
199 | + val dFechaHora = current.format(formatter) | |
200 | + return dFechaHora.toString() | |
201 | +} | |
156 | 202 | fun obtenerFechaActual(): String { |
157 | - //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD | |
158 | - val current = LocalDateTime.now() | |
159 | - val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm:ss") | |
160 | - val dFechaHora = current.format(formatter) | |
161 | - return dFechaHora.toString() | |
162 | - } | |
163 | 203 | \ No newline at end of file |
204 | + //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD | |
205 | + val current = LocalDateTime.now() | |
206 | + val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss") | |
207 | + val dFechaHora = current.format(formatter) | |
208 | + return dFechaHora.toString() | |
209 | +} | |
210 | +fun obtenerHoraActual(): String { | |
211 | + //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD | |
212 | + val current = LocalDateTime.now() | |
213 | + val formatter = DateTimeFormatter.ofPattern("HHmmss") | |
214 | + val dFechaHora = current.format(formatter) | |
215 | + return dFechaHora.toString() | |
216 | +} | |
217 | + | |
218 | +fun obtenerDiaActual(): String { | |
219 | + //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD | |
220 | + val current = LocalDateTime.now() | |
221 | + val formatter = DateTimeFormatter.ofPattern("ddMMyyyy") | |
222 | + val dFechaHora = current.format(formatter) | |
223 | + return dFechaHora.toString() | |
224 | +} | |
225 | +class SelAreaInventarioVentas : DialogFragment() { | |
226 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
227 | + return activity?.let { | |
228 | + val title = "Inventarios de Ventas" | |
229 | + val content = "!En busqueda de articulos no estaran disponibles los articulos de DEPOSITO¡" | |
230 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
231 | + builder.setTitle(title).setMessage(content) | |
232 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
233 | + return builder.create() | |
234 | + } ?: throw IllegalStateException("Activity cannot be null") | |
235 | + } | |
236 | +} | |
237 | + | |
238 | +class SelAreaInventarioDeposito : DialogFragment() { | |
239 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
240 | + return activity?.let { | |
241 | + val title = "Inventarios de Depositos" | |
242 | + val content = "!En busqueda de articulos no estaran disponibles los articulos de VENTAS¡" | |
243 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
244 | + builder.setTitle(title).setMessage(content) | |
245 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
246 | + return builder.create() | |
247 | + } ?: throw IllegalStateException("Activity cannot be null") | |
248 | + } | |
249 | +} | |
250 | + | |
251 | +fun dialogoHoraServer(reqActivity: FragmentActivity, context: Context, fechaHoraDispositivo: String, fechaHoraServer: String) { | |
252 | + val mDialogView: View = LayoutInflater.from(context).inflate(R.layout.solicitar_fecha, null) | |
253 | + val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(false) | |
254 | + | |
255 | + | |
256 | + mDialogView.tvHoraDispositivo.text = fechaHoraDispositivo | |
257 | + mDialogView.tvHoraServidor.text = fechaHoraServer | |
258 | + val mAlertDialog = mBuilder.show() | |
259 | + | |
260 | +// mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) | |
261 | +// mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) | |
262 | +// | |
263 | +// val imm = reqActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager? | |
264 | +// imm!!.hideSoftInputFromWindow(reqActivity.currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
265 | + | |
266 | + mDialogView.btnCambiarHora.setOnClickListener { | |
267 | + context.startActivity(Intent(Settings.ACTION_DATE_SETTINGS)) | |
268 | + mAlertDialog.dismiss() | |
269 | + } | |
270 | + | |
271 | + mDialogView.btnSalir.setOnClickListener { | |
272 | + mAlertDialog.dismiss() | |
273 | + } | |
274 | +} | |
275 | + | |
276 | +class InvSecImp : DialogFragment() { | |
277 | + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { | |
278 | + return activity?.let { | |
279 | + val title = "Inventarios de Sectorizados" | |
280 | + val content = "!Inventario importado correctamente¡" | |
281 | + val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity()) | |
282 | + builder.setTitle(title).setMessage(content) | |
283 | + .setPositiveButton(android.R.string.ok) { _, _ -> } | |
284 | + return builder.create() | |
285 | + } ?: throw IllegalStateException("Activity cannot be null") | |
286 | + } | |
287 | +} | |
288 | + | |
289 | +suspend fun fetchServerPreOne(reqActivity: FragmentActivity): ServeInv? { | |
290 | + return GlobalScope.async(Dispatchers.IO) { | |
291 | + return@async AppDb.getAppDb(reqActivity)!!.ServeInvDao()!!.fetchServerPreOne() | |
292 | + }.await() | |
293 | +} | |
294 | + | |
295 | +//fun hideSoftKeyboard(reqActivity: FragmentActivity) { | |
296 | +// val imm = reqActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager? | |
297 | +// imm!!.hideSoftInputFromWindow(reqActivity.currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
298 | +// | |
299 | +// | |
300 | +//} | |
301 | +fun Context.hideSoftKeyboard(view: View) { | |
302 | +val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager | |
303 | +inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) } | |
164 | 304 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ActuaMaestrosFragment.kt
... | ... | @@ -6,74 +6,156 @@ import android.view.View |
6 | 6 | import android.view.ViewGroup |
7 | 7 | import android.widget.Button |
8 | 8 | import android.widget.RadioButton |
9 | +import android.widget.Toast | |
9 | 10 | import androidx.fragment.app.Fragment |
10 | -import androidx.lifecycle.lifecycleScope | |
11 | +import androidx.navigation.NavController | |
12 | +import androidx.navigation.Navigation | |
11 | 13 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
12 | -import com.focasoftware.deboinventariov20.Model.Articles | |
13 | -import com.focasoftware.deboinventariov20.Model.ServeInv | |
14 | +import com.focasoftware.deboinventariov20.Model.* | |
14 | 15 | import com.focasoftware.deboinventariov20.R |
16 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
15 | 17 | import com.focasoftware.deboinventariov20.UI.Utils.NoServerConf |
16 | 18 | import com.focasoftware.deboinventariov20.UI.Utils.ServerNoConf |
19 | +import com.focasoftware.deboinventariov20.UI.Utils.fetchServerPreOne | |
17 | 20 | import kotlinx.android.synthetic.main.fragment_actua_maestros.* |
18 | 21 | import kotlinx.coroutines.* |
19 | 22 | import kotlinx.coroutines.Dispatchers.IO |
20 | 23 | import kotlinx.coroutines.Dispatchers.Main |
24 | +import retrofit2.Call | |
25 | +import retrofit2.Callback | |
26 | +import retrofit2.Response | |
27 | +import java.net.SocketTimeoutException | |
21 | 28 | |
22 | 29 | |
23 | -var BASE_URL = "" | |
24 | -var serverPre: ServeInv? = null | |
30 | +private var serverPre: ServeInv? = null | |
31 | +private lateinit var navController: NavController | |
32 | + | |
25 | 33 | |
26 | 34 | class ActuaMaestrosFragment : Fragment() { |
35 | + private val job: Job = Job() | |
36 | + private val fragmentScopeAM = CoroutineScope(IO + job) | |
27 | 37 | |
28 | 38 | override fun onCreate(savedInstanceState: Bundle?) { |
29 | 39 | super.onCreate(savedInstanceState) |
30 | 40 | |
31 | - GlobalScope.launch(Main) { | |
32 | - | |
33 | - serverPre = fetchServerPreOne() | |
34 | - if (serverPre != null) { | |
35 | - btnConfirmarAct.isEnabled = true | |
36 | - if (serverPre!!.direccion.isNullOrEmpty()) { | |
37 | - val modalDialog = NoServerConf() | |
38 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
39 | - } else { | |
40 | - BASE_URL = serverPre!!.direccion.toString() + ":" + serverPre!!.puerto.toString() + "/" | |
41 | - tvServerConectado.text = "Conectado al servidor: ${serverPre!!.descripcion}" | |
42 | - } | |
43 | - } else { | |
44 | - val modalDialog = ServerNoConf() | |
45 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
46 | - | |
47 | - btnConfirmarAct.isEnabled = false | |
48 | - | |
49 | - } | |
50 | - } | |
51 | - | |
52 | -// mostrarArticulos() | |
41 | +// val servidor = urlBajada((activity as MainActivity)) | |
42 | +// if (servidor != "") { | |
43 | +// tvServerConectado.text = "Conectado al servidor: $servidor" | |
44 | +// } | |
53 | 45 | } |
54 | 46 | |
55 | - private suspend fun fetchServerPreOne(): ServeInv? { | |
56 | - return GlobalScope.async(IO) { | |
57 | - return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServerPreOne() | |
58 | - }.await() | |
47 | + override fun onDestroy() { | |
48 | + super.onDestroy() | |
49 | + fragmentScopeAM.cancel() | |
59 | 50 | } |
60 | 51 | |
61 | 52 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
62 | - // Inflate the layout for this fragment | |
63 | 53 | val v = inflater.inflate(R.layout.fragment_actua_maestros, container, false) |
64 | 54 | val bConfirmarAct = v.findViewById<Button>(R.id.btnConfirmarAct) |
65 | 55 | val obPorWifi = v.findViewById<RadioButton>(R.id.obPorWifi) |
66 | - val obImpInventarios= v.findViewById<RadioButton>(R.id.obImpInventarios) | |
56 | + val obImpInventarios = v.findViewById<RadioButton>(R.id.obImpInventarios) | |
57 | + | |
58 | + obPorWifi.setOnClickListener { | |
59 | + bConfirmarAct.text = ("Confirmar Importación") | |
60 | + } | |
61 | + obImpInventarios.setOnClickListener { | |
62 | + bConfirmarAct.text = ("Buscar Inventarios sectorizados en servidor") | |
63 | + } | |
67 | 64 | |
68 | 65 | bConfirmarAct.setOnClickListener { |
69 | - loading_view.visibility = View.VISIBLE | |
70 | - countriesList.text = "Obteniendo artículos del servidor, aguarde por favor." | |
71 | - obtenerArticulos() | |
66 | + if (obPorWifi.isChecked) { | |
67 | + loading_view.visibility = View.VISIBLE | |
68 | + countriesList.text = ("Obteniendo artículos del servidor, aguarde por favor.") | |
69 | + obtenerArticulos() | |
70 | + } | |
71 | + if (obImpInventarios.isChecked) { | |
72 | + navController = Navigation.findNavController(v) | |
73 | + navController.navigate(R.id.action_actuaMaestrosFragment_to_invSecImpFragment) | |
74 | + } | |
72 | 75 | } |
73 | 76 | return v |
74 | 77 | } |
75 | 78 | |
76 | 79 | private fun obtenerArticulos() { |
80 | + fragmentScopeAM.launch(Main) { | |
81 | + try { | |
82 | + serverPre = fetchServerPreOne((activity as MainActivity)) | |
83 | + | |
84 | + } catch (e: RuntimeException) { | |
85 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
86 | + } | |
87 | + if (serverPre != null) { | |
88 | + if (serverPre!!.direccion.isNullOrEmpty()) { | |
89 | + val modalDialog = NoServerConf() | |
90 | + if (activity != null) { | |
91 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
92 | + } | |
93 | + } else { | |
94 | + BASE_URL = serverPre!!.direccion.toString() + ":" + serverPre!!.puertoBajada.toString() + "/" | |
95 | + } | |
96 | + } else { | |
97 | + if (activity != null) { | |
98 | + val modalDialog = ServerNoConf() | |
99 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
100 | + } | |
101 | + } | |
102 | + | |
103 | + | |
104 | + try { | |
105 | + val call: Call<List<Productos?>?>? = WebService.instance | |
106 | + ?.createService(WebServiceApi::class.java) | |
107 | + ?.getProductos() | |
108 | + var index: Long = 1 | |
109 | + call!!.enqueue(object : Callback<List<Productos?>?> { | |
110 | + override fun onResponse(call: Call<List<Productos?>?>?, response: Response<List<Productos?>?>) { | |
111 | + if (response.code() == 200) { | |
112 | + try { | |
113 | + for (pro in response.body()!!) { | |
114 | + val artiAcargar = Articles( | |
115 | + pro?.sector, | |
116 | + pro?.codigo, | |
117 | + pro?.descripcion, | |
118 | + pro?.codBar, | |
119 | + pro?.codOrigen, | |
120 | + pro?.precio, | |
121 | + pro?.costo, | |
122 | + pro?.exiVenta, | |
123 | + pro?.exiDeposito, | |
124 | + pro?.de, | |
125 | + pro?.balanza, | |
126 | + pro?.depSn, | |
127 | + pro?.imagen | |
128 | + ) | |
129 | + index += index | |
130 | + insertarProducto(artiAcargar) | |
131 | + } | |
132 | + countriesList.visibility = View.VISIBLE | |
133 | + countriesList.text = "¡Datos Importados Correctamente!" | |
134 | + loading_view.visibility = View.GONE | |
135 | + } catch (e: SocketTimeoutException) { | |
136 | + countriesList.visibility = View.VISIBLE | |
137 | + countriesList.text = "¡Sin conexión al Servidor!" | |
138 | + loading_view.visibility = View.GONE | |
139 | + } | |
140 | + } else if (response.code() == 404) { | |
141 | + countriesList.visibility = View.VISIBLE | |
142 | + countriesList.text = "¡Sin conexión al Servidor!" | |
143 | + loading_view.visibility = View.GONE | |
144 | + } | |
145 | + } | |
146 | + | |
147 | + override fun onFailure(call: Call<List<Productos?>?>?, t: Throwable?) { countriesList.visibility = View.VISIBLE | |
148 | + countriesList.visibility = View.VISIBLE | |
149 | + countriesList.text = "¡Sin conexión al Servidor!" | |
150 | + loading_view.visibility = View.GONE | |
151 | + } | |
152 | + }) | |
153 | + } catch (e: RuntimeException) { | |
154 | + countriesList.visibility = View.VISIBLE | |
155 | + countriesList.text = "Error ${e.message}" | |
156 | + loading_view.visibility = View.GONE | |
157 | + } | |
158 | + } | |
77 | 159 | // val call = getInstance() |
78 | 160 | // ?.createService(WebServiceApi::class.java) |
79 | 161 | // ?.getProductos() |
... | ... | @@ -127,7 +209,7 @@ class ActuaMaestrosFragment : Fragment() { |
127 | 209 | // withContext(IO) { |
128 | 210 | // val job = CoroutineScope(IO).launch { |
129 | 211 | // // TODO: BORRO TODO LOS ARTICULOS DE LA BASE PARA CARGARLOS DE NUEVO |
130 | -// AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!!.deleteAllArticulos() | |
212 | +// AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.deleteAllArticulos() | |
131 | 213 | // try { |
132 | 214 | // val response = WebServiceApi. |
133 | 215 | // if (response.isSuccessful) { |
... | ... | @@ -149,7 +231,7 @@ class ActuaMaestrosFragment : Fragment() { |
149 | 231 | // pro.imagen |
150 | 232 | // ) |
151 | 233 | // index += index |
152 | -// AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!!.insertArticulos(artiAcargar) | |
234 | +// AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.insertArticulos(artiAcargar) | |
153 | 235 | // } |
154 | 236 | // withContext(Main) { |
155 | 237 | // countriesList.visibility = View.VISIBLE |
... | ... | @@ -172,8 +254,6 @@ class ActuaMaestrosFragment : Fragment() { |
172 | 254 | // } |
173 | 255 | // } |
174 | 256 | // } |
175 | - | |
176 | - | |
177 | 257 | // withContext(Dispatchers.Main) { |
178 | 258 | // if (response.isSuccessful) { |
179 | 259 | // val call = WebService |
... | ... | @@ -187,7 +267,7 @@ class ActuaMaestrosFragment : Fragment() { |
187 | 267 | // ) { |
188 | 268 | // if (response.code() == 200) { |
189 | 269 | // for (i in response.body()!!.indices) { |
190 | -// //AppDb.getAppDb(requireActivity())!!.ArticulosDAO()?.insertArticulos(response.body()!![i]) | |
270 | +// //AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()?.insertArticulos(response.body()!![i]) | |
191 | 271 | // cargarArticulos(2, 500, "sfas", "66666","2,2", "2,2", false, false, "") |
192 | 272 | //// Log.d( |
193 | 273 | //// "TAG1", "Nombre Curso: " + response.body()!![i]?.sector |
... | ... | @@ -206,23 +286,23 @@ class ActuaMaestrosFragment : Fragment() { |
206 | 286 | } |
207 | 287 | |
208 | 288 | fun insertarProducto(aCargar: Articles) { |
209 | - lifecycleScope.launch { | |
289 | + fragmentScopeAM.launch { | |
210 | 290 | withContext(IO) { |
211 | - AppDb.getAppDb(requireActivity())!!.ArticulosDAO()!!.insertArticulos(aCargar) | |
291 | + AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.insertArticulos(aCargar) | |
212 | 292 | } |
213 | 293 | } |
214 | 294 | } |
215 | 295 | |
216 | 296 | fun mostrarArticulos() { |
217 | - val Job = GlobalScope.launch { | |
297 | + fragmentScopeAM.launch { | |
218 | 298 | var listArticulos: List<Articles>? = null |
219 | 299 | var temp: String = "" |
220 | - listArticulos = AppDb.getAppDb(requireActivity())?.ArticulosDAO()?.findAllArticulos() | |
300 | + listArticulos = AppDb.getAppDb((activity as MainActivity))?.ArticulosDAO()?.findAllArticulos() | |
221 | 301 | if (listArticulos != null) { |
222 | 302 | |
223 | 303 | for (i in listArticulos.indices) temp += listArticulos[i].codigo.toString() |
224 | 304 | } |
225 | - withContext(Dispatchers.Main) { | |
305 | + withContext(Main) { | |
226 | 306 | countriesList.visibility = View.VISIBLE |
227 | 307 | loading_view.visibility = View.GONE |
228 | 308 | countriesList?.text = temp |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/InvImportadosFragment.kt
... | ... | @@ -1,24 +0,0 @@ |
1 | -package com.focasoftware.deboinventariov20.UI.actualizacionMaestros | |
2 | - | |
3 | -import android.os.Bundle | |
4 | -import androidx.fragment.app.Fragment | |
5 | -import android.view.LayoutInflater | |
6 | -import android.view.View | |
7 | -import android.view.ViewGroup | |
8 | -import com.focasoftware.deboinventariov20.R | |
9 | - | |
10 | -class InvImportadosFragment : Fragment() { | |
11 | - | |
12 | - override fun onCreate(savedInstanceState: Bundle?) { | |
13 | - super.onCreate(savedInstanceState) | |
14 | - | |
15 | - } | |
16 | - | |
17 | - override fun onCreateView( | |
18 | - inflater: LayoutInflater, container: ViewGroup?, | |
19 | - savedInstanceState: Bundle? | |
20 | - ): View? { | |
21 | - // Inflate the layout for this fragment | |
22 | - return inflater.inflate(R.layout.fragment_inv_importados, container, false) | |
23 | - } | |
24 | -} | |
25 | 0 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/InvSecHeadListAdapter.kt
... | ... | @@ -0,0 +1,43 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.actualizacionMaestros | |
2 | + | |
3 | +import android.content.Context | |
4 | +import android.view.LayoutInflater | |
5 | +import android.view.View | |
6 | +import android.view.ViewGroup | |
7 | +import androidx.recyclerview.widget.RecyclerView | |
8 | +import com.focasoftware.deboinventariov20.R | |
9 | +import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder | |
10 | +import kotlinx.android.synthetic.main.item_inv_importados.view.* | |
11 | + | |
12 | + | |
13 | +class InvSecHeadListAdapter( | |
14 | + private val context: Context, private val invHead: ArrayList<ItemsInvSecHead>, private val itemCheckListener: OnCheckListener | |
15 | +) : RecyclerView.Adapter<BaseViewHolder<*>>() { | |
16 | + | |
17 | + interface OnCheckListener { | |
18 | + fun onItemCheck(inventario: String?) | |
19 | + } | |
20 | + | |
21 | + override fun onCreateViewHolder(parent: ViewGroup, p1: Int) = ItemsViewHolder(LayoutInflater.from(context).inflate(R.layout.item_inv_importados, parent, false)) | |
22 | + | |
23 | + override fun getItemCount() = invHead.size | |
24 | + | |
25 | + override fun onBindViewHolder(holder: BaseViewHolder<*>, position: Int) { | |
26 | + when (holder) { | |
27 | + is ItemsViewHolder -> { | |
28 | + holder.bind(invHead[position], position) | |
29 | + } | |
30 | + } | |
31 | + } | |
32 | + | |
33 | + inner class ItemsViewHolder(itemView: View) : BaseViewHolder<ItemsInvSecHead>(itemView) { | |
34 | + override fun bind(item: ItemsInvSecHead, position: Int) { | |
35 | + itemView.tvPrincipalinventario.setOnCheckedChangeListener { button, b -> itemCheckListener.onItemCheck(item.invnum.toString()) } | |
36 | + itemView.tvPrincipalinventario.text = item.invnum.toString() + "-" + item.detalle.toString() + " " + item.fecha.toString() | |
37 | + } | |
38 | + } | |
39 | +} | |
40 | + | |
41 | + | |
42 | + | |
43 | + |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/InvSecImpFragment.kt
... | ... | @@ -0,0 +1,300 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.actualizacionMaestros | |
2 | + | |
3 | +import android.app.AlertDialog | |
4 | +import android.content.DialogInterface | |
5 | +import android.os.Bundle | |
6 | +import android.view.LayoutInflater | |
7 | +import android.view.View | |
8 | +import android.view.ViewGroup | |
9 | +import android.widget.Button | |
10 | +import android.widget.ProgressBar | |
11 | +import android.widget.TextView | |
12 | +import android.widget.Toast | |
13 | +import androidx.fragment.app.Fragment | |
14 | +import androidx.navigation.NavController | |
15 | +import androidx.navigation.Navigation | |
16 | +import androidx.recyclerview.widget.LinearLayoutManager | |
17 | +import androidx.recyclerview.widget.RecyclerView | |
18 | +import com.focasoftware.deboinventariov20.DB.DataBase.AppDb | |
19 | +import com.focasoftware.deboinventariov20.Model.* | |
20 | +import com.focasoftware.deboinventariov20.R | |
21 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
22 | +import com.focasoftware.deboinventariov20.UI.Utils.* | |
23 | +import kotlinx.android.synthetic.main.fragment_inv_importados.* | |
24 | +import kotlinx.coroutines.* | |
25 | +import kotlinx.coroutines.Dispatchers.IO | |
26 | +import kotlinx.coroutines.Dispatchers.Main | |
27 | +import retrofit2.Call | |
28 | +import retrofit2.Callback | |
29 | +import retrofit2.Response | |
30 | +import java.lang.Thread.sleep | |
31 | +import java.net.SocketTimeoutException | |
32 | + | |
33 | +private lateinit var viewAdapter: RecyclerView.Adapter<*> | |
34 | +private lateinit var viewManager: RecyclerView.LayoutManager | |
35 | +private lateinit var recicler: RecyclerView | |
36 | +private var listInv = ArrayList<ItemsInvSecHead>() | |
37 | +private var serverPre: ServeInv? = null | |
38 | +var invSeleccionados = mutableListOf<String>() | |
39 | +private lateinit var navController: NavController | |
40 | + | |
41 | +class InvSecImpFragment : Fragment(), InvSecHeadListAdapter.OnCheckListener { | |
42 | + private val job: Job = Job() | |
43 | + private val fragmentScopeInvSec = CoroutineScope(Dispatchers.IO + job) | |
44 | + | |
45 | + override fun onCreate(savedInstanceState: Bundle?) { | |
46 | + super.onCreate(savedInstanceState) | |
47 | + invSeleccionados.clear() | |
48 | + } | |
49 | + override fun onDestroy() { | |
50 | + super.onDestroy() | |
51 | + fragmentScopeInvSec.cancel() | |
52 | + } | |
53 | + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | |
54 | + super.onViewCreated(view, savedInstanceState) | |
55 | + val navController = Navigation.findNavController(view) | |
56 | + val btnConfirmarAct = view.findViewById<Button>(R.id.btnConfirmarAct) | |
57 | + val pbInvSec = view.findViewById<ProgressBar>(R.id.pbInvSec) | |
58 | + val tvMensaje = view.findViewById<TextView>(R.id.tvMensaje) | |
59 | + recicler = view.findViewById(R.id.rcDescripcion) | |
60 | + | |
61 | + fragmentScopeInvSec.launch(Main) { | |
62 | + invSeleccionados.clear() | |
63 | + pbInvSec.visibility = View.VISIBLE | |
64 | + recicler.visibility = View.GONE | |
65 | + try { | |
66 | + serverPre = fetchServerPreOne(requireActivity()) | |
67 | + } catch (e: RuntimeException) { | |
68 | + | |
69 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
70 | + } | |
71 | + if (serverPre != null) { | |
72 | + if (serverPre!!.direccion.isNullOrEmpty()) { | |
73 | + val modalDialog = NoServerConf() | |
74 | + if (activity != null) { | |
75 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
76 | + } | |
77 | + } else { | |
78 | + BASE_URL = serverPre!!.direccion.toString() + ":" + serverPre!!.puertoSubida.toString() + "/" | |
79 | + listInv.clear() | |
80 | + try { | |
81 | +// val call: Call<List<InvHeadSecR?>?>? = WebService.instance | |
82 | +// ?.createService(WebServiceApi::class.java) | |
83 | +// ?.getHeadInvSec() | |
84 | + ItomInv.request.getHeadInvSec() | |
85 | + ?.enqueue(object : Callback<List<InvHeadSecR?>?> { | |
86 | +// call!!.enqueue(object : Callback<List<InvHeadSecR?>?> { | |
87 | + override fun onResponse(call: Call<List<InvHeadSecR?>?>?, response: Response<List<InvHeadSecR?>?>) { | |
88 | + if (response.code() == 200) { | |
89 | + try { | |
90 | + for (inv in response.body()!!) { | |
91 | + cargarRecicler(inv?.invNum, inv!!.detalle, inv.fechaInicio, inv.depsn) | |
92 | + } | |
93 | + } catch (e: SocketTimeoutException) { | |
94 | + } | |
95 | + } else if (response.code() == 404) { | |
96 | + tvSeleccionInventario.visibility = View.VISIBLE | |
97 | + tvMensaje.visibility = View.VISIBLE | |
98 | + tvMensaje.text = "No hay inventarios disponibles." | |
99 | + pbInvSec.visibility = View.GONE | |
100 | + } | |
101 | + } | |
102 | + | |
103 | + override fun onFailure(call: Call<List<InvHeadSecR?>?>?, t: Throwable?) {} | |
104 | + }) | |
105 | + } catch (e: RuntimeException) { | |
106 | + tvSeleccionInventario.visibility = View.VISIBLE | |
107 | + tvMensaje.visibility = View.VISIBLE | |
108 | + tvMensaje.text = "Error ${e.message}" | |
109 | + pbInvSec.visibility = View.GONE | |
110 | + tvMensaje.visibility = View.GONE | |
111 | + } | |
112 | + // obtenerInvSectorizados() | |
113 | + } | |
114 | + } else { | |
115 | + if (activity != null) { | |
116 | + val modalDialog = ServerNoConf() | |
117 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
118 | + } | |
119 | + } | |
120 | + pbInvSec.visibility = View.GONE | |
121 | + recicler.visibility = View.VISIBLE | |
122 | + | |
123 | + } | |
124 | + | |
125 | + | |
126 | + btnConfirmarAct.setOnClickListener { | |
127 | + var entroAlFor=false | |
128 | + for (inv in invSeleccionados) { | |
129 | + entroAlFor=true | |
130 | + GlobalScope.launch(Main) { | |
131 | + deleteAllInvHeadSec(inv.toInt()) | |
132 | + deleteAllInvBodySec(inv.toInt()) | |
133 | + } | |
134 | + val aEnviar: NumInvSec = NumInvSec(inv) | |
135 | +// val call: Call<List<InvBodySecR?>?>? = WebService.instance | |
136 | +// ?.createService(WebServiceApi::class.java) | |
137 | +// ?.getBodyInvSec(aEnviar) | |
138 | +// call!!.enqueue(object : Callback<List<InvBodySecR?>?> { | |
139 | + ItomInv.request.getBodyInvSec(aEnviar) | |
140 | + ?.enqueue(object : Callback<List<InvBodySecR?>?> { | |
141 | + override fun onResponse(call: Call<List<InvBodySecR?>?>?, response: Response<List<InvBodySecR?>?>) { | |
142 | + | |
143 | + if (response.code() == 200) { | |
144 | + try { | |
145 | + preparaParaInsertar(response.body(), inv) | |
146 | + } catch (e: SocketTimeoutException) { | |
147 | + } | |
148 | + } else if (response.code() == 404) { | |
149 | + } | |
150 | + } | |
151 | + | |
152 | + override fun onFailure(call: Call<List<InvBodySecR?>?>?, t: Throwable?) {} | |
153 | + }) | |
154 | + } | |
155 | + if (entroAlFor) { | |
156 | + recicler.visibility = View.GONE | |
157 | + btnConfirmarAct.isEnabled = false | |
158 | + val modalDialog = InvSecImp() | |
159 | + modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
160 | + } | |
161 | +// navController.navigate(R.id.action_invSecImpFragment_to_mainFragment2) | |
162 | + } | |
163 | + } | |
164 | + | |
165 | + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | |
166 | + val v = inflater.inflate(R.layout.fragment_inv_importados, container, false) | |
167 | + return v | |
168 | + } | |
169 | + | |
170 | + private fun preparaParaInsertar(list: List<InvBodySecR?>?, inv: String) { | |
171 | + | |
172 | + fragmentScopeInvSec.launch(Main) { | |
173 | + if (list != null) { | |
174 | + for (head in listInv) { | |
175 | + if (inv.toInt() == head.invnum) { | |
176 | + val invHeadTemp = InvHeadSec(head.invnum, head.detalle, head.fecha, head.deposito == 1, "", head.fecha, 0) | |
177 | + insertInvHeadSec(invHeadTemp) | |
178 | + break | |
179 | + } | |
180 | + } | |
181 | + for (body in list) { | |
182 | + val invBodyTemp = InvBodySec( | |
183 | + body!!.INV.toInt(), body.SEC, body.ART, body.DET, body.PRE, | |
184 | + body.uniVta, | |
185 | + body.COS, "", body.DEPSN!!.toInt() != 0, body.EXIVTA, body.EXIDEP, body.CODBAR, "", "" | |
186 | + ) | |
187 | + insertInvBodySec(invBodyTemp) | |
188 | + } | |
189 | + } | |
190 | + sleep(500) | |
191 | + buscarCantArtInvSecHead(inv) | |
192 | + sleep(500) | |
193 | + } | |
194 | + } | |
195 | + | |
196 | + fun cargarRecicler(invNum: Int?, detalle: String?, fechaInicio: String?, deposito: Int?) { | |
197 | + //TODO CARGO EN LE RV | |
198 | + val item = ItemsInvSecHead(invNum, detalle, fechaInicio, deposito) | |
199 | + listInv.add(item) | |
200 | + | |
201 | + viewAdapter = InvSecHeadListAdapter(requireContext(), listInv, this) | |
202 | + viewManager = LinearLayoutManager(requireContext()) | |
203 | + // deleteIcon = ContextCompat.getDrawable(requireContext(), R.drawable.borrar)!! | |
204 | + recicler.apply { | |
205 | + adapter = viewAdapter | |
206 | + layoutManager = viewManager | |
207 | + } | |
208 | + } | |
209 | + | |
210 | + override fun onItemCheck(inventario: String?) { | |
211 | + if (inventario in invSeleccionados) { | |
212 | + invSeleccionados.removeIf { it == inventario } | |
213 | + } else { | |
214 | + fragmentScopeInvSec.launch(Main) { | |
215 | + var invBodySec: List<InvBodySec>? = null | |
216 | + invBodySec = verificoExisteInvSec(inventario!!.toInt()) | |
217 | + if (!invBodySec.isNullOrEmpty()) { | |
218 | + AlertDialog.Builder(requireContext()).setTitle("El inventario $inventario ya se encuentra cargado.").setMessage(" Si continúa se perderan los datos ingresados.") | |
219 | + .setPositiveButton(R.string.btnOk, DialogInterface.OnClickListener { dialog, which -> | |
220 | + invSeleccionados.add(inventario) | |
221 | + }).setNegativeButton(R.string.btnCancelar, DialogInterface.OnClickListener { dialog, which -> | |
222 | + | |
223 | + }).show() | |
224 | + } else invSeleccionados.add(inventario) | |
225 | + } | |
226 | + } | |
227 | + } | |
228 | + | |
229 | + private suspend fun insertInvBodySec(inventario: InvBodySec) { | |
230 | + return withContext(fragmentScopeInvSec.coroutineContext + IO) { | |
231 | + AppDb.getAppDb(requireActivity())!!.InvBodySecDAO()!!.insertInvBodySec(inventario) | |
232 | + } | |
233 | + } | |
234 | + | |
235 | + private suspend fun insertInvHeadSec(inventario: InvHeadSec) { | |
236 | + return withContext(fragmentScopeInvSec.coroutineContext + IO) { | |
237 | + AppDb.getAppDb(requireActivity())!!.InvHeadSecDAO()!!.insertInvHeadSec(inventario) | |
238 | + } | |
239 | + } | |
240 | + | |
241 | + private suspend fun deleteAllInvHeadSec(invNum: Int) { | |
242 | + return withContext(fragmentScopeInvSec.coroutineContext + IO) { | |
243 | + AppDb.getAppDb(requireContext())!!.InvHeadSecDAO()!!.deleteAllInvHeadSec(invNum) | |
244 | + } | |
245 | + } | |
246 | + | |
247 | + private suspend fun deleteAllInvBodySec(invNum: Int) { | |
248 | + return withContext(fragmentScopeInvSec.coroutineContext + IO) { | |
249 | + AppDb.getAppDb(requireContext())!!.InvBodySecDAO()!!.deleteAllInvBodySec(invNum) | |
250 | + } | |
251 | + } | |
252 | + | |
253 | + private suspend fun buscarCantArtInvSecHead(invNum: String) { | |
254 | + return withContext(fragmentScopeInvSec.coroutineContext + IO) { | |
255 | + val arti = mutableListOf<String>() | |
256 | + val invBodySec: List<InvBodySec> = fetchInvSecBodyGroup(invNum) | |
257 | +// var cant = 0 | |
258 | +// var encontrado: Boolean | |
259 | +// var first = false | |
260 | +// for (inv in invBodySec) { | |
261 | +// if (!first) { | |
262 | +// arti.add(inv.sector.toString() + inv.codigo.toString()) | |
263 | +// first = true | |
264 | +// cant += 1 | |
265 | +// } else { | |
266 | +// encontrado = false | |
267 | +// for (ar in arti) { | |
268 | +// | |
269 | +// + | |
270 | +// if (ar == inv.sector.toString() + inv.codigo.toString()) { | |
271 | +// encontrado = true | |
272 | +// break | |
273 | +// } | |
274 | +// } | |
275 | +// if (!encontrado) { | |
276 | +// cant += 1 | |
277 | +// arti.add(inv.sector.toString() + inv.codigo.toString()) | |
278 | +// } | |
279 | +// } | |
280 | +// } | |
281 | + AppDb.getAppDb(requireActivity())!!.InvHeadSecDAO()!!.updateCantArtInvSecHead(invNum.toInt(), invBodySec.count()) | |
282 | + } | |
283 | + } | |
284 | + | |
285 | + private suspend fun verificoExisteInvSec(invNum: Int): List<InvBodySec> { | |
286 | + var busqueda: List<InvBodySec> | |
287 | + return fragmentScopeInvSec.async(IO) { | |
288 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodySecDAO()!!.verificoExisteInvSec(invNum) | |
289 | + return@async busqueda | |
290 | + }.await() | |
291 | + } | |
292 | + | |
293 | + private suspend fun fetchInvSecBodyGroup(invNum: String): List<InvBodySec> { | |
294 | + var busqueda: List<InvBodySec> | |
295 | + return fragmentScopeInvSec.async(IO) { | |
296 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodySecDAO()!!.fetchInvSecBodyGroup(invNum) | |
297 | + return@async busqueda | |
298 | + }.await() | |
299 | + } | |
300 | +} | |
0 | 301 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/actualizacionMaestros/ItemsInvSecHead.kt
app/src/main/java/com/focasoftware/deboinventariov20/UI/configuracion/ConfiguracionFragment.kt
... | ... | @@ -8,20 +8,24 @@ import android.view.View |
8 | 8 | import android.view.ViewGroup |
9 | 9 | import android.widget.* |
10 | 10 | import androidx.fragment.app.Fragment |
11 | -import androidx.fragment.app.FragmentActivity | |
12 | 11 | import androidx.lifecycle.lifecycleScope |
13 | 12 | import androidx.navigation.NavController |
14 | 13 | import androidx.navigation.Navigation |
15 | 14 | import androidx.navigation.fragment.findNavController |
16 | 15 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
17 | -import com.focasoftware.deboinventariov20.Model.ServeInv | |
16 | +import com.focasoftware.deboinventariov20.Model.* | |
18 | 17 | import com.focasoftware.deboinventariov20.R |
19 | -import com.focasoftware.deboinventariov20.UI.Utils.isConnectedToThisServer | |
20 | -import com.focasoftware.deboinventariov20.UI.Utils.ServerNoValido | |
21 | -import com.focasoftware.deboinventariov20.UI.Utils.ServerValido | |
18 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
19 | +import com.focasoftware.deboinventariov20.UI.Utils.* | |
22 | 20 | import kotlinx.android.synthetic.main.fragment_configuracion.* |
23 | 21 | import kotlinx.coroutines.* |
24 | 22 | import kotlinx.coroutines.Dispatchers.Main |
23 | +import retrofit2.Call | |
24 | +import retrofit2.Callback | |
25 | +import retrofit2.Response | |
26 | +import java.net.SocketTimeoutException | |
27 | +import kotlin.math.absoluteValue | |
28 | + | |
25 | 29 | |
26 | 30 | class ConfiguracionFragment : Fragment() { |
27 | 31 | |
... | ... | @@ -32,7 +36,7 @@ class ConfiguracionFragment : Fragment() { |
32 | 36 | |
33 | 37 | override fun onCreate(savedInstanceState: Bundle?) { |
34 | 38 | super.onCreate(savedInstanceState) |
35 | - sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
39 | + sharedPreferences = (activity as MainActivity).getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
36 | 40 | } |
37 | 41 | |
38 | 42 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
... | ... | @@ -61,22 +65,20 @@ class ConfiguracionFragment : Fragment() { |
61 | 65 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
62 | 66 | |
63 | 67 | val v = inflater.inflate(R.layout.fragment_configuracion, container, false) |
64 | - val etRuta = v.findViewById<EditText>(R.id.etRuta) | |
65 | 68 | val btnGuardar = v.findViewById<Button>(R.id.btnGuardar) |
66 | 69 | val rbProInclu = v.findViewById<RadioButton>(R.id.rbProInclu) |
67 | 70 | val rbProNoInclu = v.findViewById<RadioButton>(R.id.rbProNoInclu) |
68 | 71 | val cbHabiLectura = v.findViewById<CheckBox>(R.id.cbHabiLectura) |
69 | 72 | val cbMostrarStock = v.findViewById<CheckBox>(R.id.cbMostrarStock) |
70 | - val rbCodigoBarras = v.findViewById<RadioButton>(R.id.rbCodigoBarras) | |
71 | - val rbCodigoDebo = v.findViewById<RadioButton>(R.id.rbCodigoDebo) | |
72 | - val rbCodigoOrigen = v.findViewById<RadioButton>(R.id.rbCodigoOrigen) | |
73 | +// val rbCodigoBarras = v.findViewById<RadioButton>(R.id.rbCodigoBarras) | |
74 | +// val rbCodigoDebo = v.findViewById<RadioButton>(R.id.rbCodigoDebo) | |
75 | +// val rbCodigoOrigen = v.findViewById<RadioButton>(R.id.rbCodigoOrigen) | |
73 | 76 | val rbDeposito = v.findViewById<RadioButton>(R.id.rbDeposito) |
74 | 77 | val rbVentas = v.findViewById<RadioButton>(R.id.rbVentas) |
75 | - val cbMostrarExistencia = v.findViewById<CheckBox>(R.id.cbMostrarExistencia) | |
76 | - val cbMostrarPrecio = v.findViewById<CheckBox>(R.id.cbMostrarPrecio) | |
77 | 78 | val btnAgregarServidor = v.findViewById<Button>(R.id.btnAgregarServidor) |
78 | 79 | val spServidor = v.findViewById<Spinner>(R.id.spServidor) |
79 | 80 | val btnValidarServidor = v.findViewById<Button>(R.id.btnValidarServidor) |
81 | + val cbAskTimeServerToStart = v.findViewById<CheckBox>(R.id.cbAskTimeServerToStart) | |
80 | 82 | |
81 | 83 | if (sharedPreferences.contains("etRuta")) if (sharedPreferences.contains("rbProInclu")) { |
82 | 84 | if (sharedPreferences.getString("rbProInclu", "").toString() == "0") { |
... | ... | @@ -134,55 +136,94 @@ class ConfiguracionFragment : Fragment() { |
134 | 136 | } |
135 | 137 | } else (sharedPreferences.getString("rbDeposito", "").toString() == "") |
136 | 138 | |
137 | - if (sharedPreferences.contains("rbCodigoDebo")) { | |
138 | - if (sharedPreferences.getString("rbCodigoDebo", "").toString() == "0") { | |
139 | - rbCodigoDebo.isChecked = false | |
140 | - rbCodigoOrigen.isChecked = false | |
141 | - rbCodigoBarras.isChecked = false | |
142 | - } else if (sharedPreferences.getString("rbCodigoDebo", "").toString() == "1") { | |
143 | - rbCodigoDebo.isChecked = true | |
144 | - rbCodigoOrigen.isChecked = false | |
145 | - rbCodigoBarras.isChecked = false | |
139 | +// if (sharedPreferences.contains("rbCodigoDebo")) { | |
140 | +// if (sharedPreferences.getString("rbCodigoDebo", "").toString() == "0") { | |
141 | +// rbCodigoDebo.isChecked = false | |
142 | +// rbCodigoOrigen.isChecked = false | |
143 | +// rbCodigoBarras.isChecked = false | |
144 | +// } else if (sharedPreferences.getString("rbCodigoDebo", "").toString() == "1") { | |
145 | +// rbCodigoDebo.isChecked = true | |
146 | +// rbCodigoOrigen.isChecked = false | |
147 | +// rbCodigoBarras.isChecked = false | |
148 | +// } | |
149 | +// } else (sharedPreferences.getString("rbCodigoDebo", "").toString() == "") | |
150 | +// | |
151 | +// if (sharedPreferences.contains("rbCodigoOrigen")) { | |
152 | +// if (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "0") { | |
153 | +// rbCodigoOrigen.isChecked = false | |
154 | +// } else if (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "1") { | |
155 | +// rbCodigoOrigen.isChecked = true | |
156 | +// } | |
157 | +// } else (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "") | |
158 | + | |
159 | +// if (sharedPreferences.contains("rbCodigoBarras")) { | |
160 | +// if (sharedPreferences.getString("rbCodigoBarras", "").toString() == "0") { | |
161 | +// rbCodigoBarras.isChecked = false | |
162 | +// } else if (sharedPreferences.getString("rbCodigoBarras", "").toString() == "1") { | |
163 | +// rbCodigoBarras.isChecked = true | |
164 | +// } | |
165 | +// } else (sharedPreferences.getString("rbCodigoBarras", "").toString() == "") | |
166 | + | |
167 | + if (sharedPreferences.contains("cbAskTimeServerToStart")) { | |
168 | + if (sharedPreferences.getString("cbAskTimeServerToStart", "").toString() == "0") { | |
169 | + cbAskTimeServerToStart.isChecked = false | |
170 | + } else if (sharedPreferences.getString("cbAskTimeServerToStart", "").toString() == "1") { | |
171 | + cbAskTimeServerToStart.isChecked = true | |
146 | 172 | } |
147 | - } else (sharedPreferences.getString("rbCodigoDebo", "").toString() == "") | |
173 | + } else (sharedPreferences.getString("cbAskTimeServerToStart", "").toString() == "") | |
148 | 174 | |
149 | - if (sharedPreferences.contains("rbCodigoOrigen")) { | |
150 | - if (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "0") { | |
151 | - rbCodigoOrigen.isChecked = false | |
152 | - } else if (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "1") { | |
153 | - rbCodigoOrigen.isChecked = true | |
154 | - } | |
155 | - } else (sharedPreferences.getString("rbCodigoOrigen", "").toString() == "") | |
156 | 175 | |
157 | - if (sharedPreferences.contains("rbCodigoBarras")) { | |
158 | - if (sharedPreferences.getString("rbCodigoBarras", "").toString() == "0") { | |
159 | - rbCodigoBarras.isChecked = false | |
160 | - } else if (sharedPreferences.getString("rbCodigoBarras", "").toString() == "1") { | |
161 | - rbCodigoBarras.isChecked = true | |
162 | - } | |
163 | - } else (sharedPreferences.getString("rbCodigoBarras", "").toString() == "") | |
176 | + btnGuardar.setOnClickListener { | |
177 | + guardarPreferencias() | |
178 | + GlobalScope.launch(Main) { | |
164 | 179 | |
165 | - if (sharedPreferences.contains("cbMostrarExistencia")) { | |
166 | - if (sharedPreferences.getString("cbMostrarExistencia", "").toString() == "0") { | |
167 | - cbMostrarExistencia.isChecked = false | |
168 | - } else if (sharedPreferences.getString("cbMostrarExistencia", "").toString() == "1") { | |
169 | - cbMostrarExistencia.isChecked = true | |
170 | - } | |
171 | - } else (sharedPreferences.getString("cbMostrarExistencia", "").toString() == "") | |
180 | + val serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
181 | + if (serverBajada != null) { | |
182 | + if (serverBajada.direccion.isNullOrEmpty()) { | |
183 | + val modalDialog = NoServerConf() | |
184 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
185 | + } else { | |
186 | + BASE_URL = serverBajada.direccion.toString() + ":" + serverBajada.puertoBajada.toString() + "/" | |
187 | + val call: Call<List<Time?>?>? = WebService.instance | |
188 | + ?.createService(WebServiceApi::class.java) | |
189 | + ?.getTime() | |
190 | + call!!.enqueue(object : Callback<List<Time?>?> { | |
191 | + override fun onResponse(call: Call<List<Time?>?>?, response: Response<List<Time?>?>) { | |
192 | + if (response.code() == 200) { | |
193 | + try { | |
194 | + val timeServer = | |
195 | + response.body()?.get(0)?.dia + "/" + | |
196 | + response.body()?.get(0)?.mes + "/" + | |
197 | + response.body()?.get(0)?.ano + " " + | |
198 | + response.body()?.get(0)?.hora + ":" + | |
199 | + response.body()?.get(0)?.minutos + ":" + | |
200 | + response.body()?.get(0)?.segundos | |
201 | + val horaServer = response.body()?.get(0)?.hora + "" + | |
202 | + response.body()?.get(0)?.minutos + "" + | |
203 | + response.body()?.get(0)?.segundos | |
204 | + val fechaServer = response.body()?.get(0)?.dia + "" + | |
205 | + response.body()?.get(0)?.mes + "" + | |
206 | + response.body()?.get(0)?.ano | |
207 | + if (!askTimeServer(timeServer, horaServer, fechaServer)) { | |
208 | +// Toast.makeText(v.context, "Los Datos se guardaron correctamente", Toast.LENGTH_SHORT).show() | |
209 | +// navController.navigate(R.id.action_configuracionFragment_to_mainFragment2) | |
210 | + } | |
211 | + } catch (e: SocketTimeoutException) { | |
212 | + | |
213 | + } | |
214 | + } else if (response.code() == 400) { | |
215 | + } | |
216 | + } | |
217 | + | |
218 | + override fun onFailure(call: Call<List<Time?>?>?, t: Throwable?) {} | |
219 | + }) | |
220 | + | |
221 | + Toast.makeText(v.context, "Los Datos se guardaron correctamente", Toast.LENGTH_SHORT).show() | |
222 | + navController.navigate(R.id.action_configuracionFragment_to_mainFragment2) | |
172 | 223 | |
173 | - if (sharedPreferences.contains("cbMostrarPrecio")) { | |
174 | - if (sharedPreferences.getString("cbMostrarPrecio", "").toString() == "0") { | |
175 | - cbMostrarPrecio.isChecked = false | |
176 | - } else if (sharedPreferences.getString("cbMostrarPrecio", "").toString() == "1") { | |
177 | - cbMostrarPrecio.isChecked = true | |
224 | + } | |
225 | + } | |
178 | 226 | } |
179 | - } else (sharedPreferences.getString("cbMostrarPrecio", "").toString() == "") | |
180 | - | |
181 | - btnGuardar.setOnClickListener { | |
182 | - guardarPreferencias() | |
183 | - Toast.makeText(v.context, "Los Datos se guardaron correctamente", Toast.LENGTH_LONG) | |
184 | - .show() | |
185 | - navController.navigate(R.id.action_configuracionFragment_to_mainFragment2) | |
186 | 227 | } |
187 | 228 | btnAgregarServidor.setOnClickListener { findNavController().navigate(R.id.servidoresFragment) } |
188 | 229 | |
... | ... | @@ -196,32 +237,40 @@ class ConfiguracionFragment : Fragment() { |
196 | 237 | |
197 | 238 | btnValidarServidor.setOnClickListener { |
198 | 239 | GlobalScope.launch(Main) { |
199 | - | |
200 | 240 | val serverPre = fetchServer() |
201 | 241 | if (serverPre != null) { |
202 | 242 | if (isConnectedToThisServer(serverPre.direccion.toString().substring(7, serverPre.direccion.toString().length))) { |
203 | 243 | val modalDialog = ServerValido() |
204 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
244 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
205 | 245 | } else { |
206 | 246 | val modalDialog = ServerNoValido() |
207 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
247 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
208 | 248 | } |
209 | 249 | } |
210 | 250 | } |
211 | 251 | } |
212 | 252 | |
253 | + rbVentas.setOnClickListener { | |
254 | + val modalDialog = SelAreaInventarioVentas() | |
255 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
256 | + } | |
257 | + | |
258 | + rbDeposito.setOnClickListener { | |
259 | + val modalDialog = SelAreaInventarioDeposito() | |
260 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
261 | + } | |
213 | 262 | return v |
214 | 263 | } |
215 | 264 | |
216 | 265 | private suspend fun fetchServer(): ServeInv? { |
217 | 266 | return GlobalScope.async(Dispatchers.IO) { |
218 | - return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServer(itemSelect) | |
267 | + return@async AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServer(itemSelect) | |
219 | 268 | }.await() |
220 | 269 | } |
221 | 270 | |
222 | - suspend fun getDescServers(): List<ServeInv> { | |
271 | + private suspend fun getDescServers(): List<ServeInv> { | |
223 | 272 | return GlobalScope.async(Dispatchers.IO) { |
224 | - return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchAllServers() | |
273 | + return@async AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchAllServers() | |
225 | 274 | }.await() |
226 | 275 | } |
227 | 276 | |
... | ... | @@ -235,13 +284,9 @@ class ConfiguracionFragment : Fragment() { |
235 | 284 | if (rbProNoInclu.isChecked) editor?.putString("rbProNoInclu", "1") else editor?.putString("rbProNoInclu", "0") |
236 | 285 | if (cbHabiLectura.isChecked) editor?.putString("cbHabiLectura", "1") else editor?.putString("cbHabiLectura", "0") |
237 | 286 | if (cbMostrarStock.isChecked) editor?.putString("cbMostrarStock", "1") else editor?.putString("cbMostrarStock", "0") |
238 | - if (rbVentas.isChecked) editor?.putString("rbVentas","1") else editor?.putString("rbVentas", "0") | |
239 | - if (rbDeposito.isChecked) editor?.putString("rbDeposito","1") else editor?.putString("rbDeposito", "0") | |
240 | -// if (rbCodigoDebo.isChecked) editor?.putString("rbCodigoDebo", "1") else editor?.putString("rbCodigoDebo", "0") | |
241 | -// if (rbCodigoOrigen.isChecked) editor?.putString("rbCodigoOrigen", "1") else editor?.putString("rbCodigoOrigen", "0") | |
242 | -// if (rbCodigoBarras.isChecked) editor?.putString("rbCodigoBarras", "1") else editor?.putString("rbCodigoBarras", "0") | |
243 | -// if (cbMostrarExistencia.isChecked) editor?.putString("cbMostrarExistencia", "1") else editor?.putString("cbMostrarExistencia", "0") | |
244 | -// if (cbMostrarPrecio.isChecked) editor?.putString("cbMostrarPrecio", "1") else editor?.putString("cbMostrarPrecio", "0") | |
287 | + if (rbVentas.isChecked) editor?.putString("rbVentas", "1") else editor?.putString("rbVentas", "0") | |
288 | + if (rbDeposito.isChecked) editor?.putString("rbDeposito", "1") else editor?.putString("rbDeposito", "0") | |
289 | + if (cbAskTimeServerToStart.isChecked) editor?.putString("cbAskTimeServerToStart", "1") else editor?.putString("cbAskTimeServerToStart", "0") | |
245 | 290 | editor?.putString("ServerPredeterminado", indexSelect.toString()) |
246 | 291 | updateServerPreInZero() |
247 | 292 | updateServerPre(itemSelect) |
... | ... | @@ -255,13 +300,29 @@ class ConfiguracionFragment : Fragment() { |
255 | 300 | } |
256 | 301 | } |
257 | 302 | |
303 | + private fun askTimeServer(timeServer: String, horaServer: String, fechaServer: String): Boolean { | |
304 | + | |
305 | + var existeDiferencias = false | |
306 | + val horaAct = obtenerHoraActual().toDouble() | |
307 | + val fechaAct = obtenerDiaActual().toDouble() | |
308 | + val difFecha = fechaAct - fechaServer.toDouble() | |
309 | + val difHora = horaAct - horaServer.toDouble() | |
310 | + if (difFecha.absoluteValue > 0) existeDiferencias = true | |
311 | + if (difHora.absoluteValue > 130) existeDiferencias = true | |
312 | + | |
313 | + if (existeDiferencias) { | |
314 | + dialogoHoraServer((activity as MainActivity), requireContext(), obtenerFechaActual(), timeServer) | |
315 | + } | |
316 | + return existeDiferencias | |
317 | + } | |
318 | + | |
258 | 319 | private fun updateServerPreInZero() { |
259 | 320 | lifecycleScope.launch { |
260 | 321 | withContext(Dispatchers.IO) { |
261 | - val activity: FragmentActivity? = activity | |
262 | - if (activity != null && isAdded) { | |
263 | - AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.UpdateServerPreInZero() | |
264 | - } | |
322 | +// val activity: FragmentActivity? = activity | |
323 | +// if (activity != null && isAdded) { | |
324 | + AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.UpdateServerPreInZero() | |
325 | +// } | |
265 | 326 | } |
266 | 327 | } |
267 | 328 | } |
... | ... | @@ -269,17 +330,14 @@ class ConfiguracionFragment : Fragment() { |
269 | 330 | private fun updateServerPre(server: Int) { |
270 | 331 | lifecycleScope.launch { |
271 | 332 | withContext(Dispatchers.IO) { |
272 | - val activity: FragmentActivity? = activity | |
273 | - if (activity != null) { | |
274 | - AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.UpdateServerPre(server) | |
275 | - } | |
333 | +// val activity: FragmentActivity? = activity | |
334 | +// if (activity != null) { | |
335 | + AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.UpdateServerPre(server) | |
336 | +// } | |
276 | 337 | } |
277 | 338 | } |
278 | 339 | } |
340 | +} | |
341 | + | |
342 | + | |
279 | 343 | |
280 | - private suspend fun fetchServerPreOne(): ServeInv? { | |
281 | - return GlobalScope.async(Dispatchers.IO) { | |
282 | - return@async AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.fetchServerPreOne() | |
283 | - }.await() | |
284 | - } | |
285 | -} | |
286 | 344 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/descripCorigenFragment/CodigoOriFragment.kt
... | ... | @@ -49,6 +49,7 @@ class CodigoOriFragment : Fragment() { |
49 | 49 | lateinit var sharedPreferences: SharedPreferences |
50 | 50 | private var artCargadoEnBD: InvBody? = null |
51 | 51 | lateinit var mDialogViewM: View |
52 | + var resultadoTemp:Float=0F | |
52 | 53 | |
53 | 54 | override fun onCreate(savedInstanceState: Bundle?) { |
54 | 55 | super.onCreate(savedInstanceState) |
... | ... | @@ -153,7 +154,8 @@ class CodigoOriFragment : Fragment() { |
153 | 154 | val mBuilder = AlertDialog.Builder(context).setView(mDialogViewM).setCancelable(false) |
154 | 155 | if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7")) mDialogViewM.tvNuevaCantidad.inputType= InputType.TYPE_CLASS_NUMBER |
155 | 156 | mDialogViewM.tvTitulo2.text="${artCargadoEnBD!!.descripcion}" |
156 | - mDialogViewM.tvCantInicial.text =String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
157 | + mDialogViewM.tvCantInicial.text = (Math.round(artCargadoEnBD!!.cantTomada.toString().toFloat() * 100.0) / 100.0).toString() | |
158 | + | |
157 | 159 | |
158 | 160 | val mAlertDialog = mBuilder.show() |
159 | 161 | mDialogViewM.tvNuevaCantidad.requestFocus() |
... | ... | @@ -164,15 +166,15 @@ class CodigoOriFragment : Fragment() { |
164 | 166 | |
165 | 167 | mDialogViewM.rbSumar.setOnClickListener { |
166 | 168 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
167 | - mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
168 | -// mDialogView.tvNuevaCantidad.isEnabled=false | |
169 | + resultadoTemp=mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
170 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
169 | 171 | } |
170 | 172 | } |
171 | 173 | mDialogViewM.rbRestar.setOnClickListener { |
172 | 174 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
173 | 175 | if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { |
174 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
175 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
176 | + resultadoTemp= mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
177 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
176 | 178 | }else{ |
177 | 179 | mDialogViewM.tvResultado.text="" |
178 | 180 | mDialogViewM.tvResultado.error = "Operación No Valida" |
... | ... | @@ -183,8 +185,7 @@ class CodigoOriFragment : Fragment() { |
183 | 185 | } |
184 | 186 | mDialogViewM.rbMdodificar.setOnClickListener { |
185 | 187 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
186 | - mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
187 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
188 | + mDialogViewM.tvResultado.text = (Math.round(mDialogViewM.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
188 | 189 | } |
189 | 190 | } |
190 | 191 | mDialogViewM.btnAceptar.setOnClickListener { |
... | ... | @@ -267,33 +268,38 @@ class CodigoOriFragment : Fragment() { |
267 | 268 | } |
268 | 269 | private val textWatcher = object : TextWatcher { |
269 | 270 | override fun afterTextChanged(s: Editable?) { |
271 | + if (mDialogViewM.tvNuevaCantidad.text.toString() == "") { mDialogViewM.tvResultado.text = ""} | |
270 | 272 | } |
271 | 273 | |
272 | 274 | override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { |
273 | 275 | } |
274 | 276 | |
275 | 277 | override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { |
276 | - if (mDialogViewM.rbSumar.isChecked) { | |
277 | -// mDialogView.tvNuevaCantidad.isEnabled=false | |
278 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat()) | |
279 | - } | |
280 | - if (mDialogViewM.rbRestar.isChecked) { | |
281 | - if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
282 | - if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
283 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
278 | + if (mDialogViewM.tvNuevaCantidad.text.toString() != "") { | |
279 | + | |
280 | + if (mDialogViewM.rbSumar.isChecked) { | |
281 | + resultadoTemp = mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat() | |
282 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
283 | + } | |
284 | + if (mDialogViewM.rbRestar.isChecked) { | |
285 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
286 | + if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { | |
287 | + resultadoTemp = mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
288 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
284 | 289 | // mDialogView.tvNuevaCantidad.isEnabled = false |
285 | - } else { | |
286 | - mDialogViewM.tvResultado.text = "" | |
287 | - mDialogViewM.tvResultado.error = "Operación No Valida" | |
288 | - mDialogViewM.tvResultado.requestFocus() | |
289 | - mDialogViewM.tvResultado.hint = "Error" | |
290 | + } else { | |
291 | + mDialogViewM.tvResultado.text = "" | |
292 | + mDialogViewM.tvResultado.error = "Operación No Valida" | |
293 | + mDialogViewM.tvResultado.requestFocus() | |
294 | + mDialogViewM.tvResultado.hint = "Error" | |
295 | + } | |
290 | 296 | } |
291 | 297 | } |
292 | - } | |
293 | - if (mDialogViewM.rbMdodificar.isChecked) { | |
294 | - if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
295 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
298 | + if (mDialogViewM.rbMdodificar.isChecked) { | |
299 | + if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { | |
300 | + mDialogViewM.tvResultado.text = (Math.round(mDialogViewM.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
296 | 301 | // mDialogView.tvNuevaCantidad.isEnabled = false |
302 | + } | |
297 | 303 | } |
298 | 304 | } |
299 | 305 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/descripcionFragment/DescripcionFragment.kt
... | ... | @@ -27,6 +27,7 @@ import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
27 | 27 | import com.focasoftware.deboinventariov20.Model.Articles |
28 | 28 | import com.focasoftware.deboinventariov20.Model.InvBody |
29 | 29 | import com.focasoftware.deboinventariov20.R |
30 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
30 | 31 | import com.focasoftware.deboinventariov20.UI.Utils.obtenerFechaActual |
31 | 32 | import com.focasoftware.deboinventariov20.UI.Utils.modificarCantidadEnCabecera |
32 | 33 | import kotlinx.android.synthetic.main.ingresar_cantidad.view.* |
... | ... | @@ -34,7 +35,6 @@ import kotlinx.android.synthetic.main.login_dialog.view.* |
34 | 35 | import kotlinx.android.synthetic.main.login_dialog.view.btnAceptar |
35 | 36 | import kotlinx.coroutines.* |
36 | 37 | |
37 | - | |
38 | 38 | class DescripcionFragment : Fragment() { |
39 | 39 | private var artAcargar2: List<Articles>? = null |
40 | 40 | private var listArticulos2: List<Articles>? = null |
... | ... | @@ -48,10 +48,11 @@ class DescripcionFragment : Fragment() { |
48 | 48 | lateinit var sharedPreferences: SharedPreferences |
49 | 49 | private var artCargadoEnBD: InvBody? = null |
50 | 50 | lateinit var mDialogViewM: View |
51 | + var resultadoTemp:Float=0F | |
51 | 52 | |
52 | 53 | override fun onCreate(savedInstanceState: Bundle?) { |
53 | 54 | super.onCreate(savedInstanceState) |
54 | - sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
55 | + sharedPreferences = (activity as MainActivity).getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
55 | 56 | arguments.apply { |
56 | 57 | artAcargar2 = requireArguments().getSerializable("ArrayDesc") as List<Articles> |
57 | 58 | numeroInventario = requireArguments().getInt("numeroInv") |
... | ... | @@ -76,7 +77,7 @@ class DescripcionFragment : Fragment() { |
76 | 77 | |
77 | 78 | private fun showSoftKeyboard(view: View) { |
78 | 79 | if (view.requestFocus()) { |
79 | - val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager | |
80 | + val imm = (activity as MainActivity).getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager | |
80 | 81 | imm.showSoftInput(view, InputMethodManager.HIDE_IMPLICIT_ONLY) |
81 | 82 | } |
82 | 83 | } |
... | ... | @@ -123,8 +124,9 @@ class DescripcionFragment : Fragment() { |
123 | 124 | mDialogView.etCantidad.requestFocus() |
124 | 125 | mDialogView.etCantidad.hint = "Ingrese un valor" |
125 | 126 | } else if (!mDialogView.etCantidad.text.isNullOrEmpty()) { |
127 | + val tr: Double = Math.round(mDialogView.etCantidad.text.toString().toFloat() * 100.0) / 100.0 | |
128 | + cantidad = tr.toFloat() | |
126 | 129 | |
127 | - cantidad = String.format("%.2f",mDialogView.etCantidad.text.toString().toFloat()).toFloat() | |
128 | 130 | val body = InvBody( |
129 | 131 | numeroInventario, |
130 | 132 | (viewAdapter2 as DescripcionListAdapter).items2?.get(viewHolder.layoutPosition)!!.sector, |
... | ... | @@ -141,8 +143,8 @@ class DescripcionFragment : Fragment() { |
141 | 143 | obtenerFechaActual(), |
142 | 144 | obtenerFechaActual() |
143 | 145 | ) |
144 | - InsertarArtEnDB(body)// TODO: MANDO A CARGAR A LA BASE DE DATOS | |
145 | - modificarCantidadEnCabecera(numeroInventario, true, requireActivity()) | |
146 | + insertarArtEnDB(body)// TODO: MANDO A CARGAR A LA BASE DE DATOS | |
147 | + modificarCantidadEnCabecera(numeroInventario, true, (activity as MainActivity)) | |
146 | 148 | // VolverAinventario() |
147 | 149 | activity?.onBackPressed() |
148 | 150 | mAlertDialog.dismiss() |
... | ... | @@ -155,7 +157,8 @@ class DescripcionFragment : Fragment() { |
155 | 157 | if (artCargadoEnBD!!.balanza.toString().contains("1") || artCargadoEnBD!!.balanza.toString().contains("3") || artCargadoEnBD!!.balanza.toString().contains("7") |
156 | 158 | ) mDialogViewM.tvNuevaCantidad.inputType = InputType.TYPE_CLASS_NUMBER |
157 | 159 | mDialogViewM.tvTitulo2.text="${artCargadoEnBD!!.descripcion}" |
158 | - mDialogViewM.tvCantInicial.text = String.format("%.2f", artCargadoEnBD!!.cantTomada.toString().toFloat()) | |
160 | + val tr: Double = Math.round(artCargadoEnBD!!.cantTomada.toString().toFloat() * 100.0) / 100.0 | |
161 | + mDialogViewM.tvCantInicial.text = tr.toString() | |
159 | 162 | |
160 | 163 | val mAlertDialog = mBuilder.show() |
161 | 164 | mDialogViewM.tvNuevaCantidad.requestFocus() |
... | ... | @@ -168,15 +171,18 @@ class DescripcionFragment : Fragment() { |
168 | 171 | |
169 | 172 | mDialogViewM.rbSumar.setOnClickListener { |
170 | 173 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
171 | - mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
172 | -// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
174 | + resultadoTemp=mDialogViewM.tvCantInicial.text.toString().toFloat() + mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
175 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
176 | + | |
173 | 177 | } |
174 | 178 | } |
175 | 179 | mDialogViewM.rbRestar.setOnClickListener { |
176 | 180 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
177 | 181 | if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { |
178 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
179 | -// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
182 | + resultadoTemp=mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
183 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp* 100.0) / 100.0).toString() | |
184 | + | |
185 | + | |
180 | 186 | } else { |
181 | 187 | mDialogViewM.tvResultado.text = "" |
182 | 188 | mDialogViewM.tvResultado.error = "Operación No Valida" |
... | ... | @@ -187,8 +193,8 @@ class DescripcionFragment : Fragment() { |
187 | 193 | } |
188 | 194 | mDialogViewM.rbMdodificar.setOnClickListener { |
189 | 195 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
190 | - mDialogViewM.tvResultado.text = String.format("%.2f", (mDialogViewM.tvNuevaCantidad.text.toString().toFloat())) | |
191 | -// mDialogViewM.tvNuevaCantidad.isEnabled = false | |
196 | + mDialogViewM.tvResultado.text = (Math.round(mDialogViewM.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
197 | + | |
192 | 198 | } |
193 | 199 | } |
194 | 200 | mDialogViewM.btnAceptar.setOnClickListener { |
... | ... | @@ -242,10 +248,10 @@ class DescripcionFragment : Fragment() { |
242 | 248 | itemTouchHelper2.attachToRecyclerView(rcDescripcion) |
243 | 249 | } |
244 | 250 | |
245 | - fun InsertarArtEnDB(cuarpoInventario: InvBody) { | |
251 | + fun insertarArtEnDB(cuarpoInventario: InvBody) { | |
246 | 252 | lifecycleScope.launch { |
247 | 253 | withContext(Dispatchers.IO) { |
248 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) | |
254 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) | |
249 | 255 | } |
250 | 256 | } |
251 | 257 | } |
... | ... | @@ -264,7 +270,7 @@ class DescripcionFragment : Fragment() { |
264 | 270 | withContext(Dispatchers.IO) { |
265 | 271 | val activity: FragmentActivity? = activity |
266 | 272 | if (activity != null && isAdded) { |
267 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.updateInvBody(cantidad, sector.toLong(), codigo.toLong(),obtenerFechaActual()) | |
273 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.updateInvBody(cantidad, sector.toLong(), codigo.toLong(),obtenerFechaActual()) | |
268 | 274 | } |
269 | 275 | } |
270 | 276 | } |
... | ... | @@ -272,21 +278,24 @@ class DescripcionFragment : Fragment() { |
272 | 278 | |
273 | 279 | private val textWatcher = object : TextWatcher { |
274 | 280 | override fun afterTextChanged(s: Editable?) { |
281 | + if (mDialogViewM.tvNuevaCantidad.text.toString() == "") { mDialogViewM.tvResultado.text = ""} | |
275 | 282 | } |
276 | 283 | |
277 | 284 | override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { |
278 | 285 | } |
279 | 286 | |
280 | 287 | override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { |
288 | + | |
289 | + if (mDialogViewM.tvNuevaCantidad.text.toString() != "") { | |
281 | 290 | if (mDialogViewM.rbSumar.isChecked) { |
282 | -// mDialogView.tvNuevaCantidad.isEnabled=false | |
283 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat()) | |
291 | + resultadoTemp=mDialogViewM.tvNuevaCantidad.text.toString().toFloat() + mDialogViewM.tvCantInicial.text.toString().toFloat() | |
292 | + mDialogViewM.tvResultado.text = (Math.round(resultadoTemp * 100.0) / 100.0).toString() | |
284 | 293 | } |
285 | 294 | if (mDialogViewM.rbRestar.isChecked) { |
286 | 295 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
287 | 296 | if (mDialogViewM.tvCantInicial.text.toString().toFloat() >= mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) { |
288 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
289 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
297 | + resultadoTemp=mDialogViewM.tvCantInicial.text.toString().toFloat() - mDialogViewM.tvNuevaCantidad.text.toString().toFloat() | |
298 | + mDialogViewM.tvResultado.text = (Math.round( resultadoTemp * 100.0) / 100.0).toString() | |
290 | 299 | } else { |
291 | 300 | mDialogViewM.tvResultado.text = "" |
292 | 301 | mDialogViewM.tvResultado.error = "Operación No Valida" |
... | ... | @@ -297,8 +306,8 @@ class DescripcionFragment : Fragment() { |
297 | 306 | } |
298 | 307 | if (mDialogViewM.rbMdodificar.isChecked) { |
299 | 308 | if (!mDialogViewM.tvNuevaCantidad.text.isNullOrEmpty()) { |
300 | - mDialogViewM.tvResultado.text = String.format("%.2f", mDialogViewM.tvNuevaCantidad.text.toString().toFloat()) | |
301 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
309 | + mDialogViewM.tvResultado.text = (Math.round(mDialogViewM.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
310 | + } | |
302 | 311 | } |
303 | 312 | } |
304 | 313 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtFragment.kt
... | ... | @@ -13,6 +13,7 @@ import com.focasoftware.deboinventariov20.Model.Articles |
13 | 13 | import com.focasoftware.deboinventariov20.R |
14 | 14 | import kotlinx.android.synthetic.main.fragment_detalle_art.* |
15 | 15 | import kotlinx.coroutines.Dispatchers |
16 | +import kotlinx.coroutines.Dispatchers.Main | |
16 | 17 | import kotlinx.coroutines.GlobalScope |
17 | 18 | import kotlinx.coroutines.async |
18 | 19 | import kotlinx.coroutines.launch |
... | ... | @@ -37,7 +38,7 @@ class DetalleArtFragment : Fragment() { |
37 | 38 | imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) |
38 | 39 | |
39 | 40 | marcarInventario() |
40 | - GlobalScope.launch(Dispatchers.Main) { | |
41 | + GlobalScope.launch(Main) { | |
41 | 42 | artSerch = buscarCodigoDeboEnBD(sector, codigo) |
42 | 43 | if (artSerch == null) { |
43 | 44 | |
... | ... | @@ -83,8 +84,10 @@ class DetalleArtFragment : Fragment() { |
83 | 84 | else -> { tvBal.text="Otros" |
84 | 85 | } |
85 | 86 | } |
86 | - tvCosto.text=String.format("%.2f", artSerch!!.costo.toString().toFloat()) | |
87 | - tvPrecio.text=String.format("%.2f", artSerch!!.precio.toString().toFloat()) | |
87 | + if(!artSerch!!.costo.toString().isNullOrEmpty()){} | |
88 | + tvCosto.text= | |
89 | + (Math.round(artSerch!!.costo.toString().toFloat() * 100.0) / 100.0).toString() | |
90 | + tvPrecio.text= (Math.round( artSerch!!.precio.toString().toFloat() * 100.0) / 100.0).toString() | |
88 | 91 | } |
89 | 92 | } |
90 | 93 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/detalleProducto/DetalleArtSecFragment.kt
... | ... | @@ -0,0 +1,92 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.detalleProducto | |
2 | + | |
3 | +import android.content.Context | |
4 | +import android.content.SharedPreferences | |
5 | +import android.os.Bundle | |
6 | +import androidx.fragment.app.Fragment | |
7 | +import android.view.LayoutInflater | |
8 | +import android.view.View | |
9 | +import android.view.ViewGroup | |
10 | +import android.view.inputmethod.InputMethodManager | |
11 | +import com.focasoftware.deboinventariov20.DB.DataBase.AppDb | |
12 | +import com.focasoftware.deboinventariov20.Model.Articles | |
13 | +import com.focasoftware.deboinventariov20.Model.InvBodySec | |
14 | +import com.focasoftware.deboinventariov20.R | |
15 | +import kotlinx.android.synthetic.main.fragment_detalle_art.* | |
16 | +import kotlinx.android.synthetic.main.fragment_inv_sec.* | |
17 | +import kotlinx.coroutines.Dispatchers | |
18 | +import kotlinx.coroutines.GlobalScope | |
19 | +import kotlinx.coroutines.async | |
20 | +import kotlinx.coroutines.launch | |
21 | + | |
22 | +private lateinit var sharedPreferences: SharedPreferences | |
23 | +private var Inventario: String? = null | |
24 | +private var sector: String? = null | |
25 | +private var codigo: String? = null | |
26 | +private var busqueda: String? = null | |
27 | +private var artSerch: InvBodySec? = null | |
28 | + | |
29 | +class DetalleArtSecFragment : Fragment() { | |
30 | + | |
31 | + override fun onCreate(savedInstanceState: Bundle?) { | |
32 | + super.onCreate(savedInstanceState) | |
33 | + sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
34 | + | |
35 | + arguments?.let { | |
36 | + sector = it.getString("sector") | |
37 | + codigo = it.getString("codigo") | |
38 | + busqueda= it.getString("Busqueda") | |
39 | + Inventario= it.getString("numeroInv").toString() | |
40 | + } | |
41 | + val imm = requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager? | |
42 | + imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
43 | + | |
44 | + GlobalScope.launch(Dispatchers.Main) { | |
45 | + artSerch = Inventario?.let { buscarCodigoDeboEnBD(it,sector, codigo) } | |
46 | + if (artSerch != null) { | |
47 | + tvSector.text=sector | |
48 | + tvCodigo.text=codigo | |
49 | + tvDeposito.text=if(!artSerch!!.depSn!!)"No" else "Si" | |
50 | + tvDescripcion.text=artSerch!!.descripcion.toString() | |
51 | + tvCodigoBarras.text=if (artSerch!!.CODBAR.toString()=="null")"" else artSerch!!.CODBAR.toString() | |
52 | +// tvCodigoOrigen.text=if (artSerch!!.codOrigen.toString()=="null")"" else artSerch!!.codOrigen.toString() | |
53 | + tvExiVenta.text=artSerch!!.EXIVTA.toString() | |
54 | + tvExiDeposito.text=artSerch!!.EXIDEP.toString() | |
55 | + | |
56 | + when ( artSerch!!.uniVenta.toString().toInt()) { | |
57 | + 1 ->tvBal.text="Unidades" | |
58 | + 2 ->tvBal.text="Litros" | |
59 | + 3 ->tvBal.text="Cajas" | |
60 | + 4 ->tvBal.text="M3" | |
61 | + 5 ->tvBal.text="Metros" | |
62 | + 6 ->tvBal.text="Fracción" | |
63 | + 7 ->tvBal.text="Bultos" | |
64 | + 8 ->tvBal.text="Gramos" | |
65 | + 9 ->tvBal.text="Cent. cúbicos" | |
66 | + 10 ->tvBal.text="Kgs" | |
67 | + else -> { tvBal.text="Otros" | |
68 | + } | |
69 | + } | |
70 | + tvCosto.text= (Math.round(artSerch!!.costo.toString().toFloat() * 100.0) / 100.0).toString() | |
71 | + tvPrecio.text=(Math.round(artSerch!!.precio.toString().toFloat() * 100.0) / 100.0).toString() | |
72 | + } | |
73 | + } | |
74 | + val editor = sharedPreferences.edit() | |
75 | + editor?.putString("BusquedaVuelta", busqueda) | |
76 | + editor?.apply() | |
77 | + editor.commit() | |
78 | + } | |
79 | + suspend fun buscarCodigoDeboEnBD(inventario: String, sector: String?, codigo: String?): InvBodySec? { | |
80 | + //TODO BUSQUEDA POR CODIGO DE BARRAS | |
81 | + var busqueda: InvBodySec? | |
82 | + return GlobalScope.async(Dispatchers.IO) { | |
83 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodySecDAO()!!.fetchArticuloByCodSec(inventario,sector!!, codigo!!) | |
84 | + return@async busqueda | |
85 | + }.await() | |
86 | + } | |
87 | + override fun onCreateView( | |
88 | + inflater: LayoutInflater, container: ViewGroup?, | |
89 | + savedInstanceState: Bundle? | |
90 | + ): View? {return inflater.inflate(R.layout.fragment_detalle_art_sec, container, false) } | |
91 | + | |
92 | +} | |
0 | 93 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InvSecFragment.kt
... | ... | @@ -0,0 +1,564 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.inventario | |
2 | + | |
3 | +import android.app.AlertDialog | |
4 | +import android.content.Context | |
5 | +import android.content.DialogInterface | |
6 | +import android.content.SharedPreferences | |
7 | +import android.os.Bundle | |
8 | +import android.text.Editable | |
9 | +import android.text.InputType | |
10 | +import android.text.TextWatcher | |
11 | +import android.view.* | |
12 | +import android.widget.EditText | |
13 | +import android.widget.TextView | |
14 | +import android.widget.Toast | |
15 | +import androidx.fragment.app.Fragment | |
16 | +import androidx.navigation.NavController | |
17 | +import androidx.navigation.Navigation | |
18 | +import androidx.recyclerview.widget.LinearLayoutManager | |
19 | +import androidx.recyclerview.widget.RecyclerView | |
20 | +import com.focasoftware.deboinventariov20.DB.DataBase.AppDb | |
21 | +import com.focasoftware.deboinventariov20.Model.* | |
22 | +import com.focasoftware.deboinventariov20.R | |
23 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
24 | +import com.focasoftware.deboinventariov20.UI.Utils.* | |
25 | +import kotlinx.android.synthetic.main.fragment_inv_sec.* | |
26 | +import kotlinx.android.synthetic.main.login_dialog.view.* | |
27 | +import kotlinx.coroutines.* | |
28 | +import kotlinx.coroutines.Dispatchers.IO | |
29 | +import kotlinx.coroutines.Dispatchers.Main | |
30 | +import retrofit2.Call | |
31 | +import retrofit2.Callback | |
32 | +import retrofit2.Response | |
33 | +import java.util.* | |
34 | +import kotlin.collections.ArrayList | |
35 | + | |
36 | +private var listArtSec = ArrayList<ItemsSecRecycler>() | |
37 | +private lateinit var viewAdapter: RecyclerView.Adapter<*> | |
38 | +private lateinit var viewManager: RecyclerView.LayoutManager | |
39 | +lateinit var mDialogView: View | |
40 | +private lateinit var invSecActual: String | |
41 | +private lateinit var navController: NavController | |
42 | +private var serverBajada: ServeInv? = null | |
43 | +private var filtrado = false | |
44 | +private var countryFilterList = ArrayList<ItemsSecRecycler>() | |
45 | + | |
46 | + | |
47 | +class InvSecFragment : Fragment(), ProdSecListAdapter.OnImageDotsClickListener { | |
48 | + private lateinit var rcInventariosSec: RecyclerView | |
49 | + private lateinit var sharedPreferences: SharedPreferences | |
50 | + private val job: Job = Job() | |
51 | + private val fragmentScope = CoroutineScope(IO + job) | |
52 | + | |
53 | + | |
54 | + override fun onCreate(savedInstanceState: Bundle?) { | |
55 | + super.onCreate(savedInstanceState) | |
56 | + sharedPreferences = (activity as MainActivity).getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
57 | + if (sharedPreferences.contains("InventarioSec")) if (sharedPreferences.getString("InventarioSec", "").toString() != "-1") { | |
58 | + } | |
59 | + } | |
60 | + | |
61 | + override fun onCreateView( | |
62 | + inflater: LayoutInflater, container: ViewGroup?, | |
63 | + savedInstanceState: Bundle? | |
64 | + ): View? { | |
65 | + | |
66 | + val v = inflater.inflate(R.layout.fragment_inv_sec, container, false) | |
67 | + val tvTituloSec = v.findViewById<TextView>(R.id.tvTitulo) | |
68 | + val etDescripcion = v.findViewById<EditText>(R.id.etDescripcion) | |
69 | + rcInventariosSec = v.findViewById<RecyclerView>(R.id.rcInventarios) | |
70 | + | |
71 | + invSecActual = sharedPreferences.getString("InventarioSecNum", "").toString() | |
72 | + tvTituloSec.text = "# ${sharedPreferences.getString("InventarioSecNum", "").toString()} ${sharedPreferences.getString("InventarioSecNom", "").toString()}" | |
73 | + if (sharedPreferences.contains("BusquedaVuelta")) if (sharedPreferences.getString("BusquedaVuelta", "").toString() == "") { | |
74 | + | |
75 | + cargarDeBdInventario(sharedPreferences.getString("InventarioSecNum", "").toString().toInt()) | |
76 | + } | |
77 | + | |
78 | + if (sharedPreferences.getString("BusquedaVuelta", "").toString() != "") { | |
79 | + etDescripcion.setText("") | |
80 | + etDescripcion.setText(sharedPreferences.getString("BusquedaVuelta", "").toString()) | |
81 | + etDescripcion.setImeActionLabel(sharedPreferences.getString("BusquedaVuelta", "").toString(), KeyEvent.KEYCODE_ENTER) | |
82 | + } | |
83 | + val editor = sharedPreferences.edit() | |
84 | + editor?.putString("BusquedaVuelta", "") | |
85 | + editor?.apply() | |
86 | + editor.commit() | |
87 | + updateFETinvSecHead(sharedPreferences.getString("InventarioSecNum", "").toString(), obtenerFechaActualFormatoFoca()) | |
88 | + updateFECTOMyFECTOMFINinvSecBody(sharedPreferences.getString("InventarioSecNum", "").toString(), obtenerFechaActualFormatoFoca()) | |
89 | + | |
90 | + return v | |
91 | + } | |
92 | + | |
93 | + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | |
94 | + super.onViewCreated(view, savedInstanceState) | |
95 | + navController = Navigation.findNavController(view) | |
96 | + | |
97 | + btnBorrarInv.setOnClickListener { | |
98 | + AlertDialog.Builder(requireContext()).setTitle("Eliminación de Inventarios").setMessage("¿Confirma que desea eliminar el inventario?") | |
99 | + .setPositiveButton(R.string.btnOk, DialogInterface.OnClickListener { dialog, which -> | |
100 | + borrarInvActualCabecera() | |
101 | + borrarInvActualCuerpo() | |
102 | + Toast.makeText(requireContext(), "El inventario $invSecActual fue Borrado", Toast.LENGTH_LONG).show() | |
103 | + navController.navigate(R.id.action_invSecFragment_to_mainFragment2) | |
104 | + | |
105 | + }).setNegativeButton(R.string.btnCancelar, DialogInterface.OnClickListener { dialog, which -> }).show() | |
106 | + } | |
107 | + | |
108 | + etDescripcion.addTextChangedListener(textWatcher2) | |
109 | + | |
110 | + btnExportarInv.setOnClickListener { | |
111 | + AlertDialog.Builder(requireContext()).setTitle(R.string.sTituloExportar).setMessage(R.string.sMensajeExportar) | |
112 | + .setPositiveButton(R.string.btnOk, DialogInterface.OnClickListener { dialog, which -> | |
113 | + preparaInvParaExportar(invSecActual) | |
114 | + val modalDialog = ExportacionExitosa() | |
115 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
116 | + Thread.sleep(500) | |
117 | + navController.navigate(R.id.action_invSecFragment_to_mainFragment2) | |
118 | + | |
119 | + }).setNegativeButton(R.string.btnCancelar, DialogInterface.OnClickListener { dialog, which -> }).show() | |
120 | + } | |
121 | + } | |
122 | + | |
123 | + private fun preparaInvParaExportar(inventario: String) { | |
124 | + | |
125 | + fragmentScope.launch(Main) { | |
126 | + val aEnviarHead: InvSecHeadToSend | |
127 | + var aEnviarBody: InvSecBodyToSend | |
128 | + val datosCabecera = foundInvHeadDB(inventario) | |
129 | + val datosCuerpo = foundInvBodyBD(inventario) | |
130 | + | |
131 | + aEnviarHead = InvSecHeadToSend(datosCabecera.invNum.toString(), "D", obtenerFechaActualFormatoFoca()) | |
132 | + updateFECinvSecHead(datosCabecera.invNum.toString(), obtenerFechaActualFormatoFoca()) | |
133 | + exportarInventarioSecHead(aEnviarHead) | |
134 | + | |
135 | + for (cuerpo in datosCuerpo) { | |
136 | + aEnviarBody = InvSecBodyToSend( | |
137 | + cuerpo.invNum.toString(), | |
138 | + cuerpo.sector.toString(), | |
139 | + cuerpo.codigo.toString(), | |
140 | + if (cuerpo.contado.toString() == "" || cuerpo.contado.toString().isEmpty()) "-1" else cuerpo.contado.toString(), | |
141 | + cuerpo.fechaTomado.toString(), | |
142 | + cuerpo.fechaFinal.toString() | |
143 | + ) | |
144 | + | |
145 | + exportarInventarioSecBody(aEnviarBody) | |
146 | + } | |
147 | + borrarInvActualCabecera() | |
148 | + borrarInvActualCuerpo() | |
149 | + | |
150 | + } | |
151 | + } | |
152 | + | |
153 | + private fun exportarInventarioSecBody(EnviarBody: InvSecBodyToSend) { | |
154 | + fragmentScope.launch(Main) { | |
155 | + serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
156 | + | |
157 | + if (serverBajada != null) { | |
158 | + if (serverBajada!!.direccion.isNullOrEmpty()) { | |
159 | + val modalDialog = NoServerConf() | |
160 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
161 | + } else { | |
162 | + BASE_URL = serverBajada!!.direccion.toString() + ":" + serverBajada!!.puertoSubida.toString() + "/" | |
163 | + | |
164 | +// val call: Call<Void?>? = WebService.instance | |
165 | +// ?.createService(WebServiceApi::class.java) | |
166 | +// ?.inventarioSecToSendBody(EnviarBody) | |
167 | + ItomInv.request.inventarioSecToSendBody(EnviarBody) | |
168 | + .enqueue(object : Callback<Void?> { | |
169 | +// call?.enqueue(object : Callback<Void?> { | |
170 | + override fun onResponse(call: Call<Void?>, response: Response<Void?>) { | |
171 | + if (response.code() == 200) { } | |
172 | + if (response.code() == 409) { | |
173 | + Toast.makeText(requireContext(), response.message(), Toast.LENGTH_SHORT).show() | |
174 | + } | |
175 | + } | |
176 | + | |
177 | + override fun onFailure(call: Call<Void?>?, t: Throwable?) {} | |
178 | + }) | |
179 | + } | |
180 | + } else { | |
181 | + val modalDialog = ServerNoConf() | |
182 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
183 | + } | |
184 | + } | |
185 | + } | |
186 | + | |
187 | + private fun exportarInventarioSecHead(aEnviar: InvSecHeadToSend) { | |
188 | + | |
189 | + fragmentScope.launch(Main) { | |
190 | + serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
191 | + | |
192 | + if (serverBajada != null) { | |
193 | + | |
194 | + if (serverBajada!!.direccion.isNullOrEmpty()) { | |
195 | + val modalDialog = NoServerConf() | |
196 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
197 | + } else { | |
198 | + BASE_URL = serverBajada!!.direccion.toString() + ":" + serverBajada!!.puertoSubida.toString() + "/" | |
199 | + | |
200 | + ItomInv.request.inventarioSecToSendHead(aEnviar) | |
201 | + .enqueue(object : Callback<Void?> { | |
202 | + | |
203 | +// } | |
204 | +// val call: Call<Void?>? = WebService.instance | |
205 | +// ?.createService(WebServiceApi::class.java) | |
206 | +// ?.inventarioSecToSendHead(aEnviar) | |
207 | +// call?.enqueue(object : Callback<Void?> { | |
208 | + override fun onResponse(call: Call<Void?>, response: Response<Void?>) { | |
209 | + if (response.code() == 201) {} | |
210 | + if (response.code() == 409) { | |
211 | + Toast.makeText(requireContext(), response.message(), Toast.LENGTH_SHORT).show() | |
212 | + } | |
213 | + } | |
214 | + override fun onFailure(call: Call<Void?>?, t: Throwable?) {} | |
215 | + }) | |
216 | + } | |
217 | + } else { | |
218 | + val modalDialog = ServerNoConf() | |
219 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
220 | + } | |
221 | + } | |
222 | + } | |
223 | + | |
224 | + override fun onDestroy() { | |
225 | + super.onDestroy() | |
226 | + fragmentScope.cancel() | |
227 | + } | |
228 | +// private fun exportarInventario(aEnviar: InvToSend){ | |
229 | +// var serverBajada: ServeInv? = null | |
230 | +// GlobalScope.launch(IO) { | |
231 | +// serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
232 | +// | |
233 | +// if (serverBajada != null) { | |
234 | +// | |
235 | +// if (serverBajada!!.direccion.isNullOrEmpty()) { | |
236 | +// val modalDialog = NoServerConf() | |
237 | +// modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
238 | +// } else { | |
239 | +// BASE_URL = serverBajada!!.direccion.toString() + ":" + serverBajada!!.puertoSubida.toString() + "/" | |
240 | +// | |
241 | +// val call: Call<Void?>? = WebService.instance | |
242 | +// ?.createService(WebServiceApi::class.java) | |
243 | +// ?.inventarioToSend(aEnviar) | |
244 | +// call?.enqueue(object : Callback<Void?> { | |
245 | +// override fun onResponse(call: Call<Void?>, response: Response<Void?>) { | |
246 | +// if (response.code() == 201) { | |
247 | +// } | |
248 | +// if (response.code() == 409) { | |
249 | +// } | |
250 | +// } | |
251 | +// override fun onFailure(call: Call<Void?>?, t: Throwable?) {} | |
252 | +// }) | |
253 | +// } | |
254 | +// } else { | |
255 | +// val modalDialog = ServerNoConf() | |
256 | +// modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
257 | +// } | |
258 | +// | |
259 | +// } | |
260 | +// } | |
261 | + | |
262 | + private suspend fun foundInvHeadDB(inv: String): InvHeadSec { | |
263 | + var busqueda: InvHeadSec | |
264 | + return fragmentScope.async(IO) { | |
265 | + busqueda = AppDb.getAppDb(requireContext())!!.InvHeadSecDAO()!!.foundInvSecHead(inv) | |
266 | + return@async busqueda | |
267 | + }.await() | |
268 | + } | |
269 | + | |
270 | + private suspend fun foundInvBodyBD(inv: String): List<InvBodySec> { | |
271 | + var busqueda: List<InvBodySec> | |
272 | + return fragmentScope.async(IO) { | |
273 | + busqueda = AppDb.getAppDb(requireContext())!!.InvBodySecDAO()!!.fetchInvSecBody(inv) | |
274 | + return@async busqueda | |
275 | + }.await() | |
276 | + } | |
277 | + | |
278 | + private fun borrarInvActualCuerpo() { | |
279 | + fragmentScope.launch { | |
280 | + withContext(IO) { | |
281 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodySecDAO()!!.deleteInvSecBody(invSecActual) | |
282 | + } | |
283 | + } | |
284 | + } | |
285 | + | |
286 | + private fun borrarInvActualCabecera() { | |
287 | + fragmentScope.launch { | |
288 | + withContext(IO) { | |
289 | + AppDb.getAppDb((activity as MainActivity))!!.InvHeadSecDAO()!!.deleteinvSecHead(invSecActual) | |
290 | + } | |
291 | + } | |
292 | + } | |
293 | + | |
294 | + private fun cargarDeBdInventario(ultimoInv: Int) { | |
295 | + fragmentScope.launch(Main) { | |
296 | + listArtSec.clear() | |
297 | + val invbody = searchInvSecBody(ultimoInv) | |
298 | + for ((i, _) in invbody!!.withIndex()) { | |
299 | + loadRecycler( | |
300 | + invbody[i].invNum, | |
301 | + if (invbody[i].sector.toString().toInt() < 9) "0${invbody[i].sector.toString()}" else invbody[i].sector.toString(), | |
302 | + invbody[i].codigo!!, | |
303 | + invbody[i].descripcion!!, | |
304 | + invbody[i].precio!!, | |
305 | + invbody[i].uniVenta!!, | |
306 | + invbody[i].costo!!, | |
307 | + invbody[i].contado!!, | |
308 | + invbody[i].depSn!!, | |
309 | + invbody[i].fechaTomado!!, | |
310 | + invbody[i].fechaFinal!! | |
311 | + ) | |
312 | + } | |
313 | + } | |
314 | + } | |
315 | + | |
316 | + private suspend fun searchInvSecBody(inventario: Int): List<InvBodySec>? { | |
317 | + return fragmentScope.async(IO) { | |
318 | + return@async AppDb.getAppDb((activity as MainActivity))!!.InvBodySecDAO()!!.buscarInvSecBody(inventario) | |
319 | + }.await() | |
320 | + } | |
321 | + | |
322 | + private fun loadRecycler( | |
323 | + invNum: Int, sector: String, codigo: String, descripcion: String, precio: String, uniVta: String, | |
324 | + costo: String, contado: String, depSn: Boolean, fechaTomado: String, fechaFinal: String | |
325 | + ) { | |
326 | + | |
327 | + //TODO CARGO EN LE RV | |
328 | + val item = ItemsSecRecycler( | |
329 | + invNum.toString(), | |
330 | + sector, | |
331 | + codigo, | |
332 | + descripcion, | |
333 | + precio, | |
334 | + uniVta, | |
335 | + costo, | |
336 | + contado, | |
337 | + depSn, | |
338 | + fechaTomado, | |
339 | + fechaFinal | |
340 | + ) | |
341 | + listArtSec.add(item) | |
342 | + | |
343 | + viewAdapter = ProdSecListAdapter(requireContext(), listArtSec, this) | |
344 | + viewManager = LinearLayoutManager(requireContext()) | |
345 | + rcInventariosSec.apply { | |
346 | + adapter = viewAdapter | |
347 | + layoutManager = viewManager | |
348 | + } | |
349 | + } | |
350 | + | |
351 | + override fun onImagePenClick(numInv: String?, sector: String?, codigo: String?, cantidad: String?, position: String) { | |
352 | + if (filtrado) | |
353 | + dialogoSumaResta(numInv, requireContext(), position.toInt(), countryFilterList[position.toInt()].uniVta, true) | |
354 | + else | |
355 | + dialogoSumaResta(numInv, requireContext(), position.toInt(), listArtSec[position.toInt()].uniVta, true) | |
356 | + } | |
357 | + | |
358 | + override fun onImageDotsClick(numInv: String?, sector: String?, codigo: String?) { | |
359 | + val bundle = Bundle() | |
360 | + bundle.putString("sector", sector!!.toInt().toString()) | |
361 | + bundle.putString("codigo", codigo) | |
362 | + bundle.putString("numeroInv", numInv) | |
363 | + bundle.putString("Busqueda", etDescripcion.text.toString()) | |
364 | + navController.navigate(R.id.action_invSecFragment_to_detalleArtSecFragment, bundle) | |
365 | + } | |
366 | + | |
367 | + fun dialogoSumaResta(numInv: String?, context: Context, indiceDelArtEncontrado: Int, univta: String, cancelable: Boolean) { | |
368 | + var segundaVezCant = false | |
369 | + var cantidadTemp: Float | |
370 | + mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) | |
371 | + val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(cancelable) | |
372 | + // TODO: SI PERMITE QUE INGRESE DECIMALES | |
373 | + if (univta.contains("1") || univta.contains("3") || univta.contains("7")) mDialogView.tvNuevaCantidad.inputType = InputType.TYPE_CLASS_NUMBER | |
374 | + mDialogView.tvTitulo2.text = if (filtrado) countryFilterList[indiceDelArtEncontrado].descripcion else listArtSec[indiceDelArtEncontrado].descripcion | |
375 | + mDialogView.tvCantInicial.text = | |
376 | + if (filtrado) | |
377 | + (Math.round((if (countryFilterList[indiceDelArtEncontrado].contado == "") "0".toDouble() else countryFilterList[indiceDelArtEncontrado].contado.toFloat() * 100.0)) / 100.0).toString() | |
378 | + else | |
379 | + (Math.round((if (listArtSec[indiceDelArtEncontrado].contado == "") "0".toDouble() else listArtSec[indiceDelArtEncontrado].contado.toFloat() * 100.0)) / 100.0).toString() | |
380 | + | |
381 | + if (filtrado) | |
382 | + if (countryFilterList[indiceDelArtEncontrado].contado != "") segundaVezCant = true | |
383 | + else | |
384 | + if (listArtSec[indiceDelArtEncontrado].contado != "") segundaVezCant = true | |
385 | + | |
386 | + val mAlertDialog = mBuilder.show() | |
387 | + mDialogView.tvNuevaCantidad.requestFocus() | |
388 | + | |
389 | + mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) | |
390 | + mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) | |
391 | + | |
392 | + mDialogView.tvNuevaCantidad.addTextChangedListener(textWatcher) | |
393 | + | |
394 | + mDialogView.rbSumar.setOnClickListener { | |
395 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
396 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
397 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
398 | + } | |
399 | + } | |
400 | + mDialogView.rbRestar.setOnClickListener { | |
401 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
402 | + if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
403 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
404 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
405 | + } else { | |
406 | + mDialogView.tvResultado.text = "" | |
407 | + mDialogView.tvResultado.error = "Operación No Valida" | |
408 | + mDialogView.tvResultado.requestFocus() | |
409 | + mDialogView.tvResultado.hint = "Error" | |
410 | + } | |
411 | + } | |
412 | + } | |
413 | + mDialogView.rbMdodificar.setOnClickListener { | |
414 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
415 | + mDialogView.tvResultado.text = (Math.round(mDialogView.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
416 | + } | |
417 | + } | |
418 | + mDialogView.btnAceptar.setOnClickListener { | |
419 | + if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) { | |
420 | + if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) { | |
421 | + mAlertDialog.dismiss() | |
422 | + | |
423 | + if (filtrado) | |
424 | + countryFilterList[indiceDelArtEncontrado].contado = (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toString() | |
425 | + else | |
426 | + listArtSec[indiceDelArtEncontrado].contado = (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toString() | |
427 | + | |
428 | + if (segundaVezCant) { | |
429 | + updateFECTOMFINinvSecBody( | |
430 | + numInv!!, | |
431 | + if (filtrado) countryFilterList[indiceDelArtEncontrado].sector else listArtSec[indiceDelArtEncontrado].sector, | |
432 | + if (filtrado) countryFilterList[indiceDelArtEncontrado].codigo else listArtSec[indiceDelArtEncontrado].codigo, | |
433 | + (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toFloat() | |
434 | + ) | |
435 | + } else { | |
436 | + updateCantidad( | |
437 | + numInv!!, | |
438 | + if (filtrado) countryFilterList[indiceDelArtEncontrado].sector else listArtSec[indiceDelArtEncontrado].sector, | |
439 | + if (filtrado) countryFilterList[indiceDelArtEncontrado].codigo else listArtSec[indiceDelArtEncontrado].codigo, | |
440 | + (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toFloat() | |
441 | + ) | |
442 | + } | |
443 | + | |
444 | + viewAdapter.notifyDataSetChanged() | |
445 | + } else if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
446 | + mDialogView.tvResultado.error = "Operación Requerida" | |
447 | + mDialogView.tvResultado.requestFocus() | |
448 | + mDialogView.tvResultado.hint = "Seleccione Operación" | |
449 | + } | |
450 | + } else if (mDialogView.tvNuevaCantidad.text.isEmpty() || mDialogView.tvNuevaCantidad.text.isBlank()) { | |
451 | + mDialogView.tvNuevaCantidad.error = "Completar" | |
452 | + mDialogView.tvNuevaCantidad.requestFocus() | |
453 | + mDialogView.tvNuevaCantidad.hint = "Ingrese un valor" | |
454 | + } | |
455 | + } | |
456 | + mDialogView.dialogCancelBtn.setOnClickListener { | |
457 | + mAlertDialog.dismiss() | |
458 | + } | |
459 | + } | |
460 | + | |
461 | + private val textWatcher = object : TextWatcher { | |
462 | + | |
463 | + override fun afterTextChanged(s: Editable?) { | |
464 | + if (mDialogView.tvNuevaCantidad.text.toString() == "") { | |
465 | + mDialogView.tvResultado.text = "" | |
466 | + } | |
467 | + } | |
468 | + | |
469 | + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} | |
470 | + | |
471 | + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { | |
472 | + var cantidadTemp: Float | |
473 | + if (mDialogView.tvNuevaCantidad.text.toString() != "") { | |
474 | + if (mDialogView.rbSumar.isChecked) { | |
475 | + cantidadTemp = mDialogView.tvNuevaCantidad.text.toString().toFloat() + mDialogView.tvCantInicial.text.toString().toFloat() | |
476 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
477 | + } | |
478 | + if (mDialogView.rbRestar.isChecked) { | |
479 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
480 | + if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
481 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
482 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
483 | + } else { | |
484 | + mDialogView.tvResultado.text = "" | |
485 | + mDialogView.tvResultado.error = "Operación No Valida" | |
486 | + mDialogView.tvResultado.requestFocus() | |
487 | + mDialogView.tvResultado.hint = "Error" | |
488 | + } | |
489 | + } | |
490 | + } | |
491 | + if (mDialogView.rbMdodificar.isChecked) { | |
492 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
493 | + mDialogView.tvResultado.text = (Math.round(mDialogView.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
494 | + } | |
495 | + } | |
496 | + } | |
497 | + } | |
498 | + } | |
499 | + | |
500 | + private val textWatcher2 = object : TextWatcher { | |
501 | + | |
502 | + override fun afterTextChanged(constraint: Editable?) {} | |
503 | + | |
504 | + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} | |
505 | + | |
506 | + override fun onTextChanged(constraint: CharSequence?, start: Int, before: Int, count: Int) { | |
507 | + | |
508 | + val charSearch = constraint.toString() | |
509 | + if (charSearch.isEmpty()) { | |
510 | + countryFilterList = listArtSec | |
511 | + filtrado = false | |
512 | + } else { | |
513 | + val resultList = ArrayList<ItemsSecRecycler>() | |
514 | + for (row in listArtSec) { | |
515 | + if (row.descripcion.toLowerCase(Locale.ROOT).contains(charSearch.toLowerCase(Locale.ROOT))) { | |
516 | + resultList.add(row) | |
517 | + filtrado = true | |
518 | + } | |
519 | + } | |
520 | + countryFilterList = resultList | |
521 | + } | |
522 | + viewAdapter = ProdSecListAdapter(requireContext(), countryFilterList, this@InvSecFragment) | |
523 | + viewManager = LinearLayoutManager(requireContext()) | |
524 | + rcInventariosSec.apply { | |
525 | + adapter = viewAdapter | |
526 | + layoutManager = viewManager | |
527 | + rcInventariosSec.recycledViewPool.clear() | |
528 | + viewAdapter.notifyDataSetChanged() | |
529 | + } | |
530 | + } | |
531 | + } | |
532 | + | |
533 | + private fun updateFETinvSecHead(numInv: String, fecha: String) { | |
534 | + fragmentScope.launch(IO) { | |
535 | + AppDb.getAppDb((activity as MainActivity))!!.InvHeadSecDAO()!!.updateFETinvSecHead(numInv, fecha) | |
536 | + } | |
537 | + } | |
538 | + | |
539 | + private fun updateFECTOMyFECTOMFINinvSecBody(numInv: String, fecha: String) { | |
540 | + fragmentScope.launch(IO) { | |
541 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodySecDAO()!!.updateFECTOMyFECTOMFINinvSecBody(numInv, fecha) | |
542 | + } | |
543 | + } | |
544 | + | |
545 | + private fun updateFECinvSecHead(numInv: String, fecha: String) { | |
546 | + fragmentScope.launch(IO) { | |
547 | + AppDb.getAppDb((activity as MainActivity))!!.InvHeadSecDAO()!!.updateFECinvSecHead(numInv, fecha) | |
548 | + } | |
549 | + } | |
550 | + | |
551 | + private fun updateFECTOMFINinvSecBody(numInv: String, sector: String, codigo: String, cantidad: Float) { | |
552 | + fragmentScope.launch(IO) { | |
553 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodySecDAO()!!.updateFECTOMFINinvSecBody(numInv, cantidad, sector.toLong(), codigo.toLong(), obtenerFechaActualFormatoFoca()) | |
554 | + } | |
555 | + } | |
556 | + | |
557 | + private fun updateCantidad(numInv: String, sector: String, codigo: String, cantidad: Float) { | |
558 | + fragmentScope.launch(IO) { | |
559 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodySecDAO()!!.updateInvSecBody(numInv, cantidad, sector.toLong(), codigo.toLong(), obtenerFechaActualFormatoFoca()) | |
560 | + } | |
561 | + } | |
562 | +} | |
563 | + | |
564 | + |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/InventarioFragment.kt
1 | 1 | package com.focasoftware.deboinventariov20.UI.inventario |
2 | 2 | |
3 | -import android.annotation.SuppressLint | |
4 | 3 | import android.app.AlertDialog |
5 | 4 | import android.content.Context |
6 | 5 | import android.content.Context.INPUT_METHOD_SERVICE |
... | ... | @@ -10,6 +9,7 @@ import android.graphics.Canvas |
10 | 9 | import android.graphics.Color |
11 | 10 | import android.graphics.drawable.Drawable |
12 | 11 | import android.os.Bundle |
12 | +import android.system.ErrnoException | |
13 | 13 | import android.text.Editable |
14 | 14 | import android.text.InputType.TYPE_CLASS_NUMBER |
15 | 15 | import android.text.TextWatcher |
... | ... | @@ -32,10 +32,8 @@ import androidx.recyclerview.widget.RecyclerView |
32 | 32 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
33 | 33 | import com.focasoftware.deboinventariov20.Model.* |
34 | 34 | import com.focasoftware.deboinventariov20.R |
35 | -import com.focasoftware.deboinventariov20.UI.Utils.ExportacionExitosa | |
36 | -import com.focasoftware.deboinventariov20.UI.Utils.NoEncontradoSimple | |
37 | -import com.focasoftware.deboinventariov20.UI.Utils.modificarCantidadEnCabecera | |
38 | -import com.focasoftware.deboinventariov20.UI.Utils.obtenerFechaActual | |
35 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
36 | +import com.focasoftware.deboinventariov20.UI.Utils.* | |
39 | 37 | import com.focasoftware.deboinventariov20.UI.inventario.viewModel.InventarioViewModel |
40 | 38 | import kotlinx.android.synthetic.main.fragment_inventario.* |
41 | 39 | import kotlinx.android.synthetic.main.ingresar_cantidad.view.* |
... | ... | @@ -47,35 +45,48 @@ import kotlinx.coroutines.Dispatchers.Main |
47 | 45 | import retrofit2.Call |
48 | 46 | import retrofit2.Callback |
49 | 47 | import retrofit2.Response |
48 | +import java.io.IOException | |
49 | +import java.net.SocketTimeoutException | |
50 | 50 | import java.util.* |
51 | 51 | import kotlin.collections.ArrayList |
52 | 52 | |
53 | -class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickListener { | |
53 | +private lateinit var sharedPreferences: SharedPreferences | |
54 | +private var iArea: Boolean = false | |
55 | +private lateinit var invHead: InvHead | |
56 | +private lateinit var viewAdapter: RecyclerView.Adapter<*> | |
57 | +private lateinit var viewManager: RecyclerView.LayoutManager | |
58 | +private lateinit var sChangeUpper: String | |
59 | +private var listArticulos = ArrayList<ItemsRecycler>() | |
60 | +private lateinit var navController: NavController | |
61 | +private var iEstado = 0 | |
62 | +private var iBusquedaPor = 0 | |
63 | +private var fCant = 0F | |
64 | +private var bFirst = false | |
65 | +private lateinit var deleteIcon: Drawable | |
66 | +lateinit var inventarioViewModel: ViewModel | |
67 | +private var sectorBalanza = 0 | |
68 | +private var codigoBalanza = 0 | |
69 | +private var cantEnteraBalanza = 0 | |
70 | +private var cantDecimalBalanza = 0 | |
71 | +private var EsBalanza = false | |
54 | 72 | |
55 | - private lateinit var sharedPreferences: SharedPreferences | |
56 | - private var iArea: Boolean = false | |
57 | - private lateinit var invHead: InvHead | |
58 | - private lateinit var rcInventarios: RecyclerView | |
59 | - private lateinit var viewAdapter: RecyclerView.Adapter<*> | |
60 | - private lateinit var viewManager: RecyclerView.LayoutManager | |
61 | - private lateinit var sChangeUpper: String | |
62 | - private var listArticulos = ArrayList<ItemsRecycler>() | |
63 | - private lateinit var navController: NavController | |
64 | - var InventarioNuevo: Int = 0 | |
65 | - private var iEstado = 0 | |
66 | - private var iBusquedaPor = 0 | |
67 | - private var fCant = 0F | |
68 | - private var bFirst = false | |
69 | - private lateinit var deleteIcon: Drawable | |
73 | +class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickListener { | |
70 | 74 | lateinit var mDialogView: View |
71 | - lateinit var inventarioViewModel: ViewModel | |
75 | + private lateinit var rcInventarios: RecyclerView | |
76 | + private val job: Job = Job() | |
77 | + private val fragmentScopeInvFrag = CoroutineScope(IO + job) | |
78 | + private var serverBajada: ServeInv? = null | |
79 | + | |
80 | + override fun onDestroy() { | |
81 | + super.onDestroy() | |
82 | + fragmentScopeInvFrag.cancel() | |
83 | + } | |
72 | 84 | |
73 | - @SuppressLint("MissingPermission") | |
74 | 85 | override fun onCreate(savedInstanceState: Bundle?) { |
75 | 86 | super.onCreate(savedInstanceState) |
76 | 87 | inventarioViewModel = ViewModelProviders.of(this).get(InventarioViewModel::class.java) |
77 | 88 | |
78 | - sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
89 | + sharedPreferences = (activity as MainActivity).getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
79 | 90 | if (sharedPreferences.contains("Inventario")) if (sharedPreferences.getString("Inventario", "").toString() != "-1") { |
80 | 91 | (inventarioViewModel as InventarioViewModel).InventarioNuevo = sharedPreferences.getString("Inventario", "").toString().toInt() |
81 | 92 | val editor = sharedPreferences.edit() |
... | ... | @@ -83,20 +94,12 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
83 | 94 | editor?.apply() |
84 | 95 | editor.commit() |
85 | 96 | } |
86 | -// val c = Calendar.getInstance() | |
87 | -// c[2009, 9, 9, 12, 0] = 0 | |
88 | -// val am: AlarmManager = requireActivity().getSystemService(Context.ALARM_SERVICE) as AlarmManager | |
89 | -// am.setTime(c.timeInMillis) | |
90 | 97 | } |
91 | -// private fun setupTimeZone(timeZoneName: String) { | |
92 | -// val am = requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager | |
93 | -// am.setTimeZone("Europe/Madrid") | |
94 | -// } | |
95 | - | |
96 | 98 | |
97 | 99 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
98 | 100 | val v = inflater.inflate(R.layout.fragment_inventario, container, false) |
99 | - sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
101 | + | |
102 | + | |
100 | 103 | val tCodigoBarras = v.findViewById<EditText>(R.id.etCodigoBarras) |
101 | 104 | rcInventarios = v.findViewById(R.id.rcInventarios) |
102 | 105 | val tvTitulo = v.findViewById<TextView>(R.id.tvTitulo) |
... | ... | @@ -105,7 +108,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
105 | 108 | if ((inventarioViewModel as InventarioViewModel).InventarioNuevo == 0) {// TODO: SI INVETNARIO NUEVO |
106 | 109 | GlobalScope.launch(Dispatchers.Main) { |
107 | 110 | //TODO: BUSCO EL ULTIMO INVENTARIO EN LA BD PARA PODER CREAR EL PROXIMO |
108 | - (inventarioViewModel as InventarioViewModel).InventarioNuevo = AppDb.getAppDb(requireActivity())?.InvHeadDAO()?.findLastInv()?.plus(1) ?: 1 | |
111 | + (inventarioViewModel as InventarioViewModel).InventarioNuevo = AppDb.getAppDb((activity as MainActivity))?.InvHeadDAO()?.findLastInv()?.plus(1) ?: 1 | |
109 | 112 | //TODO: CREAMOS EL INVENTARIO EN LA CABECERA DEL INVENTARIO |
110 | 113 | invHead = InvHead( |
111 | 114 | (inventarioViewModel as InventarioViewModel).InventarioNuevo, |
... | ... | @@ -118,7 +121,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
118 | 121 | AjusteProductos(), |
119 | 122 | ProdNoCont() |
120 | 123 | ) |
121 | - AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.insertInvHead(invHead) | |
124 | + AppDb.getAppDb((activity as MainActivity))!!.InvHeadDAO()!!.insertInvHead(invHead) | |
122 | 125 | |
123 | 126 | tvTitulo.text = "Inventario " + " # ${(inventarioViewModel as InventarioViewModel).InventarioNuevo} " + descArea |
124 | 127 | } |
... | ... | @@ -131,6 +134,15 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
131 | 134 | tCodigoBarras.setOnKeyListener { _, keyCode, keyEvent -> |
132 | 135 | if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.action == KeyEvent.ACTION_UP) { |
133 | 136 | sChangeUpper = tCodigoBarras.text.toString() |
137 | + | |
138 | +// val esnumero = try { | |
139 | +// val retorno = java.lang.Double.valueOf(sChangeUpper) | |
140 | +// true | |
141 | +// } catch (e: NumberFormatException) { | |
142 | +// //retorno = 0.0 | |
143 | +// false | |
144 | +// } | |
145 | +// if (esnumero){} | |
134 | 146 | var indiceDelArtEncontrado = 0 |
135 | 147 | |
136 | 148 | if (tCodigoBarras.text.isNullOrBlank()) { |
... | ... | @@ -143,41 +155,65 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
143 | 155 | tCodigoBarras.hint = "4 Minimo" |
144 | 156 | |
145 | 157 | } else { |
146 | - | |
158 | + tCodigoBarras.hint = "" | |
147 | 159 | //TODO COMIENZA LA BUSQUEDA POR CODIGO DE BARRAS |
148 | 160 | when (iBusquedaPor) { |
149 | 161 | 0 -> { |
150 | 162 | // TODO: ESCONDE EL TECLADO VIRTUAL AL PRESIONAR ENTER |
151 | - val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
152 | - imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
153 | - | |
154 | - GlobalScope.launch(Dispatchers.Main) { | |
163 | + val imm = (activity as MainActivity).getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
164 | + imm!!.hideSoftInputFromWindow((activity as MainActivity).currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
165 | + | |
166 | + if (sharedPreferences.contains("cbHabiLectura")) { | |
167 | + if (sharedPreferences.getString("cbHabiLectura", "").toString() == "1") { | |
168 | + if (sChangeUpper.length == 13) | |
169 | + if (sChangeUpper.substring(0, 2) == "20" && sChangeUpper.substring(12, 13) == "2") { | |
170 | + EsBalanza=true | |
171 | + sectorBalanza = sChangeUpper.substring(2, 4).toInt() | |
172 | + codigoBalanza = sChangeUpper.substring(4, 7).toInt() | |
173 | + cantEnteraBalanza = sChangeUpper.substring(7, 9).toInt() | |
174 | + cantDecimalBalanza = sChangeUpper.substring(9, 12).toInt() | |
175 | + } | |
176 | + } | |
177 | + } | |
178 | + GlobalScope.launch(Main) { | |
155 | 179 | indiceDelArtEncontrado = buscoArtEnRv(sChangeUpper.toUpperCase(Locale.ROOT), 0)//TODO Si encuentra el articulo en el RV devuelve el indice |
156 | 180 | //TODO (Si no lo encuentra devuelve -1) |
157 | 181 | if (indiceDelArtEncontrado != -1) { |
158 | - if (swSumaUno!!.isChecked) { | |
159 | -// fCant = 0F | |
160 | -// fCant = listArticulos[indiceDelArtEncontrado].cantTomada | |
161 | -// fCant += 1F | |
162 | - //TODO ACTUALIZO LA CANTIDAD EN LA BD | |
163 | - updateCantidad( | |
164 | - listArticulos[indiceDelArtEncontrado].sector.toString(), | |
165 | - listArticulos[indiceDelArtEncontrado].codigo.toString(), | |
166 | - listArticulos[indiceDelArtEncontrado].cantTomada + 1 | |
167 | - ) | |
168 | - //TODO ACTUALIZO LA CANTIDAD EN EL RV | |
169 | - listArticulos[indiceDelArtEncontrado].cantTomada = listArticulos[indiceDelArtEncontrado].cantTomada + 1 | |
170 | - viewAdapter.notifyDataSetChanged() | |
171 | - } else { | |
172 | - dialogoSumaResta(requireContext(), indiceDelArtEncontrado, listArticulos[indiceDelArtEncontrado].univta, false) | |
182 | + if (!EsBalanza) { | |
183 | +// //TODO ACTUALIZO LA CANTIDAD EN LA BD | |
184 | +// updateCantidad( | |
185 | +// sectorBalanza.toString(), | |
186 | +// codigoBalanza.toString(), | |
187 | +// ("$cantEnteraBalanza.$cantDecimalBalanza").toFloat()) | |
188 | +// //TODO ACTUALIZO LA CANTIDAD EN EL RV | |
189 | +// listArticulos[indiceDelArtEncontrado].cantTomada = ("$cantEnteraBalanza.$cantDecimalBalanza").toFloat() | |
190 | +// viewAdapter.notifyDataSetChanged() | |
191 | +// }else{ | |
192 | + if (swSumaUno!!.isChecked) { | |
193 | + //TODO ACTUALIZO LA CANTIDAD EN LA BD | |
194 | + updateCantidad( | |
195 | + listArticulos[indiceDelArtEncontrado].sector.toString(), | |
196 | + listArticulos[indiceDelArtEncontrado].codigo.toString(), | |
197 | + listArticulos[indiceDelArtEncontrado].cantTomada + 1 | |
198 | + ) | |
199 | + //TODO ACTUALIZO LA CANTIDAD EN EL RV | |
200 | + listArticulos[indiceDelArtEncontrado].cantTomada = listArticulos[indiceDelArtEncontrado].cantTomada + 1 | |
201 | + viewAdapter.notifyDataSetChanged() | |
202 | + | |
203 | + } else { | |
204 | + dialogoSumaResta(requireContext(), indiceDelArtEncontrado, listArticulos[indiceDelArtEncontrado].univta, false) | |
205 | + } | |
173 | 206 | } |
174 | - | |
175 | 207 | } else if (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD |
176 | 208 | //TODO BUSCO EN BASE DE DATOS |
177 | - val artEncontrado = buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
209 | + val artEncontrado:Articles? = if (EsBalanza) { | |
210 | + buscarCodigoDeboEnBD(sectorBalanza.toString(), codigoBalanza.toString()) | |
211 | + }else{ | |
212 | + buscarCBEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) | |
213 | + } | |
178 | 214 | continuarCargaCB(artEncontrado)//TODO SE MANDA CERO POR QUE ES UN ARTICULO ESCANEADO NUEVO PARA QUE SEA COMPATIBLE |
179 | 215 | } |
180 | - tCodigoBarras.focusable = View.FOCUSABLE | |
216 | + etCodigoBarras.requestFocus() | |
181 | 217 | tCodigoBarras.setText("") |
182 | 218 | tCodigoBarras.selectAll() |
183 | 219 | } |
... | ... | @@ -187,8 +223,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
187 | 223 | } |
188 | 224 | 1 -> {//TODO: BUSQUEDA POR DESCRIPCION************************************************************************** |
189 | 225 | // TODO: ESCONDE EL TECLADO VIRTUAL AL PRESIONAR ENTER |
190 | - val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
191 | - imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
226 | + val imm = (activity as MainActivity).getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
227 | + imm!!.hideSoftInputFromWindow((activity as MainActivity).currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
192 | 228 | // indiceDelArtEncontrado = buscoArtEnRv(sChangeUpper.toUpperCase(Locale.ROOT), 1) //TODO :Si encuentra el articulo en el RV devuelve el indice |
193 | 229 | // //TODO Si no lo encuentra devuelve -1 |
194 | 230 | // if (indiceDelArtEncontrado != -1) { |
... | ... | @@ -217,19 +253,24 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
217 | 253 | // |
218 | 254 | // } else if |
219 | 255 | // (indiceDelArtEncontrado == -1) {// TODO: no lo encontro en el RV, lo va a buscar en al BD |
220 | - GlobalScope.launch(Dispatchers.Main) { | |
256 | + GlobalScope.launch(Main) { | |
221 | 257 | val artEncontrado = buscarDescEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) |
222 | 258 | continuarCargaDesc(artEncontrado as ArrayList<Articles>) |
223 | 259 | } |
224 | 260 | |
261 | + ivCamara.setImageResource(R.drawable.codbar) | |
262 | + etCodigoBarras.hint = "Busqueda por Código de Barras" | |
263 | + swSumaUno.visibility = View.VISIBLE | |
225 | 264 | iBusquedaPor = 0 |
265 | + iEstado = 0 | |
266 | + bFirst = false | |
226 | 267 | // } |
227 | 268 | |
228 | 269 | return@setOnKeyListener true |
229 | 270 | } |
230 | 271 | 2 -> {//TODO: BUSQUEDA POR CODIGO DE ORIGEN************************************************************************** |
231 | - val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
232 | - imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
272 | + val imm = (activity as MainActivity).getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
273 | + imm!!.hideSoftInputFromWindow((activity as MainActivity).currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
233 | 274 | |
234 | 275 | // GlobalScope.launch(Dispatchers.Main) { |
235 | 276 | // indiceDelArtEncontrado = buscoArtEnRv(sChangeUpper.toUpperCase(Locale.ROOT), 2)//TODO Si encuentra el articulo en el RV devuelve el indice |
... | ... | @@ -312,7 +353,13 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
312 | 353 | val artEncontrado = buscarCodiogoOriEnBD(sChangeUpper.toUpperCase(Locale.ROOT)) |
313 | 354 | continuarCargaCodigoOri(artEncontrado) |
314 | 355 | } |
356 | + ivCamara.setImageResource(R.drawable.codbar) | |
357 | + etCodigoBarras.hint = "Busqueda por Código de Barras" | |
358 | + swSumaUno.visibility = View.VISIBLE | |
315 | 359 | iBusquedaPor = 0 |
360 | + iEstado = 0 | |
361 | + bFirst = false | |
362 | + | |
316 | 363 | // } |
317 | 364 | // } |
318 | 365 | return@setOnKeyListener true |
... | ... | @@ -330,13 +377,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
330 | 377 | navController = Navigation.findNavController(view) |
331 | 378 | etCodigoBarras.requestFocus() |
332 | 379 | // val modalDialog = NoEncontradoSimple() |
333 | -// modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
380 | +// modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
334 | 381 | |
335 | 382 | btnBorrarInv.setOnClickListener { |
336 | 383 | AlertDialog.Builder(requireContext()).setTitle("Eliminación de Inventarios").setMessage("¿Confirma que desea eliminar el inventario?") |
337 | 384 | .setPositiveButton(R.string.btnOk, DialogInterface.OnClickListener { dialog, which -> |
338 | - borrarInvActual() | |
339 | - Toast.makeText(requireContext(), "El inventario $(inventarioViewModel as InventarioViewModel).InventarioNuevo fue Borrado", Toast.LENGTH_LONG).show() | |
385 | + borrarInvActualCabecera() | |
386 | + borrarInvActualCuerpo() | |
387 | + Toast.makeText(requireContext(), "El inventario fue Borrado", Toast.LENGTH_LONG).show() | |
340 | 388 | navController.navigate(R.id.action_inventarioFragment_to_mainFragment2) |
341 | 389 | (inventarioViewModel as InventarioViewModel).InventarioNuevo = 0 |
342 | 390 | |
... | ... | @@ -348,16 +396,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
348 | 396 | btnExportarInv.setOnClickListener { |
349 | 397 | AlertDialog.Builder(requireContext()).setTitle(R.string.sTituloExportar).setMessage(R.string.sMensajeExportar) |
350 | 398 | .setPositiveButton(R.string.btnOk, DialogInterface.OnClickListener { dialog, which -> |
351 | - if (preparaInvParaExportar((inventarioViewModel as InventarioViewModel).InventarioNuevo )) { | |
352 | - borrarInvActual() | |
353 | - Toast.makeText(requireContext(), "El inventario $(inventarioViewModel as InventarioViewModel).InventarioNuevo fue Exportado al Servidor", Toast.LENGTH_LONG).show() | |
354 | - navController.navigate(R.id.action_inventarioFragment_to_mainFragment2) | |
355 | - (inventarioViewModel as InventarioViewModel).InventarioNuevo = 0 | |
356 | - } else { | |
357 | - Toast.makeText(requireContext(), "No se pudo realizar la exportación, Intente mas tarde.", Toast.LENGTH_LONG).show() | |
358 | - } | |
359 | - | |
360 | - | |
399 | + preparaInvParaExportar((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
361 | 400 | }).setNegativeButton(R.string.btnCancelar, DialogInterface.OnClickListener { dialog, which -> }).show() |
362 | 401 | } |
363 | 402 | ivCamara.setOnClickListener { |
... | ... | @@ -392,49 +431,123 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
392 | 431 | } |
393 | 432 | } |
394 | 433 | |
395 | - private fun preparaInvParaExportar(inventario: Int): Boolean { | |
396 | - var bExporto = false | |
397 | - GlobalScope.launch(Main) { | |
398 | - val aEnviar: ArrayList<InvToSend>? = arrayListOf<InvToSend>() | |
434 | + private fun preparaInvParaExportar(inventario: Int) { | |
435 | + | |
436 | + var fecInicio: String | |
437 | + var lug: Int | |
438 | + var itomInvC: ItomInvC | |
439 | + lifecycleScope.launch(Main) { | |
440 | +// fragmentScopeInvFrag.launch(Main) { | |
441 | + | |
399 | 442 | val datosCabecera = foundInvHeadDB(inventario) |
400 | 443 | val datosCuerpo = foundInvBodyBD(inventario) |
444 | + fecInicio = datosCabecera.fechaInicio.toString() | |
445 | + var fecActual: String = "${obtenerFechaActual()}" | |
446 | + fecActual = "$fecActual" | |
447 | + lug = if (datosCabecera.lugar!!) 1 else 0 | |
448 | + itomInvC = ItomInvC(fecInicio, fecActual, lug) | |
449 | + serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
450 | + exportarInventarioHead(itomInvC, datosCuerpo) | |
451 | + | |
401 | 452 | |
402 | - for (cuerpo in datosCuerpo) { | |
403 | - val temp=InvToSend(datosCabecera.fechaInicio, datosCabecera.fechaFinal, if (datosCabecera.lugar!!) 1 else 0, cuerpo.sector, cuerpo.codigo, cuerpo.descripcion, cuerpo.cantTomada, cuerpo.fechaInicio, cuerpo.fechaFinal) | |
404 | - aEnviar!!.add(temp) | |
453 | + } | |
454 | + } | |
455 | + | |
456 | + private fun exportarInventarioHead(aEnviar: ItomInvC, datosCuerpo: List<InvBody>) { | |
457 | + var exporto = false | |
458 | + if (serverBajada != null) { | |
459 | + | |
460 | + if (serverBajada!!.direccion.isNullOrEmpty()) { | |
461 | + val modalDialog = NoServerConf() | |
462 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
463 | + } else { | |
464 | + BASE_URL = serverBajada!!.direccion.toString() + ":" + serverBajada!!.puertoSubida.toString() + "/" | |
465 | + try { | |
466 | + ItomInv.request.insertarItominvc(aEnviar) | |
467 | + .enqueue(object : Callback<DefaultResponse> { | |
468 | + override fun onResponse(call: Call<DefaultResponse>, response: Response<DefaultResponse>) { | |
469 | + lifecycleScope.launch(Main) { | |
470 | + loading_view.visibility=View.VISIBLE | |
471 | + if(exportarInventarioBody(datosCuerpo)) { | |
472 | + borrarInvActualCabecera() | |
473 | + borrarInvActualCuerpo() | |
474 | + loading_view.visibility = View.INVISIBLE | |
475 | + | |
476 | + navController.navigate(R.id.action_inventarioFragment_to_mainFragment2) | |
477 | + (inventarioViewModel as InventarioViewModel).InventarioNuevo = 0 | |
478 | + | |
479 | + val modalDialog = ExportacionExitosa() | |
480 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
481 | + }else { | |
482 | + loading_view.visibility = View.INVISIBLE | |
483 | + val modalDialog = ExportacionFracasada() | |
484 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
485 | + } | |
486 | + } | |
487 | + } | |
488 | + | |
489 | + override fun onFailure(call: Call<DefaultResponse>, t: Throwable) { | |
490 | + val modalDialog = ExportacionFracasada() | |
491 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
492 | + } | |
493 | + }) | |
494 | + | |
495 | + } catch (e: RuntimeException) { | |
496 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
497 | + } catch (e: Error) { | |
498 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
499 | + } catch (e: ErrnoException) { | |
500 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
501 | + } catch (e: InternalError) { | |
502 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
503 | + } catch (e: IOException) { | |
504 | + Toast.makeText(context, "Error ${e.message}", Toast.LENGTH_LONG).show() | |
505 | + } catch (e: SocketTimeoutException) { | |
506 | + Toast.makeText(requireContext(), e.message, Toast.LENGTH_SHORT).show() | |
507 | + } | |
405 | 508 | } |
406 | -// exportarInventario(aEnviar!!) | |
407 | - bExporto = true | |
509 | + } else { | |
510 | + val modalDialog = ServerNoConf() | |
511 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
408 | 512 | } |
409 | - return bExporto | |
410 | 513 | } |
411 | 514 | |
412 | -// private fun exportarInventario(aEnviar: List<InvToSend>) { | |
413 | -// | |
414 | -// val call: Call<Void?>? = WebService | |
415 | -// .getInstance() | |
416 | -// ?.createService(WebServiceApi::class.java) | |
417 | -// ?.inventarioToSend(aEnviar) | |
418 | -// | |
419 | -// call!!.enqueue(object : Callback<Void?> { | |
420 | -// override fun onResponse(call: Call<Void?>?, response: Response<Void?>) { | |
421 | -// if (response.code() == 201) { | |
422 | -// val modalDialog = ExportacionExitosa() | |
423 | -// modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
424 | -// } | |
425 | -// if (response.code() == 409) { | |
515 | + private fun exportarInventarioBody(datosCuerpo: List<InvBody>):Boolean { | |
516 | + | |
517 | + | |
518 | + for (cuerpo in datosCuerpo) { | |
519 | + val aEnviar: ItomInvD = ItomInvD( | |
520 | + cuerpo.sector.toString(), | |
521 | + cuerpo.codigo.toString(), | |
522 | + cuerpo.descripcion.toString(), | |
523 | + cuerpo.cantTomada.toString(), | |
524 | + cuerpo.fechaInicio.toString(), | |
525 | + cuerpo.fechaFinal.toString() | |
526 | + ) | |
527 | + | |
528 | + ItomInv.request.insertarItominvd(aEnviar) | |
529 | + .enqueue(object : Callback<Void?> { | |
530 | + override fun onResponse(call: Call<Void?>, response: Response<Void?>) {} | |
531 | + override fun onFailure(call: Call<Void?>, t: Throwable) {} | |
532 | +// val call: Call<Void?>? = WebService.instance | |
533 | +// ?.createService(WebServiceApi::class.java) | |
534 | +// ?.insertarItominvd(aEnviar) | |
535 | +// call?.enqueue(object : Callback<Void?> { | |
536 | +// override fun onResponse(call: Call<Void?>, response: Response<Void?>) { | |
537 | +// if (response.code() == 200) { } | |
538 | +// if (response.code() == 400) { } | |
426 | 539 | // } |
427 | -// } | |
428 | -// | |
429 | -// override fun onFailure(call: Call<Void?>?, t: Throwable?) {} | |
430 | -// }) | |
431 | -// | |
432 | -// } | |
540 | +// override fun onFailure(call: Call<Void?>?, t: Throwable?) {} | |
541 | + }) | |
542 | + | |
543 | + } | |
544 | + return true | |
545 | + } | |
433 | 546 | |
434 | 547 | private suspend fun foundInvHeadDB(inv: Int): InvHead { |
435 | 548 | var busqueda: InvHead |
436 | 549 | return GlobalScope.async(IO) { |
437 | - busqueda = AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.foundInvHead(inv) | |
550 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.InvHeadDAO()!!.foundInvHead(inv) | |
438 | 551 | return@async busqueda |
439 | 552 | }.await() |
440 | 553 | } |
... | ... | @@ -442,17 +555,20 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
442 | 555 | private suspend fun foundInvBodyBD(inv: Int): List<InvBody> { |
443 | 556 | var busqueda: List<InvBody> |
444 | 557 | return GlobalScope.async(IO) { |
445 | - busqueda = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.fetchAllInvBody(inv) | |
558 | + busqueda = AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.fetchAllInvBody(inv) | |
446 | 559 | return@async busqueda |
447 | 560 | }.await() |
448 | 561 | } |
449 | 562 | |
450 | - private fun borrarInvActual() { | |
451 | - lifecycleScope.launch { | |
452 | - withContext(Dispatchers.IO) { | |
453 | - AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.deleteinvHead((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
454 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.deleteInvBody((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
455 | - } | |
563 | + private fun borrarInvActualCabecera() { | |
564 | + GlobalScope.launch(IO) { | |
565 | + AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.deleteinvHead((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
566 | + } | |
567 | + } | |
568 | + | |
569 | + private fun borrarInvActualCuerpo() { | |
570 | + GlobalScope.launch(IO) { | |
571 | + AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.deleteInvBody((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
456 | 572 | } |
457 | 573 | } |
458 | 574 | |
... | ... | @@ -484,8 +600,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
484 | 600 | |
485 | 601 | if (artAcargar.isNotEmpty() || !artAcargar.isNullOrEmpty()) {// TODO: Si lo encuentra en la BD |
486 | 602 | // TODO: ESCONDE EL TECLADO VIRTUAL AL PRESIONAR ENTER |
487 | - val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
488 | - imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
603 | + val imm = (activity as MainActivity).getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
604 | + imm!!.hideSoftInputFromWindow((activity as MainActivity).currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
489 | 605 | |
490 | 606 | var bundle = Bundle() |
491 | 607 | bundle = bundleOf("ArrayDesc" to artAcargar) |
... | ... | @@ -494,9 +610,10 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
494 | 610 | |
495 | 611 | } else {//TODO si no lo encuentra en la BD |
496 | 612 | val modalDialog = NoEncontradoSimple() |
497 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
613 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
498 | 614 | } |
499 | - etCodigoBarras.focusable = View.FOCUSABLE | |
615 | +// etCodigoBarras.focusable = View.FOCUSABLE | |
616 | + etCodigoBarras.requestFocus() | |
500 | 617 | etCodigoBarras.setText("") |
501 | 618 | etCodigoBarras.selectAll() |
502 | 619 | } |
... | ... | @@ -528,8 +645,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
528 | 645 | // cargarRecicler(acargarPorDesc, fCant) |
529 | 646 | // } else { |
530 | 647 | // TODO: ESCONDE EL TECLADO VIRTUAL AL PRESIONAR ENTER |
531 | - val imm = requireActivity().getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
532 | - imm!!.hideSoftInputFromWindow(requireActivity().currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
648 | + val imm = (activity as MainActivity).getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager? | |
649 | + imm!!.hideSoftInputFromWindow((activity as MainActivity).currentFocus?.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) | |
533 | 650 | var bundle = Bundle() |
534 | 651 | bundle = bundleOf("ArrayDesc" to artAcargar) |
535 | 652 | bundle.putInt("numeroInv", (inventarioViewModel as InventarioViewModel).InventarioNuevo) |
... | ... | @@ -575,31 +692,38 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
575 | 692 | // } |
576 | 693 | } else {//TODO si no lo encuentra en la BD |
577 | 694 | val modalDialog = NoEncontradoSimple() |
578 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
695 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
579 | 696 | } |
580 | - etCodigoBarras.focusable = View.FOCUSABLE | |
697 | +// etCodigoBarras.focusable = View.FOCUSABLE | |
698 | + etCodigoBarras.requestFocus() | |
581 | 699 | etCodigoBarras.setText("") |
582 | 700 | etCodigoBarras.selectAll() |
583 | 701 | } |
584 | 702 | |
585 | 703 | private fun continuarCargaCB(artAcargar: Articles?) { |
586 | 704 | |
587 | - if (artAcargar != null) {// TODO: Si lo encuentra en la BD | |
588 | - if (swSumaUno!!.isChecked) {//TODO: SI ESTA +1, PONE CANTIDAD 1 | |
589 | - fCant = 0F | |
590 | - fCant += 1F | |
591 | - cargarArtEnBd(artAcargar, String.format("%.3f", fCant)) | |
592 | - cargarRecicler(artAcargar, fCant) | |
593 | - } else {//TODO: SI NO ESTA +1 PREGUNTA CANTIDAD | |
594 | - | |
595 | - dialogingresarCantidad(requireContext(), artAcargar) | |
596 | - | |
705 | + if (artAcargar != null) { // TODO: Si lo encuentra en la BD | |
706 | + if (EsBalanza) { | |
707 | + cargarArtEnBd(artAcargar, (Math.round(("$cantEnteraBalanza.$cantDecimalBalanza").toFloat() * 100.0) / 100.0).toFloat().toString()) | |
708 | + cargarRecicler(artAcargar, (Math.round(("$cantEnteraBalanza.$cantDecimalBalanza").toFloat() * 100.0) / 100.0).toFloat()) | |
709 | + modificarCantidadEnCabecera((inventarioViewModel as InventarioViewModel).InventarioNuevo, true, requireContext()) | |
710 | + EsBalanza=false | |
711 | + }else{ | |
712 | + if (swSumaUno!!.isChecked) {//TODO: SI ESTA +1, PONE CANTIDAD 1 | |
713 | + fCant = 0F | |
714 | + fCant += 1F | |
715 | + | |
716 | + cargarArtEnBd(artAcargar, (Math.round(fCant * 100.0) / 100.0).toFloat().toString()) | |
717 | + cargarRecicler(artAcargar, (Math.round(fCant * 100.0) / 100.0).toFloat()) | |
718 | + } else {//TODO: SI NO ESTA +1 PREGUNTA CANTIDAD | |
719 | + dialogingresarCantidad(requireContext(), artAcargar) | |
720 | + } | |
597 | 721 | } |
598 | 722 | } else {// TODO si no lo encuentra en la BD |
599 | 723 | val modalDialog = NoEncontradoSimple() |
600 | - modalDialog.show(requireActivity().supportFragmentManager, "confirmDialog") | |
724 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
601 | 725 | } |
602 | - etCodigoBarras.focusable = View.FOCUSABLE | |
726 | + etCodigoBarras.requestFocus() | |
603 | 727 | etCodigoBarras.setText("") |
604 | 728 | etCodigoBarras.selectAll() |
605 | 729 | } |
... | ... | @@ -623,8 +747,8 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
623 | 747 | mDialogView.etCantidad.hint = "Ingrese un valor" |
624 | 748 | } else if (!mDialogView.etCantidad.text.isNullOrEmpty()) { |
625 | 749 | mAlertDialog.dismiss() |
626 | - cantidad = mDialogView.etCantidad.text.toString().toFloat() | |
627 | - cargarArtEnBd(artAcargar, String.format("%.2f", cantidad)) | |
750 | + cantidad = (Math.round(mDialogView.etCantidad.text.toString().toFloat() * 100.0) / 100.0).toFloat() | |
751 | + cargarArtEnBd(artAcargar, cantidad.toString()) | |
628 | 752 | cargarRecicler(artAcargar, cantidad) |
629 | 753 | modificarCantidadEnCabecera((inventarioViewModel as InventarioViewModel).InventarioNuevo, true, requireContext()) |
630 | 754 | } |
... | ... | @@ -633,13 +757,14 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
633 | 757 | } |
634 | 758 | |
635 | 759 | fun dialogoSumaResta(context: Context, indiceDelArtEncontrado: Int, univta: String, cancelable: Boolean) { |
636 | - | |
760 | + var cantidadTemp: Float | |
637 | 761 | mDialogView = LayoutInflater.from(context).inflate(R.layout.login_dialog, null) |
638 | 762 | val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(cancelable) |
639 | 763 | // TODO: SI PERMITE QUE INGRESE DECIMALES |
640 | 764 | if (univta.contains("1") || univta.contains("3") || univta.contains("7")) mDialogView.tvNuevaCantidad.inputType = TYPE_CLASS_NUMBER |
641 | 765 | mDialogView.tvTitulo2.text = "${listArticulos[indiceDelArtEncontrado].descripcion}" |
642 | - mDialogView.tvCantInicial.text = String.format("%.2f", listArticulos[indiceDelArtEncontrado].cantTomada) | |
766 | + cantidadTemp = (Math.round(listArticulos[indiceDelArtEncontrado].cantTomada * 100.0) / 100.0).toFloat() | |
767 | + mDialogView.tvCantInicial.text = cantidadTemp.toString() | |
643 | 768 | val mAlertDialog = mBuilder.show() |
644 | 769 | mDialogView.tvNuevaCantidad.requestFocus() |
645 | 770 | |
... | ... | @@ -652,14 +777,15 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
652 | 777 | |
653 | 778 | mDialogView.rbSumar.setOnClickListener { |
654 | 779 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
655 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
656 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
780 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() + mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
781 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
657 | 782 | } |
658 | 783 | } |
659 | 784 | mDialogView.rbRestar.setOnClickListener { |
660 | 785 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
661 | 786 | if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { |
662 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
787 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
788 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
663 | 789 | // mDialogView.tvNuevaCantidad.isEnabled = false |
664 | 790 | } else { |
665 | 791 | mDialogView.tvResultado.text = "" |
... | ... | @@ -671,19 +797,18 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
671 | 797 | } |
672 | 798 | mDialogView.rbMdodificar.setOnClickListener { |
673 | 799 | if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { |
674 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
675 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
800 | + mDialogView.tvResultado.text = (Math.round(mDialogView.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
676 | 801 | } |
677 | 802 | } |
678 | 803 | mDialogView.btnAceptar.setOnClickListener { |
679 | 804 | if (mDialogView.tvNuevaCantidad.text.isNotEmpty() || !mDialogView.tvNuevaCantidad.text.isBlank()) { |
680 | 805 | if (mDialogView.tvResultado.text.isNotEmpty() || !mDialogView.tvResultado.text.isBlank()) { |
681 | 806 | mAlertDialog.dismiss() |
682 | - listArticulos[indiceDelArtEncontrado].cantTomada = String.format("%.2f", mDialogView.tvResultado.text.toString().toFloat()).toFloat() | |
807 | + listArticulos[indiceDelArtEncontrado].cantTomada = (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toFloat() | |
683 | 808 | updateCantidad( |
684 | 809 | listArticulos[indiceDelArtEncontrado].sector.toString(), |
685 | 810 | listArticulos[indiceDelArtEncontrado].codigo.toString(), |
686 | - String.format("%.2f", mDialogView.tvResultado.text.toString().toFloat()).toFloat() | |
811 | + (Math.round(mDialogView.tvResultado.text.toString().toFloat() * 100.0) / 100.0).toFloat() | |
687 | 812 | ) |
688 | 813 | |
689 | 814 | viewAdapter.notifyDataSetChanged() |
... | ... | @@ -707,7 +832,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
707 | 832 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
708 | 833 | var busqueda: List<Articles> |
709 | 834 | return GlobalScope.async(IO) { |
710 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodOri(CodOri, SerchAreaInventario()) | |
835 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByCodOri(CodOri, SerchAreaInventario()) | |
711 | 836 | return@async busqueda |
712 | 837 | }.await() |
713 | 838 | } |
... | ... | @@ -716,7 +841,16 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
716 | 841 | //TODO BUSQUEDA POR CODIGO DE BARRAS |
717 | 842 | var busqueda: Articles? = null |
718 | 843 | return GlobalScope.async(IO) { |
719 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(CodigoBarras, SerchAreaInventario()) | |
844 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByCodBar(CodigoBarras, SerchAreaInventario()) | |
845 | + return@async busqueda | |
846 | + }.await() | |
847 | + } | |
848 | + | |
849 | + suspend fun buscarCodigoDeboEnBD(sector: String?, codigo: String?): Articles? { | |
850 | + //TODO BUSQUEDA POR CODIGO DE BARRAS | |
851 | + var busqueda: Articles? | |
852 | + return GlobalScope.async(IO) { | |
853 | + busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.fetchArticuloByCodSec(sector, codigo) | |
720 | 854 | return@async busqueda |
721 | 855 | }.await() |
722 | 856 | } |
... | ... | @@ -725,7 +859,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
725 | 859 | //TODO BUSQUEDA POR DESCRIPCION |
726 | 860 | var busqueda: List<Articles>? = null |
727 | 861 | return GlobalScope.async(IO) { |
728 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByDesc(descripcion, SerchAreaInventario()) | |
862 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByDesc(descripcion, SerchAreaInventario()) | |
729 | 863 | return@async busqueda |
730 | 864 | }.await() |
731 | 865 | } |
... | ... | @@ -734,7 +868,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
734 | 868 | //TODO BUSQUEDA POR DESCRIPCION |
735 | 869 | var result: Int |
736 | 870 | return GlobalScope.async(IO) { |
737 | - result = AppDb.getAppDb(requireContext())!!.InvBodyDAO()!!.deleteItemFromInvBody(sector.toLong(), codigo.toLong(), inventario.toInt()) | |
871 | + result = AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.deleteItemFromInvBody(sector.toLong(), codigo.toLong(), inventario.toInt()) | |
738 | 872 | return@async result |
739 | 873 | }.await() |
740 | 874 | } |
... | ... | @@ -745,15 +879,25 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
745 | 879 | var bEncontrado = false |
746 | 880 | if (sTipoBusqueda == 0) {//TODO BUSQUEDA POR CODIGO DE BARRAS |
747 | 881 | // TODO CAMBIO DE CB A CODIGO DEBO |
748 | - val any = cambioCBporCodigoDebo(codigoBarras) | |
749 | - if (any != null) { | |
882 | + if (EsBalanza){ | |
750 | 883 | for (item in listArticulos) { |
751 | - if (item.sector!!.toInt() == any.sector!!.toInt() && item.codigo!!.toInt() == any.codigo!!.toInt()) { | |
884 | + if (item.sector!!.toInt() == sectorBalanza.toInt() && item.codigo!!.toInt() == codigoBalanza.toInt()) { | |
752 | 885 | bEncontrado = true |
753 | 886 | break |
754 | 887 | } |
755 | 888 | indice += 1 |
756 | 889 | } |
890 | + }else { | |
891 | + val any = cambioCBporCodigoDebo(codigoBarras) | |
892 | + if (any != null) { | |
893 | + for (item in listArticulos) { | |
894 | + if (item.sector!!.toInt() == any.sector!!.toInt() && item.codigo!!.toInt() == any.codigo!!.toInt()) { | |
895 | + bEncontrado = true | |
896 | + break | |
897 | + } | |
898 | + indice += 1 | |
899 | + } | |
900 | + } | |
757 | 901 | } |
758 | 902 | |
759 | 903 | } else if (sTipoBusqueda == 1) {//TODO BUSQUEDA POR DESCRIPCION |
... | ... | @@ -781,7 +925,7 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
781 | 925 | //TODO BUSQUEDA POR DESCRIPCION |
782 | 926 | var busqueda: Articles? = null |
783 | 927 | return GlobalScope.async(IO) { |
784 | - busqueda = AppDb.getAppDb(requireContext())!!.ArticulosDAO()!!.findArticuloByCodBar(codigoBarras, SerchAreaInventario()) | |
928 | + busqueda = AppDb.getAppDb((activity as MainActivity))!!.ArticulosDAO()!!.findArticuloByCodBar(codigoBarras, SerchAreaInventario()) | |
785 | 929 | return@async busqueda |
786 | 930 | }.await() |
787 | 931 | } |
... | ... | @@ -887,32 +1031,32 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
887 | 1031 | return iArea |
888 | 1032 | } |
889 | 1033 | |
890 | - suspend fun SerchAreaInventario(): Boolean { | |
1034 | + private suspend fun SerchAreaInventario(): Boolean { | |
891 | 1035 | return GlobalScope.async(IO) { |
892 | - return@async AppDb.getAppDb(requireActivity())!!.InvHeadDAO()!!.fetchAreaInvH((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
1036 | + return@async AppDb.getAppDb((activity as MainActivity))!!.InvHeadDAO()!!.fetchAreaInvH((inventarioViewModel as InventarioViewModel).InventarioNuevo) | |
893 | 1037 | }.await() |
894 | 1038 | |
895 | 1039 | } |
896 | 1040 | |
897 | - fun InsertarArtEnDB(cuarpoInventario: InvBody) { | |
1041 | + private fun InsertarArtEnDB(cuarpoInventario: InvBody) { | |
898 | 1042 | lifecycleScope.launch { |
899 | 1043 | withContext(Dispatchers.IO) { |
900 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) | |
1044 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.insertInvBody(cuarpoInventario) | |
901 | 1045 | } |
902 | 1046 | } |
903 | 1047 | } |
904 | 1048 | |
905 | - fun updateCantidad(sector: String, codigo: String, cantidad: Float) { | |
1049 | + private fun updateCantidad(sector: String, codigo: String, cantidad: Float) { | |
906 | 1050 | lifecycleScope.launch { |
907 | 1051 | withContext(IO) { |
908 | - AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.updateInvBody(cantidad, sector.toLong(), codigo.toLong(), obtenerFechaActual()) | |
1052 | + AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.updateInvBody(cantidad, sector.toLong(), codigo.toLong(), obtenerFechaActual()) | |
909 | 1053 | } |
910 | 1054 | } |
911 | 1055 | } |
912 | 1056 | |
913 | - suspend fun cargarInventario(inventario: Int): List<InvBody>? { | |
1057 | + private suspend fun cargarInventario(inventario: Int): List<InvBody>? { | |
914 | 1058 | return GlobalScope.async(IO) { |
915 | - return@async AppDb.getAppDb(requireActivity())!!.InvBodyDAO()!!.fetchAllInvBody(inventario) | |
1059 | + return@async AppDb.getAppDb((activity as MainActivity))!!.InvBodyDAO()!!.fetchAllInvBody(inventario) | |
916 | 1060 | }.await() |
917 | 1061 | } |
918 | 1062 | |
... | ... | @@ -929,34 +1073,41 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
929 | 1073 | } |
930 | 1074 | |
931 | 1075 | private val textWatcher = object : TextWatcher { |
932 | - override fun afterTextChanged(s: Editable?) {} | |
1076 | + override fun afterTextChanged(s: Editable?) { | |
1077 | + if (mDialogView.tvNuevaCantidad.text.toString() == "") { | |
1078 | + mDialogView.tvResultado.text = "" | |
1079 | + } | |
1080 | + } | |
1081 | + | |
933 | 1082 | override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} |
934 | 1083 | |
935 | 1084 | override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { |
936 | - if (mDialogView.rbSumar.isChecked) { | |
937 | -// mDialogView.tvNuevaCantidad.isEnabled=false | |
938 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat() + mDialogView.tvCantInicial.text.toString().toFloat()) | |
939 | - } | |
940 | - if (mDialogView.rbRestar.isChecked) { | |
941 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
942 | - if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
943 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
1085 | + var cantidadTemp: Float | |
1086 | + if (mDialogView.tvNuevaCantidad.text.toString() != "") { | |
1087 | + if (mDialogView.rbSumar.isChecked) { | |
1088 | + cantidadTemp = mDialogView.tvNuevaCantidad.text.toString().toFloat() + mDialogView.tvCantInicial.text.toString().toFloat() | |
1089 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
1090 | + } | |
1091 | + if (mDialogView.rbRestar.isChecked) { | |
1092 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
1093 | + if (mDialogView.tvCantInicial.text.toString().toFloat() >= mDialogView.tvNuevaCantidad.text.toString().toFloat()) { | |
1094 | + cantidadTemp = mDialogView.tvCantInicial.text.toString().toFloat() - mDialogView.tvNuevaCantidad.text.toString().toFloat() | |
1095 | + mDialogView.tvResultado.text = (Math.round(cantidadTemp * 100.0) / 100.0).toString() | |
944 | 1096 | // mDialogView.tvNuevaCantidad.isEnabled = false |
945 | - } else { | |
946 | - mDialogView.tvResultado.text = "" | |
947 | - mDialogView.tvResultado.error = "Operación No Valida" | |
948 | - mDialogView.tvResultado.requestFocus() | |
949 | - mDialogView.tvResultado.hint = "Error" | |
1097 | + } else { | |
1098 | + mDialogView.tvResultado.text = "" | |
1099 | + mDialogView.tvResultado.error = "Operación No Valida" | |
1100 | + mDialogView.tvResultado.requestFocus() | |
1101 | + mDialogView.tvResultado.hint = "Error" | |
1102 | + } | |
950 | 1103 | } |
951 | 1104 | } |
952 | - } | |
953 | - if (mDialogView.rbMdodificar.isChecked) { | |
954 | - if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
955 | - mDialogView.tvResultado.text = String.format("%.2f", mDialogView.tvNuevaCantidad.text.toString().toFloat()) | |
956 | -// mDialogView.tvNuevaCantidad.isEnabled = false | |
1105 | + if (mDialogView.rbMdodificar.isChecked) { | |
1106 | + if (!mDialogView.tvNuevaCantidad.text.isNullOrEmpty()) { | |
1107 | + mDialogView.tvResultado.text = (Math.round(mDialogView.tvNuevaCantidad.text.toString().toFloat() * 100.0) / 100.0).toString() | |
1108 | + } | |
957 | 1109 | } |
958 | 1110 | } |
959 | - | |
960 | 1111 | } |
961 | 1112 | } |
962 | 1113 | } |
... | ... | @@ -974,3 +1125,4 @@ class InventarioFragment : Fragment(), ProductosListAdapter.OnImageDotsClickList |
974 | 1125 | |
975 | 1126 | |
976 | 1127 | |
1128 | + |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/ItemsSecRecycler.kt
... | ... | @@ -0,0 +1,6 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.inventario | |
2 | + | |
3 | +data class ItemsSecRecycler(val invNum: String, val sector: String, val codigo: String, val descripcion: String, var precio: String, var uniVta: String, val costo: String, var contado: String, val depSn: Boolean, val fechaTomado:String, val fechaFinal:String) { | |
4 | + | |
5 | + | |
6 | +} | |
0 | 7 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/ProdSecListAdapter.kt
... | ... | @@ -0,0 +1,49 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.inventario | |
2 | + | |
3 | +import android.content.Context | |
4 | +import android.view.LayoutInflater | |
5 | +import android.view.View | |
6 | +import android.view.ViewGroup | |
7 | +import android.widget.Filter | |
8 | +import android.widget.Filterable | |
9 | +import androidx.recyclerview.widget.RecyclerView | |
10 | +import com.focasoftware.deboinventariov20.R | |
11 | +import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder | |
12 | +import kotlinx.android.synthetic.main.item.view.* | |
13 | +import java.util.* | |
14 | +import kotlin.collections.ArrayList | |
15 | + | |
16 | +class ProdSecListAdapter(private val context: Context, private var productos: ArrayList<ItemsSecRecycler>, private val itemImageClickListener: InvSecFragment) : | |
17 | + RecyclerView.Adapter<BaseViewHolder<*>>() { | |
18 | + | |
19 | + interface OnImageDotsClickListener { | |
20 | + fun onImagePenClick(numInv: String?, sector: String?, codigo: String?, cantidad: String?, position: String) | |
21 | + fun onImageDotsClick(numInv: String?, sector: String?, codigo: String?) | |
22 | + } | |
23 | + | |
24 | + override fun onCreateViewHolder(parent: ViewGroup, p1: Int) = ItemsViewHolder(LayoutInflater.from(context).inflate(R.layout.item, parent, false)) | |
25 | + | |
26 | + override fun getItemCount(): Int { | |
27 | + return productos.count() | |
28 | + } | |
29 | + | |
30 | + override fun onBindViewHolder(holder: BaseViewHolder<*>, position: Int) { | |
31 | + when (holder) { | |
32 | + is ItemsViewHolder -> { | |
33 | + holder.bind(productos[position], position) | |
34 | + } | |
35 | + } | |
36 | + } | |
37 | + | |
38 | + inner class ItemsViewHolder(itemView: View) : BaseViewHolder<ItemsSecRecycler>(itemView) { | |
39 | + override fun bind(item: ItemsSecRecycler, position: Int) { | |
40 | + | |
41 | + itemView.ivDots.setOnClickListener { itemImageClickListener.onImageDotsClick(item.invNum, item.sector, item.codigo) } | |
42 | + itemView.ivPen.setOnClickListener { itemImageClickListener.onImagePenClick(item.invNum, item.sector, item.codigo, item.contado, adapterPosition.toString()) } | |
43 | + itemView.tvDescripcion.text = item.descripcion | |
44 | + itemView.tvCantidad.text = item.contado | |
45 | + itemView.ivPen.setImageResource(R.drawable.pen) | |
46 | + itemView.ivDots.setImageResource(R.drawable.more) | |
47 | + } | |
48 | + } | |
49 | +} | |
0 | 50 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/inventario/ProductosListAdapter.kt
... | ... | @@ -8,11 +8,9 @@ import androidx.recyclerview.widget.RecyclerView |
8 | 8 | import com.focasoftware.deboinventariov20.R |
9 | 9 | import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder |
10 | 10 | import kotlinx.android.synthetic.main.item.view.* |
11 | -import java.io.IOException | |
12 | -import java.net.UnknownHostException | |
13 | 11 | |
14 | 12 | |
15 | -class ProductosListAdapter(private val context: Context,private val productos: ArrayList<ItemsRecycler>, private val itemImageClickListener: OnImageDotsClickListener) : | |
13 | +class ProductosListAdapter(private val context: Context, private val productos: ArrayList<ItemsRecycler>, private val itemImageClickListener: OnImageDotsClickListener) : | |
16 | 14 | RecyclerView.Adapter<BaseViewHolder<*>>() { |
17 | 15 | |
18 | 16 | private var removePosition: Int = 0 |
... | ... | @@ -39,12 +37,8 @@ class ProductosListAdapter(private val context: Context,private val productos: A |
39 | 37 | itemView.ivDots.setOnClickListener {itemImageClickListener.onImageDotsClick(item.sector,item.codigo) } |
40 | 38 | itemView.ivPen.setOnClickListener {itemImageClickListener.onImagePenClick(item.sector,item.codigo,item.cantTomada.toString(),adapterPosition.toString()) } |
41 | 39 | |
42 | -// itemView.tvSector.text=item.sector | |
43 | -// itemView.tvCodigo.text=item.codigo | |
44 | 40 | itemView.tvDescripcion.text=item.descripcion |
45 | 41 | itemView.tvCantidad.text=item.cantTomada.toString() |
46 | -// itemView.tvCodigoBarras.text=item.sector | |
47 | -// itemView.tvCodigoOrigen.text=item.sector | |
48 | 42 | itemView.ivPen.setImageResource(R.drawable.pen) |
49 | 43 | itemView.ivDots.setImageResource(R.drawable.more) |
50 | 44 | } |
app/src/main/java/com/focasoftware/deboinventariov20/UI/main/InventarioSecListAdapter.kt
... | ... | @@ -0,0 +1,42 @@ |
1 | +package com.focasoftware.deboinventariov20.UI.main | |
2 | + | |
3 | +import android.content.Context | |
4 | +import android.view.LayoutInflater | |
5 | +import android.view.View | |
6 | +import android.view.ViewGroup | |
7 | +import androidx.recyclerview.widget.RecyclerView | |
8 | +import com.focasoftware.deboinventariov20.Model.InvHeadSec | |
9 | +import com.focasoftware.deboinventariov20.R | |
10 | +import com.focasoftware.deboinventariov20.UI.Utils.BaseViewHolder | |
11 | +import kotlinx.android.synthetic.main.item_principal.view.* | |
12 | + | |
13 | +class InventarioSecListAdapter(private val context: Context, private val inv: ArrayList<InvHeadSec>, private val itemClickListener: MainFragment) : | |
14 | + RecyclerView.Adapter<BaseViewHolder<*>>() { | |
15 | + | |
16 | + interface OnInventarioSecClickListener { | |
17 | + fun onItemSecClick(inventario: String?, nombre: String?) | |
18 | + } | |
19 | + | |
20 | + override fun onCreateViewHolder(parent: ViewGroup, p1: Int) = ItemsViewHolder(LayoutInflater.from(context).inflate(R.layout.item_principal, parent, false)) | |
21 | + | |
22 | + override fun getItemCount() = inv.size | |
23 | + | |
24 | + inner class ItemsViewHolder(itemView: View) : BaseViewHolder<InvHeadSec>(itemView) { | |
25 | + override fun bind(item: InvHeadSec, position: Int) { | |
26 | + itemView.setOnClickListener { itemClickListener.onItemSecClick(item.invNum.toString(), item.detalle.toString()) } | |
27 | + itemView.tvPrincipalinventario.text = if (item.invNum < 10) "#0${item.invNum}" else "#" + item.invNum.toString() | |
28 | + | |
29 | + itemView.tvDescription.text = item.detalle.toString() | |
30 | + itemView.tvFecha.text = item.fechaInicio.toString() | |
31 | + //SimpleDateFormat("dd/MM/yyyy HH:mm:SS").format(DateFormat(hd)).toString() | |
32 | + itemView.tvCantContada.text = item.prodContados.toString() | |
33 | + } | |
34 | + } | |
35 | + | |
36 | + override fun onBindViewHolder(holder: BaseViewHolder<*>, position: Int) { | |
37 | + when (holder) { | |
38 | + is ItemsViewHolder -> holder.bind(inv[position], position) | |
39 | + else -> IllegalArgumentException("No se pudo pasar el ViewHolder") | |
40 | + } | |
41 | + } | |
42 | +} | |
0 | 43 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
1 | 1 | package com.focasoftware.deboinventariov20.UI.main |
2 | 2 | |
3 | +import android.app.AlertDialog | |
3 | 4 | import android.content.Context |
5 | +import android.content.Intent | |
4 | 6 | import android.content.SharedPreferences |
5 | 7 | import android.os.Bundle |
8 | +import android.provider.Settings | |
6 | 9 | import android.view.LayoutInflater |
7 | 10 | import android.view.View |
8 | 11 | import android.view.ViewGroup |
12 | +import android.view.WindowManager | |
13 | +import android.view.inputmethod.InputMethodManager | |
9 | 14 | import android.widget.CheckBox |
10 | 15 | import android.widget.ImageButton |
16 | +import android.widget.ImageView | |
11 | 17 | import android.widget.TextView |
12 | 18 | import androidx.fragment.app.Fragment |
19 | +import androidx.fragment.app.FragmentActivity | |
13 | 20 | import androidx.navigation.NavController |
14 | 21 | import androidx.navigation.Navigation |
15 | 22 | import androidx.recyclerview.widget.LinearLayoutManager |
16 | 23 | import androidx.recyclerview.widget.RecyclerView |
17 | 24 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
18 | -import com.focasoftware.deboinventariov20.Model.InvHead | |
25 | +import com.focasoftware.deboinventariov20.Model.* | |
19 | 26 | import com.focasoftware.deboinventariov20.R |
20 | -import kotlinx.coroutines.Dispatchers | |
21 | -import kotlinx.coroutines.GlobalScope | |
22 | -import kotlinx.coroutines.async | |
23 | -import kotlinx.coroutines.launch | |
24 | -import java.time.LocalDateTime | |
27 | +import com.focasoftware.deboinventariov20.UI.MainActivity | |
28 | +import com.focasoftware.deboinventariov20.UI.Utils.* | |
29 | +import kotlinx.android.synthetic.main.fragment_main.* | |
30 | +import kotlinx.android.synthetic.main.solicitar_fecha.view.* | |
31 | +import kotlinx.coroutines.* | |
32 | +import kotlinx.coroutines.Dispatchers.Main | |
33 | +import retrofit2.Call | |
34 | +import retrofit2.Callback | |
35 | +import retrofit2.Response | |
36 | +import java.net.SocketTimeoutException | |
25 | 37 | import java.util.* |
38 | +import kotlin.math.absoluteValue | |
26 | 39 | |
27 | -class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener { | |
28 | - private lateinit var inventarios: List<InvHead> | |
40 | +class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener, InventarioSecListAdapter.OnInventarioSecClickListener { | |
41 | + private var inventarios: List<InvHead>? = null | |
42 | + private var inventariosII: List<InvHeadSec>? = null | |
29 | 43 | private lateinit var ordenado: List<InvHead> |
30 | - private lateinit var ordenadoII: List<InvHead> | |
31 | 44 | private lateinit var rcInventario: RecyclerView |
32 | 45 | private lateinit var rcInventarioII: RecyclerView |
33 | 46 | private lateinit var viewAdapter: RecyclerView.Adapter<*> |
34 | 47 | private lateinit var viewManager: RecyclerView.LayoutManager |
35 | 48 | private var listIvn2 = ArrayList<InvHead>() |
36 | - private var listIvn2II = ArrayList<InvHead>() | |
49 | + private var listIvn2II = ArrayList<InvHeadSec>() | |
37 | 50 | private lateinit var navController: NavController |
38 | 51 | private lateinit var sharedPreferences: SharedPreferences |
39 | 52 | private var cantidadInventarios: Int = 0 |
40 | 53 | private var cantidadInventariosII: Int = 0 |
54 | + private val job: Job = Job() | |
55 | + private val fragmentScopeMain = CoroutineScope(Dispatchers.IO + job) | |
56 | + private var serverBajada: ServeInv? = null | |
41 | 57 | |
42 | 58 | override fun onCreate(savedInstanceState: Bundle?) { |
43 | 59 | super.onCreate(savedInstanceState) |
44 | - sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
45 | 60 | |
61 | + sharedPreferences = (activity as MainActivity).getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) | |
62 | + | |
63 | + if (sharedPreferences.contains("inicio")) { | |
64 | + if (sharedPreferences.getString("inicio", "").toString() == "inicio") { | |
65 | + if (sharedPreferences.contains("cbAskTimeServerToStart")) { | |
66 | + if (sharedPreferences.getString("cbAskTimeServerToStart", "").toString() == "1") { | |
67 | + GlobalScope.launch(Main) { | |
68 | + serverBajada = AppDb.getAppDb((activity as MainActivity))!!.ServeInvDao()!!.fetchServerPreOne() | |
69 | + if (serverBajada != null) { | |
70 | + if (serverBajada!!.direccion.isNullOrEmpty()) { | |
71 | + val modalDialog = NoServerConf() | |
72 | + modalDialog.show((activity as MainActivity).supportFragmentManager, "confirmDialog") | |
73 | + } else { | |
74 | + BASE_URL = serverBajada!!.direccion.toString() + ":" + serverBajada!!.puertoBajada.toString() + "/" | |
75 | + } | |
76 | + } | |
77 | + | |
78 | + val call: Call<List<Time?>?>? = WebService.instance | |
79 | + ?.createService(WebServiceApi::class.java) | |
80 | + ?.getTime() | |
81 | + call!!.enqueue(object : Callback<List<Time?>?> { | |
82 | + override fun onResponse(call: Call<List<Time?>?>?, response: Response<List<Time?>?>) { | |
83 | + if (response.code() == 200) { | |
84 | + try { | |
85 | + val timeServer = | |
86 | + response.body()?.get(0)?.dia + "/" + | |
87 | + response.body()?.get(0)?.mes + "/" + | |
88 | + response.body()?.get(0)?.ano + " " + | |
89 | + response.body()?.get(0)?.hora + ":" + | |
90 | + response.body()?.get(0)?.minutos + ":" + | |
91 | + response.body()?.get(0)?.segundos | |
92 | + val horaServer = response.body()?.get(0)?.hora + "" + | |
93 | + response.body()?.get(0)?.minutos + "" + | |
94 | + response.body()?.get(0)?.segundos | |
95 | + val fechaServer = response.body()?.get(0)?.dia + "" + | |
96 | + response.body()?.get(0)?.mes + "" + | |
97 | + response.body()?.get(0)?.ano | |
98 | + if (!askTimeServer(timeServer, horaServer, fechaServer)) { | |
99 | + } | |
100 | + } catch (e: SocketTimeoutException) { | |
101 | + } | |
102 | + } else if (response.code() == 400) { | |
103 | + } | |
104 | + } | |
105 | + | |
106 | + override fun onFailure(call: Call<List<Time?>?>?, t: Throwable?) {} | |
107 | + }) | |
108 | + } | |
109 | + val editor = sharedPreferences.edit() | |
110 | + editor?.putString("inicio", "") | |
111 | + editor?.apply() | |
112 | + editor.commit() | |
113 | + } | |
114 | + } | |
115 | + } | |
116 | + } | |
117 | + } | |
118 | + | |
119 | + override fun onDestroy() { | |
120 | + super.onDestroy() | |
121 | + fragmentScopeMain.cancel() | |
46 | 122 | } |
47 | 123 | |
48 | - override fun onCreateView( | |
49 | - inflater: LayoutInflater, | |
50 | - container: ViewGroup?, | |
51 | - savedInstanceState: Bundle? | |
52 | - ): View? { | |
124 | + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { | |
53 | 125 | var bAbiertoCerrado = false |
54 | 126 | var bAbiertoCerradoII = false |
55 | 127 | val v = inflater.inflate(R.layout.fragment_main, container, false) |
... | ... | @@ -57,51 +129,66 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
57 | 129 | val tvInvImportados = v.findViewById<TextView>(R.id.tvInvImportados) |
58 | 130 | val ivSort19 = v.findViewById<ImageButton>(R.id.ivSort19) |
59 | 131 | val ivSort91 = v.findViewById<ImageButton>(R.id.ivSort91) |
60 | - val ivSort19II = v.findViewById<ImageButton>(R.id.ivSort19II) | |
61 | - val ivSort91II = v.findViewById<ImageButton>(R.id.ivSort91II) | |
62 | 132 | val cbVentas = v.findViewById<CheckBox>(R.id.cbVentas) |
63 | 133 | val cbDeposito = v.findViewById<CheckBox>(R.id.cbDeposito) |
64 | 134 | val tvTipo = v.findViewById<TextView>(R.id.tvTipo) |
65 | - val cbVentasII = v.findViewById<CheckBox>(R.id.cbVentasII) | |
66 | - val cbDepositoII = v.findViewById<CheckBox>(R.id.cbDepositoII) | |
67 | - val tvTipoII = v.findViewById<TextView>(R.id.tvTipoII) | |
135 | + val ivPortada = v.findViewById<ImageView>(R.id.ivPortada) | |
68 | 136 | rcInventario = v.findViewById(R.id.rcInventario) |
69 | 137 | rcInventarioII = v.findViewById(R.id.rcInventarioII) |
138 | + ivPortada.visibility = View.VISIBLE | |
139 | + | |
140 | + fragmentScopeMain.launch(Main) { | |
141 | + | |
142 | + | |
143 | + | |
144 | + | |
145 | + | |
70 | 146 | |
71 | - GlobalScope.launch(Dispatchers.Main) { | |
72 | 147 | inventarios = buscarEnBDInvHead() |
73 | - for ((i, item) in inventarios.withIndex()) { | |
148 | + for ((i, item) in inventarios!!.withIndex()) { | |
74 | 149 | val inv = InvHead( |
75 | - inventarios[i].invNum, | |
76 | - inventarios[i].descripcion, | |
77 | - inventarios[i].estado, | |
78 | - inventarios[i].fechaInicio, | |
79 | - inventarios[i].fechaFinal, | |
80 | - inventarios[i].prodContados, | |
81 | - inventarios[i].lugar, | |
82 | - inventarios[i].stDesc, | |
83 | - inventarios[i].proNoCont | |
150 | + inventarios!![i].invNum, | |
151 | + inventarios!![i].descripcion, | |
152 | + inventarios!![i].estado, | |
153 | + inventarios!![i].fechaInicio, | |
154 | + inventarios!![i].fechaFinal, | |
155 | + inventarios!![i].prodContados, | |
156 | + inventarios!![i].lugar, | |
157 | + inventarios!![i].stDesc, | |
158 | + inventarios!![i].proNoCont | |
84 | 159 | ) |
85 | 160 | cargarRecicler(inv) |
86 | 161 | cantidadInventarios = i + 1 |
87 | 162 | } |
88 | - tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) +" | |
163 | + tvInvDinamicos.text = "Inventarios Dinámicos ($cantidadInventarios) +" | |
164 | + listIvn2II.clear() | |
165 | + inventariosII = buscarEnBDInvSecHead() | |
166 | + for ((i, item) in inventariosII!!.withIndex()) { | |
167 | + val invII = InvHeadSec( | |
168 | + inventariosII!![i].invNum, | |
169 | + inventariosII!![i].detalle, | |
170 | + inventariosII!![i].fechaInicio, | |
171 | + inventariosII!![i].depsn, | |
172 | + inventariosII!![i].estado, | |
173 | + inventariosII!![i].fechaFinal, | |
174 | + inventariosII!![i].prodContados | |
175 | + ) | |
176 | + cargarReciclerII(invII) | |
177 | + cantidadInventariosII = i + 1 | |
178 | + } | |
179 | + tvInvImportados.text = "Inventarios Importados ($cantidadInventariosII) +" | |
180 | + | |
89 | 181 | tvInvDinamicos.setOnClickListener { |
90 | 182 | if (!bAbiertoCerrado) { |
91 | 183 | bAbiertoCerrado = true |
92 | 184 | tvInvImportados.visibility = View.GONE |
93 | - ivSort19II.visibility = View.GONE | |
94 | - ivSort91II.visibility = View.GONE | |
95 | - tvTipoII.visibility = View.GONE | |
96 | - cbVentasII.visibility = View.GONE | |
97 | - cbDepositoII.visibility = View.GONE | |
98 | - | |
99 | 185 | rcInventario.visibility = View.VISIBLE |
100 | 186 | ivSort91.visibility = View.INVISIBLE |
101 | 187 | ivSort19.visibility = View.VISIBLE |
102 | 188 | cbVentas.visibility = View.VISIBLE |
103 | 189 | cbDeposito.visibility = View.VISIBLE |
104 | 190 | tvTipo.visibility = View.VISIBLE |
191 | + ivPortada.visibility = View.GONE | |
105 | 192 | tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) -" |
106 | 193 | } else { |
107 | 194 | bAbiertoCerrado = false |
... | ... | @@ -112,18 +199,19 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
112 | 199 | cbVentas.visibility = View.GONE |
113 | 200 | cbDeposito.visibility = View.GONE |
114 | 201 | tvTipo.visibility = View.GONE |
202 | + ivPortada.visibility = View.VISIBLE | |
115 | 203 | tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) +" |
116 | 204 | } |
117 | 205 | } |
118 | - ordenado = inventarios.sortedBy { | |
119 | - it.invNum | |
120 | - } | |
206 | + | |
207 | + ordenado = inventarios!!.sortedBy { it.invNum } | |
208 | + | |
121 | 209 | ivSort19.setOnClickListener { |
122 | - ordenado = inventarios.sortedByDescending { | |
210 | + ordenado = inventarios!!.sortedByDescending { | |
123 | 211 | it.invNum |
124 | 212 | } |
125 | - cbDeposito.isChecked=true | |
126 | - cbVentas.isChecked=true | |
213 | + cbDeposito.isChecked = true | |
214 | + cbVentas.isChecked = true | |
127 | 215 | viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) |
128 | 216 | viewManager = LinearLayoutManager(requireContext()) |
129 | 217 | |
... | ... | @@ -135,12 +223,13 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
135 | 223 | ivSort19.visibility = View.INVISIBLE |
136 | 224 | ivSort91.visibility = View.VISIBLE |
137 | 225 | } |
226 | + | |
138 | 227 | ivSort91.setOnClickListener { |
139 | - ordenado = inventarios.sortedBy { | |
228 | + ordenado = inventarios!!.sortedBy { | |
140 | 229 | it.invNum |
141 | 230 | } |
142 | - cbDeposito.isChecked=true | |
143 | - cbVentas.isChecked=true | |
231 | + cbDeposito.isChecked = true | |
232 | + cbVentas.isChecked = true | |
144 | 233 | viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) |
145 | 234 | viewManager = LinearLayoutManager(requireContext()) |
146 | 235 | |
... | ... | @@ -152,14 +241,36 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
152 | 241 | ivSort91.visibility = View.INVISIBLE |
153 | 242 | ivSort19.visibility = View.VISIBLE |
154 | 243 | } |
244 | + | |
245 | + tvInvImportados.setOnClickListener { | |
246 | + if (!bAbiertoCerradoII) { | |
247 | + bAbiertoCerradoII = true | |
248 | + tvInvDinamicos.visibility = View.GONE | |
249 | + ivSort19.visibility = View.GONE | |
250 | + ivSort91.visibility = View.GONE | |
251 | + cbVentas.visibility = View.GONE | |
252 | + cbDeposito.visibility = View.GONE | |
253 | + ivPortada.visibility = View.GONE | |
254 | + tvInvDinamicos.visibility = View.GONE | |
255 | + rcInventarioII.visibility = View.VISIBLE | |
256 | + tvInvImportados.text = "Inventarios Importados ($cantidadInventariosII) -" | |
257 | + } else { | |
258 | + bAbiertoCerradoII = false | |
259 | + ivPortada.visibility = View.VISIBLE | |
260 | + rcInventarioII.visibility = View.GONE | |
261 | + tvInvImportados.visibility = View.VISIBLE | |
262 | + tvInvDinamicos.visibility = View.VISIBLE | |
263 | + tvInvImportados.text = "Inventarios Importados ($cantidadInventariosII) +" | |
264 | + } | |
265 | + } | |
155 | 266 | } |
156 | 267 | |
157 | 268 | cbVentas.setOnClickListener { |
158 | 269 | if (!cbVentas.isChecked) { |
159 | - cbDeposito.isChecked=true | |
270 | + cbDeposito.isChecked = true | |
160 | 271 | listIvn2.clear() |
161 | 272 | ordenado.forEach { |
162 | - if (it.lugar==true) { | |
273 | + if (it.lugar == true) { | |
163 | 274 | listIvn2.add(it) |
164 | 275 | } |
165 | 276 | } |
... | ... | @@ -178,10 +289,10 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
178 | 289 | |
179 | 290 | cbDeposito.setOnClickListener { |
180 | 291 | if (!cbDeposito.isChecked) { |
181 | - cbVentas.isChecked=true | |
292 | + cbVentas.isChecked = true | |
182 | 293 | listIvn2.clear() |
183 | 294 | ordenado.forEach { |
184 | - if (it.lugar==false) { | |
295 | + if (it.lugar == false) { | |
185 | 296 | listIvn2.add(it) |
186 | 297 | } |
187 | 298 | } |
... | ... | @@ -198,139 +309,20 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
198 | 309 | viewAdapter.notifyDataSetChanged() |
199 | 310 | } |
200 | 311 | |
201 | - GlobalScope.launch(Dispatchers.Main) { | |
202 | - tvInvImportados.text = "Inventarios Inportados ($cantidadInventariosII) +" | |
203 | - tvInvImportados.setOnClickListener { | |
204 | - if (!bAbiertoCerradoII) { | |
205 | - bAbiertoCerradoII = true | |
206 | - tvInvDinamicos.visibility = View.GONE | |
207 | - ivSort19.visibility = View.GONE | |
208 | - ivSort91.visibility = View.GONE | |
209 | - cbVentas.visibility = View.GONE | |
210 | - cbDeposito.visibility = View.GONE | |
211 | - | |
212 | - tvInvDinamicos.visibility = View.GONE | |
213 | - rcInventarioII.visibility = View.VISIBLE | |
214 | - ivSort91II.visibility = View.INVISIBLE | |
215 | - ivSort19II.visibility = View.VISIBLE | |
216 | - cbVentasII.visibility = View.VISIBLE | |
217 | - cbDepositoII.visibility = View.VISIBLE | |
218 | - tvTipoII.visibility = View.VISIBLE | |
219 | - tvInvImportados.text = "Inventarios Inportados ($cantidadInventariosII) -" | |
220 | - } else { | |
221 | - bAbiertoCerradoII = false | |
222 | - rcInventarioII.visibility = View.GONE | |
223 | - ivSort91II.visibility = View.GONE | |
224 | - ivSort19II.visibility = View.GONE | |
225 | - tvInvImportados.visibility = View.VISIBLE | |
226 | - cbVentasII.visibility = View.GONE | |
227 | - cbDepositoII.visibility = View.GONE | |
228 | - tvTipoII.visibility = View.GONE | |
229 | - tvInvDinamicos.visibility = View.VISIBLE | |
230 | - tvInvImportados.text = "Inventarios Inportados ($cantidadInventariosII) +" | |
231 | - } | |
232 | - } | |
233 | - ordenadoII = inventarios.sortedBy { | |
234 | - it.invNum | |
235 | - } | |
236 | - ivSort19II.setOnClickListener { | |
237 | - ordenadoII = inventarios.sortedByDescending { | |
238 | - it.invNum | |
239 | - } | |
240 | - cbDepositoII.isChecked=true | |
241 | - cbVentasII.isChecked=true | |
242 | - viewAdapter = InventarioListAdapter(requireContext(), ordenadoII, this@MainFragment) | |
243 | - viewManager = LinearLayoutManager(requireContext()) | |
244 | - | |
245 | - rcInventarioII.apply { | |
246 | - adapter = viewAdapter | |
247 | - layoutManager = viewManager | |
248 | - } | |
249 | - viewAdapter.notifyDataSetChanged() | |
250 | - ivSort19II.visibility = View.INVISIBLE | |
251 | - ivSort91II.visibility = View.VISIBLE | |
252 | - } | |
253 | - ivSort91II.setOnClickListener { | |
254 | - ordenadoII = inventarios.sortedBy { | |
255 | - it.invNum | |
256 | - } | |
257 | - cbDepositoII.isChecked=true | |
258 | - cbVentasII.isChecked=true | |
259 | - viewAdapter = InventarioListAdapter(requireContext(), ordenadoII, this@MainFragment) | |
260 | - viewManager = LinearLayoutManager(requireContext()) | |
261 | - | |
262 | - rcInventarioII.apply { | |
263 | - adapter = viewAdapter | |
264 | - layoutManager = viewManager | |
265 | - } | |
266 | - viewAdapter.notifyDataSetChanged() | |
267 | - ivSort91.visibility = View.INVISIBLE | |
268 | - ivSort19.visibility = View.VISIBLE | |
269 | - } | |
270 | - } | |
271 | - | |
272 | - cbVentasII.setOnClickListener { | |
273 | - if (!cbVentasII.isChecked) { | |
274 | - cbDepositoII.isChecked=true | |
275 | - listIvn2II.clear() | |
276 | - ordenadoII.forEach { | |
277 | - if (it.lugar==true) { | |
278 | - listIvn2II.add(it) | |
279 | - } | |
280 | - } | |
281 | - } else { | |
282 | - listIvn2II.clear() | |
283 | - listIvn2II.addAll(ordenadoII) | |
284 | - } | |
285 | - viewAdapter = InventarioListAdapter(requireContext(), listIvn2II, this@MainFragment) | |
286 | - viewManager = LinearLayoutManager(requireContext()) | |
287 | - rcInventarioII.apply { | |
288 | - adapter = viewAdapter | |
289 | - layoutManager = viewManager | |
290 | - } | |
291 | - viewAdapter.notifyDataSetChanged() | |
292 | - } | |
293 | - | |
294 | - cbDepositoII.setOnClickListener { | |
295 | - if (!cbDepositoII.isChecked) { | |
296 | - cbVentasII.isChecked=true | |
297 | - listIvn2II.clear() | |
298 | - ordenadoII.forEach { | |
299 | - if (it.lugar==false) { | |
300 | - listIvn2II.add(it) | |
301 | - } | |
302 | - } | |
303 | - } else { | |
304 | - listIvn2II.clear() | |
305 | - listIvn2II.addAll(ordenadoII) | |
306 | - } | |
307 | - viewAdapter = InventarioListAdapter(requireContext(), listIvn2II, this@MainFragment) | |
308 | - viewManager = LinearLayoutManager(requireContext()) | |
309 | - rcInventarioII.apply { | |
310 | - adapter = viewAdapter | |
311 | - layoutManager = viewManager | |
312 | - } | |
313 | - viewAdapter.notifyDataSetChanged() | |
314 | - } | |
315 | 312 | return v |
316 | 313 | } |
317 | 314 | |
318 | - suspend fun buscarEnBDInvHead(): List<InvHead> { | |
319 | - //TODO BUSQUEDA POR DESCRIPCION | |
320 | - var busqueda: List<InvHead> | |
321 | - return GlobalScope.async(Dispatchers.IO) { | |
322 | - busqueda = AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.fetchAllInvHead() | |
323 | - return@async busqueda | |
324 | - }.await() | |
315 | + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | |
316 | + super.onViewCreated(view, savedInstanceState) | |
317 | + navController = Navigation.findNavController(view) | |
318 | + listIvn2.clear() | |
319 | + listIvn2II.clear() | |
320 | + ivPortada.visibility = View.VISIBLE | |
325 | 321 | } |
326 | 322 | |
327 | 323 | fun cargarRecicler(inv: InvHead) { |
328 | 324 | //TODO CARGO EN LE RV |
329 | 325 | |
330 | -// val number = if (inv.invNum.toLong() < 10) "0${inv.invNum.toLong()}" else inv.invNum.toString() | |
331 | -// val item = ItemInventario("N° $number ${inv.descripcion}. Fecha: ${inv.fechaFinal}") | |
332 | - | |
333 | -// listIvn.add(item) | |
334 | 326 | listIvn2.add(inv) |
335 | 327 | viewAdapter = InventarioListAdapter(requireContext(), listIvn2, this) |
336 | 328 | viewManager = LinearLayoutManager(requireContext()) |
... | ... | @@ -341,23 +333,101 @@ class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener |
341 | 333 | } |
342 | 334 | } |
343 | 335 | |
344 | - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | |
345 | - super.onViewCreated(view, savedInstanceState) | |
346 | - navController = Navigation.findNavController(view) | |
347 | - listIvn2.clear() | |
336 | + fun cargarReciclerII(inv: InvHeadSec) { | |
337 | + //TODO CARGO EN LE RV | |
338 | + | |
339 | + listIvn2II.add(inv) | |
340 | + viewAdapter = InventarioSecListAdapter(requireContext(), listIvn2II, this) | |
341 | + viewManager = LinearLayoutManager(requireContext()) | |
342 | + | |
343 | + rcInventarioII.apply { | |
344 | + adapter = viewAdapter | |
345 | + layoutManager = viewManager | |
346 | + } | |
348 | 347 | } |
349 | 348 | |
350 | 349 | override fun onItemClick(inventario: String?) { |
351 | - | |
352 | 350 | val editor = sharedPreferences.edit() |
353 | -// var invSel: String = inventario.toString() | |
354 | -// invSel = invSel.substring(3, 5) | |
355 | 351 | editor?.putString("Inventario", inventario) |
356 | 352 | editor?.apply() |
357 | 353 | editor.commit() |
358 | 354 | navController.navigate(R.id.action_mainFragment2_to_inventarioFragment) |
359 | 355 | } |
360 | 356 | |
357 | + override fun onItemSecClick(inventario: String?, nombre: String?) { | |
358 | + val editor = sharedPreferences.edit() | |
359 | + editor?.putString("InventarioSecNum", inventario) | |
360 | + editor?.putString("InventarioSecNom", nombre) | |
361 | + editor?.apply() | |
362 | + editor.commit() | |
363 | + navController.navigate(R.id.action_mainFragment2_to_invSecFragment) | |
364 | + } | |
365 | + | |
366 | + private suspend fun buscarEnBDInvHead(): List<InvHead> { | |
367 | + //TODO BUSQUEDA POR DESCRIPCION | |
368 | + var busqueda: List<InvHead> | |
369 | + return fragmentScopeMain.async(Dispatchers.IO) { | |
370 | + busqueda = AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.fetchAllInvHead() | |
371 | + return@async busqueda | |
372 | + }.await() | |
373 | + } | |
374 | + | |
375 | + private suspend fun buscarEnBDInvSecHead(): List<InvHeadSec> { | |
376 | + //TODO BUSQUEDA POR DESCRIPCION | |
377 | + var busqueda: List<InvHeadSec> | |
378 | + return fragmentScopeMain.async(Dispatchers.IO) { | |
379 | + busqueda = AppDb.getAppDb(requireContext())!!.InvHeadSecDAO()!!.fetchAllInvSecHead() | |
380 | + return@async busqueda | |
381 | + }.await() | |
382 | + } | |
383 | + | |
384 | + | |
385 | +private suspend fun fetchServerPreOne(): ServeInv? { | |
386 | + return fragmentScopeMain.async(Dispatchers.IO) { | |
387 | + return@async AppDb.getAppDb(requireContext())!!.ServeInvDao()!!.fetchServerPreOne() | |
388 | + }.await() | |
389 | +} | |
390 | + | |
391 | + | |
392 | + private fun askTimeServer(timeServer: String, horaServer: String, fechaServer: String): Boolean { | |
393 | + | |
394 | + var existeDiferencias = false | |
395 | + val horaAct = obtenerHoraActual().toDouble() | |
396 | + val fechaAct = obtenerDiaActual().toDouble() | |
397 | + val difFecha = fechaAct - fechaServer.toDouble() | |
398 | + val difHora = horaAct - horaServer.toDouble() | |
399 | + if (difFecha.absoluteValue > 0) existeDiferencias = true | |
400 | + if (difHora.absoluteValue > 130) existeDiferencias = true | |
401 | + | |
402 | + if (existeDiferencias) { | |
403 | + dialogoHoraServer((activity as MainActivity), requireContext(), obtenerFechaActual(), timeServer) | |
404 | + } | |
405 | + | |
406 | + return existeDiferencias | |
407 | + } | |
361 | 408 | |
409 | +//private fun dialogoHoraServerLocal(reqActivity: FragmentActivity, context: Context, fechaHoraDispositivo: String, fechaHoraServer: String) { | |
410 | +// val mDialogView: View = LayoutInflater.from(context).inflate(R.layout.solicitar_fecha, null) | |
411 | +// val mBuilder = AlertDialog.Builder(context).setView(mDialogView).setCancelable(false) | |
412 | +// | |
413 | +// mDialogView.tvHoraDispositivo.text = fechaHoraDispositivo | |
414 | +// mDialogView.tvHoraServidor.text = fechaHoraServer | |
415 | +// val mAlertDialog = mBuilder.show() | |
416 | +// val imm = reqActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager? | |
417 | +// imm!!.hideSoftInputFromWindow(reqActivity.currentFocus?.windowToken, InputMethodManager.HIDE_IMPLICIT_ONLY ) | |
418 | +// | |
419 | +//// mAlertDialog?.window!!.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) | |
420 | +//// mAlertDialog.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) | |
421 | +// | |
422 | +// | |
423 | +// mDialogView.btnCambiarHora.setOnClickListener { | |
424 | +// context.startActivity(Intent(Settings.ACTION_DATE_SETTINGS)) | |
425 | +// mAlertDialog.dismiss() | |
426 | +// } | |
427 | +// | |
428 | +// mDialogView.btnSalir.setOnClickListener { | |
429 | +// mAlertDialog.dismiss() | |
430 | +// } | |
431 | +//} | |
362 | 432 | } |
363 | 433 |
app/src/main/java/com/focasoftware/deboinventariov20/UI/servidores/AdapterServidores.kt
... | ... | @@ -17,8 +17,8 @@ class AdapterServidores(private val servidor: ArrayList<ItemsServidores>, privat |
17 | 17 | fun bind(itemsServidores: ItemsServidores) { |
18 | 18 | vista.tvDescServidor.text = itemsServidores.descripcion |
19 | 19 | vista.tvDireccionServidor.text = itemsServidores.direccion |
20 | - vista.tvPuertoServidor.text = itemsServidores.puerto | |
21 | - | |
20 | + vista.tvPuertoBajada.text = itemsServidores.puertoBajada | |
21 | + vista.tvPuertoSubida.text = itemsServidores.puertoSubida | |
22 | 22 | } |
23 | 23 | } |
24 | 24 |
app/src/main/java/com/focasoftware/deboinventariov20/UI/servidores/ItemsServidores.kt
1 | 1 | package com.focasoftware.deboinventariov20.UI.servidores |
2 | 2 | |
3 | -data class ItemsServidores(val descripcion: String?, var direccion: String?, var puerto: String?, var predeterminado: String?) | |
4 | 3 | \ No newline at end of file |
4 | +data class ItemsServidores(val descripcion: String?, var direccion: String?, var puertoSubida: String?, var puertoBajada: String?, var predeterminado: String?) | |
5 | 5 | \ No newline at end of file |
app/src/main/java/com/focasoftware/deboinventariov20/UI/servidores/ServidoresFragment.kt
... | ... | @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView |
17 | 17 | import com.focasoftware.deboinventariov20.DB.DataBase.AppDb |
18 | 18 | import com.focasoftware.deboinventariov20.Model.ServeInv |
19 | 19 | import com.focasoftware.deboinventariov20.R |
20 | +import com.focasoftware.deboinventariov20.UI.Utils.hideSoftKeyboard | |
20 | 21 | import kotlinx.android.synthetic.main.fragment_servidores.* |
21 | 22 | import kotlinx.coroutines.* |
22 | 23 | |
... | ... | @@ -31,7 +32,8 @@ class ServidoresFragment : Fragment() { |
31 | 32 | |
32 | 33 | override fun onCreate(savedInstanceState: Bundle?) { |
33 | 34 | super.onCreate(savedInstanceState) |
34 | - CargarRV() | |
35 | +// hideSoftKeyboard() | |
36 | + loadRV() | |
35 | 37 | } |
36 | 38 | |
37 | 39 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
... | ... | @@ -51,13 +53,18 @@ class ServidoresFragment : Fragment() { |
51 | 53 | if (!etDireccionServidor.text.isNullOrBlank() || !etNombreServidor.text.isNullOrBlank()) { |
52 | 54 | // GlobalScope.launch(Dispatchers.Main) { |
53 | 55 | // ServerNew =AppDb.getAppDb(requireContext())?.ServeInvDao()?.findLastServer()?.plus(1) ?: 1 |
54 | - val servidor = ServeInv(etNombreServidor.text.toString(), "http://${etDireccionServidor.text}", | |
55 | - etPuerto.text.toString(),0) | |
56 | - ingresarDatos(servidor) | |
57 | - cargarRecicler(servidor) | |
58 | - Toast.makeText(requireContext(), "Servidor ${etNombreServidor.text} Guardado", Toast.LENGTH_LONG).show() | |
56 | + val servidor = ServeInv( | |
57 | + etNombreServidor.text.toString(), "http://${etDireccionServidor.text}", | |
58 | + etPuertoSubida.text.toString(), etPuertoBajada.text.toString(), 0 | |
59 | + ) | |
60 | + inputData(servidor) | |
61 | + continueLoadRV(servidor) | |
62 | + Toast.makeText(requireContext(), "Servidor ${etNombreServidor.text} Guardado", Toast.LENGTH_SHORT).show() | |
59 | 63 | etNombreServidor.text.clear() |
60 | 64 | etDireccionServidor.text.clear() |
65 | + etPuertoBajada.text.clear() | |
66 | + etPuertoSubida.text.clear() | |
67 | + | |
61 | 68 | // } |
62 | 69 | } |
63 | 70 | } |
... | ... | @@ -69,13 +76,13 @@ class ServidoresFragment : Fragment() { |
69 | 76 | return v |
70 | 77 | } |
71 | 78 | |
72 | - fun ingresarDatos(servidor: ServeInv) { | |
79 | + private fun inputData(servidor: ServeInv) { | |
73 | 80 | val Job = GlobalScope.launch { |
74 | 81 | AppDb.getAppDb(requireActivity())!!.ServeInvDao()!!.insertServer(servidor) |
75 | 82 | } |
76 | 83 | } |
77 | 84 | |
78 | - suspend fun buscarEnBD(): List<ServeInv> { | |
85 | + private suspend fun buscarEnBD(): List<ServeInv> { | |
79 | 86 | var busqueda: List<ServeInv> |
80 | 87 | return GlobalScope.async(Dispatchers.IO) { |
81 | 88 | busqueda = AppDb.getAppDb(requireContext())!!.ServeInvDao()!!.fetchAllServers() |
... | ... | @@ -83,20 +90,20 @@ class ServidoresFragment : Fragment() { |
83 | 90 | }.await() |
84 | 91 | } |
85 | 92 | |
86 | - fun CargarRV() { | |
93 | + private fun loadRV() { | |
87 | 94 | GlobalScope.launch(Dispatchers.Main) { |
88 | 95 | servidores = buscarEnBD() |
89 | 96 | for ((i, item) in servidores.withIndex()) { |
90 | - val ser = ServeInv(servidores[i].descripcion, servidores[i].direccion,servidores[i].puerto, servidores[i].predeterminado) | |
91 | - cargarRecicler(ser) | |
97 | + val ser = ServeInv(servidores[i].descripcion, servidores[i].direccion, servidores[i].puertoSubida, servidores[i].puertoBajada, servidores[i].predeterminado) | |
98 | + continueLoadRV(ser) | |
92 | 99 | } |
93 | 100 | } |
94 | 101 | } |
95 | 102 | |
96 | - fun cargarRecicler(ser: ServeInv) { | |
103 | + private fun continueLoadRV(ser: ServeInv) { | |
97 | 104 | //TODO CARGO EN LE RV |
98 | 105 | deleteIcon = ContextCompat.getDrawable(requireContext(), R.drawable.borrar)!! |
99 | - val item = ItemsServidores(ser.descripcion, ser.direccion, ser.puerto.toString(),ser.predeterminado.toString()) | |
106 | + val item = ItemsServidores(ser.descripcion, ser.direccion, ser.puertoSubida.toString(), ser.puertoBajada.toString(), ser.predeterminado.toString()) | |
100 | 107 | |
101 | 108 | listServ.add(item) |
102 | 109 |
app/src/main/res/drawable/error.png
569 KB
app/src/main/res/drawable/error_fecha_hora.png
2.54 KB
app/src/main/res/drawable/imagen_portada.jpg
35.3 KB
app/src/main/res/layout-land/fragment_configuracion.xml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | -<ScrollView | |
2 | +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | 3 | xmlns:app="http://schemas.android.com/apk/res-auto" |
4 | 4 | xmlns:tools="http://schemas.android.com/tools" |
5 | - tools:context=".UI.configuracion.ConfiguracionFragment" | |
6 | - xmlns:android="http://schemas.android.com/apk/res/android" | |
7 | 5 | android:layout_width="match_parent" |
8 | - android:layout_height="wrap_content"> | |
6 | + android:layout_height="wrap_content" | |
7 | + tools:context=".UI.configuracion.ConfiguracionFragment"> | |
9 | 8 | |
10 | -<androidx.constraintlayout.widget.ConstraintLayout | |
11 | - android:layout_width="match_parent" | |
12 | - android:layout_height="wrap_content"> | |
13 | - | |
14 | - <androidx.appcompat.widget.AppCompatTextView | |
15 | - android:id="@+id/textView2" | |
9 | + <androidx.constraintlayout.widget.ConstraintLayout | |
16 | 10 | android:layout_width="match_parent" |
17 | - android:layout_height="wrap_content" | |
18 | - android:layout_marginTop="@dimen/MarginTopTitulos" | |
19 | - android:gravity="center" | |
20 | - android:lines="1" | |
21 | - android:text="@string/tvTituloConf" | |
22 | - android:textColor="@color/colorAccent" | |
23 | - android:textSize="@dimen/Titulos" | |
24 | - app:fontFamily="sans-serif-condensed" | |
25 | - app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" | |
26 | - app:layout_constraintEnd_toEndOf="parent" | |
27 | - app:layout_constraintStart_toStartOf="parent" | |
28 | - app:layout_constraintTop_toTopOf="parent" /> | |
29 | - | |
30 | - <TextView | |
31 | - android:id="@+id/tvSeleccioneServidor" | |
32 | - android:layout_width="0dp" | |
33 | - android:layout_height="wrap_content" | |
34 | - | |
35 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
36 | - android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
37 | - android:gravity="start" | |
38 | - android:lines="1" | |
39 | - android:text="@string/tvSeleccioneServidor" | |
40 | - android:textColor="@android:color/black" | |
41 | - android:textSize="@dimen/SubTitulos" | |
42 | - app:fontFamily="sans-serif-condensed" | |
43 | - app:layout_constraintBottom_toTopOf="@+id/spServidor" | |
44 | - app:layout_constraintEnd_toEndOf="parent" | |
45 | - app:layout_constraintStart_toStartOf="parent" | |
46 | - app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
47 | - | |
48 | - <Spinner | |
49 | - android:id="@+id/spServidor" | |
50 | - android:layout_width="0dp" | |
51 | - android:layout_height="wrap_content" | |
52 | - android:backgroundTint="@color/LightGray" | |
53 | - android:elevation="5dp" | |
54 | - android:fadeScrollbars="true" | |
55 | - android:foregroundTint="@android:color/holo_orange_dark" | |
56 | - android:soundEffectsEnabled="true" | |
57 | - android:spinnerMode="dialog" | |
58 | - android:splitMotionEvents="false" | |
59 | - android:textAlignment="center" | |
60 | - android:textSize="@dimen/NormalText" | |
61 | - app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
62 | - app:layout_constraintEnd_toStartOf="@+id/btnValidarServidor" | |
63 | - app:layout_constraintHorizontal_chainStyle="packed" | |
64 | - app:layout_constraintStart_toStartOf="parent" | |
65 | - app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" | |
66 | - android:prompt="@string/leyendaSpinner"/> | |
67 | - | |
68 | - <Button | |
69 | - android:id="@+id/btnValidarServidor" | |
70 | - android:layout_width="wrap_content" | |
71 | - android:layout_height="wrap_content" | |
72 | - android:textColor="@android:color/white" | |
73 | - android:padding="10dp" | |
74 | - android:background="@drawable/boton_borde_redondeado" | |
75 | - android:text="@string/btnValidarServidor" | |
76 | - android:textSize="@dimen/NormalText" | |
77 | - app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
78 | - app:layout_constraintEnd_toEndOf="parent" | |
79 | - app:layout_constraintHorizontal_chainStyle="packed" | |
80 | - app:layout_constraintStart_toEndOf="@id/spServidor" | |
81 | - app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
82 | - | |
83 | - <Button | |
84 | - android:id="@+id/btnAgregarServidor" | |
85 | - android:layout_width="0dp" | |
86 | - android:layout_height="wrap_content" | |
87 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
88 | - android:layout_marginEnd="@dimen/MarginBotAgreSer" | |
89 | - android:text="@string/btnAgregarServidor" | |
90 | - android:textSize="@dimen/NormalText" | |
91 | - android:textColor="@android:color/white" | |
92 | - android:padding="10dp" | |
93 | - android:background="@drawable/boton_borde_redondeado" | |
94 | - app:layout_constraintBottom_toTopOf="@+id/tvUbicacionCarpetas" | |
95 | - app:layout_constraintEnd_toEndOf="parent" | |
96 | - app:layout_constraintStart_toStartOf="parent" | |
97 | - app:layout_constraintTop_toBottomOf="@+id/btnValidarServidor" /> | |
98 | - | |
99 | - | |
100 | - <TextView | |
101 | - android:id="@+id/tvUbicacionCarpetas" | |
102 | - android:layout_width="0dp" | |
103 | - android:layout_height="wrap_content" | |
104 | - | |
105 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
106 | - android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
107 | - android:gravity="start" | |
108 | - android:lines="1" | |
109 | - android:text="@string/tvUbicacionCarpetas" | |
110 | - android:textColor="@android:color/black" | |
111 | - android:textSize="@dimen/SubTitulos" | |
112 | - app:fontFamily="sans-serif-condensed" | |
113 | - app:layout_constraintBottom_toTopOf="@+id/ibSearch" | |
114 | - app:layout_constraintEnd_toEndOf="parent" | |
115 | - app:layout_constraintStart_toStartOf="parent" | |
116 | - app:layout_constraintTop_toBottomOf="@+id/btnAgregarServidor" /> | |
117 | - | |
118 | - <ImageButton | |
119 | - android:id="@+id/ibSearch" | |
120 | - android:layout_width="36dp" | |
121 | - android:layout_height="37dp" | |
122 | - android:layout_margin="10dp" | |
123 | - android:src="@drawable/search" | |
124 | - android:textColor="@android:color/white" | |
125 | - android:padding="10dp" | |
126 | - android:background="@drawable/boton_borde_redondeado" | |
127 | - app:layout_constraintEnd_toStartOf="@+id/etRuta" | |
128 | - app:layout_constraintStart_toStartOf="parent" | |
129 | - app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
130 | - | |
131 | - <EditText | |
132 | - android:id="@+id/etRuta" | |
133 | - android:layout_width="0dp" | |
134 | - android:layout_height="wrap_content" | |
135 | - android:layout_marginTop="10dp" | |
136 | - android:layout_marginEnd="10dp" | |
137 | - android:clickable="true" | |
138 | - android:ems="10" | |
139 | - android:focusable="true" | |
140 | - android:inputType="textPersonName" | |
141 | - android:lines="1" | |
142 | - android:text="" | |
143 | - android:textSize="@dimen/NormalText" | |
144 | - app:layout_constraintEnd_toEndOf="parent" | |
145 | - app:layout_constraintStart_toEndOf="@id/ibSearch" | |
146 | - app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
147 | - | |
148 | - <TextView | |
149 | - android:id="@+id/tvActuFecha" | |
150 | - android:layout_width="0dp" | |
151 | - android:layout_height="wrap_content" | |
152 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
153 | - android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
154 | - android:gravity="start" | |
155 | - android:lines="1" | |
156 | - android:text="@string/tvTituloArea" | |
157 | - android:textColor="@android:color/black" | |
158 | - android:textSize="@dimen/SubTitulos" | |
159 | - app:fontFamily="sans-serif-condensed" | |
160 | - app:layout_constraintEnd_toEndOf="parent" | |
161 | - app:layout_constraintStart_toStartOf="parent" | |
162 | - app:layout_constraintTop_toBottomOf="@+id/etRuta" /> | |
163 | - | |
164 | - <RadioGroup | |
165 | - android:id="@+id/rgFechaHora" | |
166 | - android:layout_width="0dp" | |
167 | - android:layout_height="wrap_content" | |
168 | - | |
169 | - android:gravity="center" | |
170 | - android:orientation="horizontal" | |
171 | - app:layout_constraintEnd_toEndOf="parent" | |
172 | - app:layout_constraintStart_toStartOf="parent" | |
173 | - app:layout_constraintTop_toBottomOf="@+id/tvActuFecha"> | |
174 | - | |
175 | - <RadioButton | |
176 | - android:id="@+id/rbVentas" | |
177 | - android:layout_width="wrap_content" | |
11 | + android:layout_height="wrap_content"> | |
12 | + | |
13 | + <androidx.appcompat.widget.AppCompatTextView | |
14 | + android:id="@+id/textView2" | |
15 | + android:layout_width="match_parent" | |
16 | + android:layout_height="wrap_content" | |
17 | + android:layout_marginTop="@dimen/MarginTopTitulos" | |
18 | + android:gravity="center" | |
19 | + android:lines="1" | |
20 | + android:text="@string/tvTituloConf" | |
21 | + android:textColor="@color/colorAccent" | |
22 | + android:textSize="@dimen/Titulos" | |
23 | + app:fontFamily="sans-serif-condensed" | |
24 | + app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" | |
25 | + app:layout_constraintEnd_toEndOf="parent" | |
26 | + app:layout_constraintStart_toStartOf="parent" | |
27 | + app:layout_constraintTop_toTopOf="parent" /> | |
28 | + | |
29 | + <TextView | |
30 | + android:id="@+id/tvSeleccioneServidor" | |
31 | + android:layout_width="0dp" | |
32 | + android:layout_height="wrap_content" | |
33 | + | |
34 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
35 | + android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
36 | + android:gravity="start" | |
37 | + android:lines="1" | |
38 | + android:text="@string/tvSeleccioneServidor" | |
39 | + android:textColor="@android:color/black" | |
40 | + android:textSize="@dimen/SubTitulos" | |
41 | + app:fontFamily="sans-serif-condensed" | |
42 | + app:layout_constraintBottom_toTopOf="@+id/spServidor" | |
43 | + app:layout_constraintEnd_toEndOf="parent" | |
44 | + app:layout_constraintStart_toStartOf="parent" | |
45 | + app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
46 | + | |
47 | + <Spinner | |
48 | + android:id="@+id/spServidor" | |
49 | + android:layout_width="0dp" | |
178 | 50 | android:layout_height="wrap_content" |
179 | - android:layout_margin="5dp" | |
180 | - android:checked="true" | |
181 | - android:padding="5dp" | |
182 | - android:text="@string/rbVentas" | |
183 | - android:textSize="@dimen/NormalText" /> | |
184 | - | |
185 | - <RadioButton | |
186 | - android:id="@+id/rbDeposito" | |
51 | + android:backgroundTint="@color/LightGray" | |
52 | + android:elevation="5dp" | |
53 | + android:fadeScrollbars="true" | |
54 | + android:foregroundTint="@android:color/holo_orange_dark" | |
55 | + android:prompt="@string/leyendaSpinner" | |
56 | + android:soundEffectsEnabled="true" | |
57 | + android:spinnerMode="dialog" | |
58 | + android:splitMotionEvents="false" | |
59 | + android:textAlignment="center" | |
60 | + android:textSize="@dimen/NormalText" | |
61 | + app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
62 | + app:layout_constraintEnd_toStartOf="@+id/btnValidarServidor" | |
63 | + app:layout_constraintHorizontal_chainStyle="packed" | |
64 | + app:layout_constraintStart_toStartOf="parent" | |
65 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
66 | + | |
67 | + <Button | |
68 | + android:id="@+id/btnValidarServidor" | |
187 | 69 | android:layout_width="wrap_content" |
188 | 70 | android:layout_height="wrap_content" |
189 | - android:layout_margin="5dp" | |
190 | - android:checked="false" | |
191 | - android:padding="5dp" | |
192 | - android:text="@string/rbDeposito" | |
193 | - android:textSize="@dimen/NormalText" /> | |
194 | - | |
195 | - </RadioGroup> | |
196 | - | |
197 | - <TextView | |
198 | - android:id="@+id/tvLosProductos" | |
199 | - android:layout_width="0dp" | |
200 | - android:layout_height="wrap_content" | |
201 | - | |
202 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
203 | - android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
204 | - android:gravity="start" | |
205 | - android:lines="1" | |
206 | - android:text="@string/tvLosProductos" | |
207 | - android:textColor="@android:color/black" | |
208 | - android:textSize="@dimen/SubTitulos" | |
209 | - app:fontFamily="sans-serif-condensed" | |
210 | - app:layout_constraintEnd_toEndOf="parent" | |
211 | - app:layout_constraintStart_toStartOf="parent" | |
212 | - app:layout_constraintTop_toBottomOf="@+id/rgFechaHora" /> | |
213 | - | |
214 | - <RadioGroup | |
215 | - android:id="@+id/rgLosProductos" | |
216 | - android:layout_width="0dp" | |
217 | - android:layout_height="wrap_content" | |
218 | - | |
219 | - android:gravity="center" | |
220 | - android:orientation="vertical" | |
221 | - app:layout_constraintEnd_toEndOf="parent" | |
222 | - app:layout_constraintStart_toStartOf="parent" | |
223 | - app:layout_constraintTop_toBottomOf="@+id/tvLosProductos"> | |
224 | - | |
225 | - <RadioButton | |
226 | - android:id="@+id/rbProInclu" | |
227 | - android:layout_width="match_parent" | |
71 | + android:background="@drawable/boton_borde_redondeado" | |
72 | + android:padding="10dp" | |
73 | + android:text="@string/btnValidarServidor" | |
74 | + android:textColor="@android:color/white" | |
75 | + android:textSize="@dimen/NormalText" | |
76 | + app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
77 | + app:layout_constraintEnd_toEndOf="parent" | |
78 | + app:layout_constraintHorizontal_chainStyle="packed" | |
79 | + app:layout_constraintStart_toEndOf="@id/spServidor" | |
80 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
81 | + | |
82 | + <Button | |
83 | + android:id="@+id/btnAgregarServidor" | |
84 | + android:layout_width="0dp" | |
85 | + android:layout_height="wrap_content" | |
86 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
87 | + android:layout_marginEnd="@dimen/MarginBotAgreSer" | |
88 | + android:background="@drawable/boton_borde_redondeado" | |
89 | + android:padding="10dp" | |
90 | + android:text="@string/btnAgregarServidor" | |
91 | + android:textColor="@android:color/white" | |
92 | + android:textSize="@dimen/NormalText" | |
93 | + app:layout_constraintBottom_toTopOf="@+id/tvUbicacionCarpetas" | |
94 | + app:layout_constraintEnd_toEndOf="parent" | |
95 | + app:layout_constraintStart_toStartOf="parent" | |
96 | + app:layout_constraintTop_toBottomOf="@+id/btnValidarServidor" /> | |
97 | + | |
98 | + | |
99 | + <TextView | |
100 | + android:id="@+id/tvUbicacionCarpetas" | |
101 | + android:layout_width="0dp" | |
102 | + android:layout_height="wrap_content" | |
103 | + android:visibility="gone" | |
104 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
105 | + android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
106 | + android:gravity="start" | |
107 | + android:lines="1" | |
108 | + android:text="@string/tvUbicacionCarpetas" | |
109 | + android:textColor="@android:color/black" | |
110 | + android:textSize="@dimen/SubTitulos" | |
111 | + app:fontFamily="sans-serif-condensed" | |
112 | + app:layout_constraintBottom_toTopOf="@+id/ibSearch" | |
113 | + app:layout_constraintEnd_toEndOf="parent" | |
114 | + app:layout_constraintStart_toStartOf="parent" | |
115 | + app:layout_constraintTop_toBottomOf="@+id/btnAgregarServidor" /> | |
116 | + | |
117 | + <ImageButton | |
118 | + android:id="@+id/ibSearch" | |
119 | + android:layout_width="36dp" | |
120 | + android:layout_height="37dp" | |
121 | + android:layout_margin="10dp" | |
122 | + android:background="@drawable/boton_borde_redondeado" | |
123 | + android:padding="10dp" | |
124 | + android:visibility="gone" | |
125 | + android:src="@drawable/search" | |
126 | + android:textColor="@android:color/white" | |
127 | + app:layout_constraintEnd_toStartOf="@+id/etRuta" | |
128 | + app:layout_constraintStart_toStartOf="parent" | |
129 | + app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
130 | + | |
131 | + <EditText | |
132 | + android:id="@+id/etRuta" | |
133 | + android:layout_width="0dp" | |
134 | + android:layout_height="wrap_content" | |
135 | + android:layout_marginTop="10dp" | |
136 | + android:layout_marginEnd="10dp" | |
137 | + android:clickable="true" | |
138 | + android:ems="10" | |
139 | + android:focusable="true" | |
140 | + android:inputType="textPersonName" | |
141 | + android:lines="1" | |
142 | + android:text="" | |
143 | + android:visibility="gone" | |
144 | + android:textSize="@dimen/NormalText" | |
145 | + app:layout_constraintEnd_toEndOf="parent" | |
146 | + app:layout_constraintStart_toEndOf="@id/ibSearch" | |
147 | + app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
148 | + | |
149 | + <TextView | |
150 | + android:id="@+id/tvActuFecha" | |
151 | + android:layout_width="0dp" | |
152 | + android:layout_height="wrap_content" | |
153 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
154 | + android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
155 | + android:gravity="start" | |
156 | + android:lines="1" | |
157 | + android:text="@string/tvTituloArea" | |
158 | + android:textColor="@android:color/black" | |
159 | + android:textSize="@dimen/SubTitulos" | |
160 | + app:fontFamily="sans-serif-condensed" | |
161 | + app:layout_constraintEnd_toEndOf="parent" | |
162 | + app:layout_constraintStart_toStartOf="parent" | |
163 | + app:layout_constraintTop_toBottomOf="@+id/etRuta" /> | |
164 | + | |
165 | + <RadioGroup | |
166 | + android:id="@+id/rgFechaHora" | |
167 | + android:layout_width="0dp" | |
228 | 168 | android:layout_height="wrap_content" |
229 | 169 | |
170 | + android:gravity="center" | |
171 | + android:orientation="horizontal" | |
172 | + app:layout_constraintEnd_toEndOf="parent" | |
173 | + app:layout_constraintStart_toStartOf="parent" | |
174 | + app:layout_constraintTop_toBottomOf="@+id/tvActuFecha"> | |
175 | + | |
176 | + <RadioButton | |
177 | + android:id="@+id/rbVentas" | |
178 | + android:layout_width="wrap_content" | |
179 | + android:layout_height="wrap_content" | |
180 | + android:layout_margin="5dp" | |
181 | + android:checked="true" | |
182 | + android:padding="5dp" | |
183 | + android:text="@string/rbVentas" | |
184 | + android:textSize="@dimen/NormalText" /> | |
185 | + | |
186 | + <RadioButton | |
187 | + android:id="@+id/rbDeposito" | |
188 | + android:layout_width="wrap_content" | |
189 | + android:layout_height="wrap_content" | |
190 | + android:layout_margin="5dp" | |
191 | + android:checked="false" | |
192 | + android:padding="5dp" | |
193 | + android:text="@string/rbDeposito" | |
194 | + android:textSize="@dimen/NormalText" /> | |
195 | + | |
196 | + </RadioGroup> | |
197 | + | |
198 | + <TextView | |
199 | + android:id="@+id/tvLosProductos" | |
200 | + android:layout_width="0dp" | |
201 | + android:layout_height="wrap_content" | |
202 | + | |
203 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
204 | + android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
205 | + android:gravity="start" | |
206 | + android:lines="1" | |
207 | + android:text="@string/tvLosProductos" | |
208 | + android:textColor="@android:color/black" | |
209 | + android:textSize="@dimen/SubTitulos" | |
210 | + app:fontFamily="sans-serif-condensed" | |
211 | + app:layout_constraintEnd_toEndOf="parent" | |
212 | + app:layout_constraintStart_toStartOf="parent" | |
213 | + app:layout_constraintTop_toBottomOf="@+id/rgFechaHora" /> | |
214 | + | |
215 | + <RadioGroup | |
216 | + android:id="@+id/rgLosProductos" | |
217 | + android:layout_width="0dp" | |
218 | + android:layout_height="wrap_content" | |
219 | + | |
220 | + android:gravity="center" | |
221 | + android:orientation="vertical" | |
222 | + app:layout_constraintEnd_toEndOf="parent" | |
223 | + app:layout_constraintStart_toStartOf="parent" | |
224 | + app:layout_constraintTop_toBottomOf="@+id/tvLosProductos"> | |
225 | + | |
226 | + <RadioButton | |
227 | + android:id="@+id/rbProInclu" | |
228 | + android:layout_width="match_parent" | |
229 | + android:layout_height="wrap_content" | |
230 | + | |
231 | + android:layout_margin="@dimen/PadingCbyRb" | |
232 | + android:checked="true" | |
233 | + android:padding="@dimen/PadingCbyRb" | |
234 | + android:text="@string/rbProInclu" | |
235 | + android:textSize="@dimen/NormalText" /> | |
236 | + | |
237 | + <RadioButton | |
238 | + android:id="@+id/rbProNoInclu" | |
239 | + android:layout_width="match_parent" | |
240 | + android:layout_height="wrap_content" | |
241 | + android:layout_margin="@dimen/PadingCbyRb" | |
242 | + android:checked="false" | |
243 | + android:padding="@dimen/PadingCbyRb" | |
244 | + android:text="@string/rbProNoInclu" | |
245 | + android:textSize="@dimen/NormalText" /> | |
246 | + | |
247 | + </RadioGroup> | |
248 | + | |
249 | + <CheckBox | |
250 | + android:id="@+id/cbHabiLectura" | |
251 | + android:layout_width="0dp" | |
252 | + android:layout_height="wrap_content" | |
230 | 253 | android:layout_margin="@dimen/PadingCbyRb" |
231 | - android:checked="true" | |
232 | 254 | android:padding="@dimen/PadingCbyRb" |
233 | - android:text="@string/rbProInclu" | |
234 | - android:textSize="@dimen/NormalText" /> | |
235 | - | |
236 | - <RadioButton | |
237 | - android:id="@+id/rbProNoInclu" | |
238 | - android:layout_width="match_parent" | |
255 | + android:text="@string/cbHabiLectura" | |
256 | + android:textSize="@dimen/NormalText" | |
257 | + app:layout_constraintEnd_toEndOf="parent" | |
258 | + app:layout_constraintStart_toStartOf="parent" | |
259 | + app:layout_constraintTop_toBottomOf="@+id/rgLosProductos" /> | |
260 | + | |
261 | + <CheckBox | |
262 | + android:id="@+id/cbMostrarStock" | |
263 | + android:layout_width="0dp" | |
239 | 264 | android:layout_height="wrap_content" |
240 | 265 | android:layout_margin="@dimen/PadingCbyRb" |
241 | - android:checked="false" | |
242 | 266 | android:padding="@dimen/PadingCbyRb" |
243 | - android:text="@string/rbProNoInclu" | |
244 | - android:textSize="@dimen/NormalText" /> | |
245 | - | |
246 | - </RadioGroup> | |
247 | - | |
248 | - <CheckBox | |
249 | - android:id="@+id/cbHabiLectura" | |
250 | - android:layout_width="0dp" | |
251 | - android:layout_height="wrap_content" | |
252 | - android:layout_margin="@dimen/PadingCbyRb" | |
253 | - android:padding="@dimen/PadingCbyRb" | |
254 | - android:text="@string/cbHabiLectura" | |
255 | - android:textSize="@dimen/NormalText" | |
256 | - app:layout_constraintEnd_toEndOf="parent" | |
257 | - app:layout_constraintStart_toStartOf="parent" | |
258 | - app:layout_constraintTop_toBottomOf="@+id/rgLosProductos" /> | |
259 | - | |
260 | - <CheckBox | |
261 | - android:id="@+id/cbMostrarStock" | |
262 | - android:layout_width="0dp" | |
263 | - android:layout_height="wrap_content" | |
264 | - android:layout_margin="@dimen/PadingCbyRb" | |
265 | - android:padding="@dimen/PadingCbyRb" | |
266 | - android:text="@string/cbMostrarStock" | |
267 | - android:textSize="@dimen/NormalText" | |
268 | - app:layout_constraintEnd_toEndOf="parent" | |
269 | - app:layout_constraintStart_toStartOf="parent" | |
270 | - app:layout_constraintTop_toBottomOf="@+id/cbHabiLectura" /> | |
271 | - | |
272 | - <TextView | |
273 | - android:id="@+id/tvColumMostrar" | |
274 | - android:layout_width="0dp" | |
275 | - android:layout_height="wrap_content" | |
276 | - | |
277 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
278 | - android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
279 | - android:gravity="start" | |
280 | - android:lines="1" | |
281 | - android:text="@string/tvColumMostrar" | |
282 | - android:textColor="@android:color/black" | |
283 | - android:textSize="@dimen/SubTitulos" | |
284 | - app:fontFamily="sans-serif-condensed" | |
285 | - app:layout_constraintEnd_toEndOf="parent" | |
286 | - app:layout_constraintStart_toStartOf="parent" | |
287 | - app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
288 | - | |
289 | - <RadioGroup | |
290 | - android:id="@+id/rgCodigosMostrar" | |
291 | - android:layout_width="0dp" | |
292 | - android:layout_height="wrap_content" | |
293 | - | |
294 | - android:gravity="center" | |
295 | - android:orientation="horizontal" | |
296 | - app:layout_constraintEnd_toEndOf="parent" | |
297 | - app:layout_constraintStart_toStartOf="parent" | |
298 | - app:layout_constraintTop_toBottomOf="@+id/tvColumMostrar"> | |
299 | - | |
300 | - <RadioButton | |
301 | - android:id="@+id/rbCodigoDebo" | |
267 | + android:text="@string/cbMostrarStock" | |
268 | + android:textSize="@dimen/NormalText" | |
269 | + app:layout_constraintEnd_toEndOf="parent" | |
270 | + app:layout_constraintStart_toStartOf="parent" | |
271 | + app:layout_constraintTop_toBottomOf="@+id/cbHabiLectura" /> | |
272 | + | |
273 | + <TextView | |
274 | + android:id="@+id/tvColumMostrar" | |
275 | + android:layout_width="0dp" | |
276 | + android:layout_height="wrap_content" | |
277 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
278 | + android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
279 | + android:gravity="start" | |
280 | + android:lines="1" | |
281 | + android:text="@string/tvColumMostrar" | |
282 | + android:textColor="@android:color/black" | |
283 | + android:textSize="@dimen/SubTitulos" | |
284 | + android:visibility="gone" | |
285 | + app:fontFamily="sans-serif-condensed" | |
286 | + app:layout_constraintEnd_toEndOf="parent" | |
287 | + app:layout_constraintStart_toStartOf="parent" | |
288 | + app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
289 | + | |
290 | + <RadioGroup | |
291 | + android:id="@+id/rgCodigosMostrar" | |
292 | + android:layout_width="0dp" | |
293 | + android:layout_height="wrap_content" | |
294 | + android:gravity="center" | |
295 | + android:orientation="horizontal" | |
296 | + android:visibility="gone" | |
297 | + app:layout_constraintEnd_toEndOf="parent" | |
298 | + app:layout_constraintStart_toStartOf="parent" | |
299 | + app:layout_constraintTop_toBottomOf="@+id/tvColumMostrar"> | |
300 | + | |
301 | + <RadioButton | |
302 | + android:id="@+id/rbCodigoDebo" | |
303 | + android:layout_width="wrap_content" | |
304 | + android:layout_height="wrap_content" | |
305 | + android:layout_margin="5dp" | |
306 | + android:checked="true" | |
307 | + android:padding="5dp" | |
308 | + android:text="@string/rbCodigoDebo" | |
309 | + android:textSize="@dimen/NormalText" /> | |
310 | + | |
311 | + <RadioButton | |
312 | + android:id="@+id/rbCodigoOrigen" | |
313 | + android:layout_width="wrap_content" | |
314 | + android:layout_height="wrap_content" | |
315 | + android:layout_margin="5dp" | |
316 | + android:checked="false" | |
317 | + android:padding="5dp" | |
318 | + android:text="@string/rbCodigoOrigen" | |
319 | + android:textSize="@dimen/NormalText" /> | |
320 | + | |
321 | + <RadioButton | |
322 | + android:id="@+id/rbCodigoBarras" | |
323 | + android:layout_width="wrap_content" | |
324 | + android:layout_height="wrap_content" | |
325 | + android:layout_margin="5dp" | |
326 | + android:padding="5dp" | |
327 | + android:text="@string/rbCodigoBarras" | |
328 | + android:textSize="@dimen/NormalText" /> | |
329 | + </RadioGroup> | |
330 | + | |
331 | + <Button | |
332 | + android:id="@+id/btnAskTimeServer" | |
302 | 333 | android:layout_width="wrap_content" |
303 | 334 | android:layout_height="wrap_content" |
304 | - android:layout_margin="5dp" | |
305 | - android:checked="true" | |
306 | - android:padding="5dp" | |
307 | - android:text="@string/rbCodigoDebo" | |
308 | - android:textSize="@dimen/NormalText" /> | |
309 | - | |
310 | - <RadioButton | |
311 | - android:id="@+id/rbCodigoOrigen" | |
335 | + android:layout_margin="@dimen/PadingCbyRb" | |
336 | + android:background="@drawable/boton_borde_redondeado" | |
337 | + android:checked="false" | |
338 | + android:padding="10dp" | |
339 | + android:text="@string/btnAskTimeServer" | |
340 | + android:textColor="@android:color/white" | |
341 | + android:textSize="@dimen/NormalText" | |
342 | + android:visibility="gone" | |
343 | + app:layout_constraintStart_toStartOf="parent" | |
344 | + app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" /> | |
345 | + | |
346 | + <CheckBox | |
347 | + android:id="@+id/cbAskTimeServerToStart" | |
312 | 348 | android:layout_width="wrap_content" |
313 | 349 | android:layout_height="wrap_content" |
314 | - android:layout_margin="5dp" | |
350 | + android:layout_margin="@dimen/PadingCbyRb" | |
315 | 351 | android:checked="false" |
316 | - android:padding="5dp" | |
317 | - android:text="@string/rbCodigoOrigen" | |
318 | - android:textSize="@dimen/NormalText" /> | |
319 | - | |
320 | - <RadioButton | |
321 | - android:id="@+id/rbCodigoBarras" | |
352 | + android:padding="@dimen/PadingCbyRb" | |
353 | + android:text="@string/cbAskTimeServerToStart" | |
354 | + android:textSize="@dimen/NormalText" | |
355 | + android:visibility="visible" | |
356 | + app:layout_constraintStart_toStartOf="parent" | |
357 | + app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
358 | + | |
359 | + <Button | |
360 | + android:id="@+id/btnGuardar" | |
322 | 361 | android:layout_width="wrap_content" |
323 | 362 | android:layout_height="wrap_content" |
324 | - android:layout_margin="5dp" | |
325 | - android:padding="5dp" | |
326 | - android:text="@string/rbCodigoBarras" | |
327 | - android:textSize="@dimen/NormalText" /> | |
328 | - </RadioGroup> | |
329 | - | |
330 | - <CheckBox | |
331 | - android:id="@+id/cbMostrarExistencia" | |
332 | - android:layout_width="wrap_content" | |
333 | - android:layout_height="wrap_content" | |
334 | - android:layout_margin="@dimen/PadingCbyRb" | |
335 | - android:padding="@dimen/PadingCbyRb" | |
336 | - android:text="@string/cbMostrarExistencia" | |
337 | - android:textSize="@dimen/NormalText" | |
338 | - android:checked="false" | |
339 | - app:layout_constraintEnd_toStartOf="@+id/cbMostrarPrecio" | |
340 | - app:layout_constraintStart_toStartOf="parent" | |
341 | - app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" /> | |
342 | - | |
343 | - <CheckBox | |
344 | - android:id="@+id/cbMostrarPrecio" | |
345 | - android:layout_width="wrap_content" | |
346 | - android:layout_height="wrap_content" | |
347 | - android:layout_margin="@dimen/PadingCbyRb" | |
348 | - android:padding="@dimen/PadingCbyRb" | |
349 | - android:text="@string/cbMostrarPrecio" | |
350 | - android:textSize="@dimen/NormalText" | |
351 | - android:checked="false" | |
352 | - app:layout_constraintEnd_toEndOf="parent" | |
353 | - app:layout_constraintStart_toEndOf="@+id/cbMostrarExistencia" | |
354 | - app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" /> | |
355 | - | |
356 | - <Button | |
357 | - android:id="@+id/btnGuardar" | |
358 | - android:layout_width="wrap_content" | |
359 | - android:layout_height="wrap_content" | |
360 | - android:text="@string/btnGuardar" | |
361 | - android:textSize="@dimen/NormalText" | |
362 | - app:layout_constraintEnd_toEndOf="parent" | |
363 | - android:textColor="@android:color/white" | |
364 | - android:padding="10dp" | |
365 | - android:background="@drawable/boton_borde_redondeado" | |
366 | - app:layout_constraintStart_toStartOf="parent" | |
367 | - app:layout_constraintTop_toBottomOf="@+id/cbMostrarPrecio" /> | |
368 | -</androidx.constraintlayout.widget.ConstraintLayout> | |
363 | + android:background="@drawable/boton_borde_redondeado" | |
364 | + android:padding="10dp" | |
365 | + android:text="@string/btnGuardar" | |
366 | + android:textColor="@android:color/white" | |
367 | + android:textSize="@dimen/NormalText" | |
368 | + app:layout_constraintBottom_toBottomOf="parent" | |
369 | + app:layout_constraintEnd_toEndOf="parent" | |
370 | + app:layout_constraintStart_toStartOf="parent" | |
371 | + app:layout_constraintTop_toBottomOf="@+id/cbAskTimeServerToStart" /> | |
372 | + | |
373 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
369 | 374 | |
370 | 375 | </ScrollView> |
371 | 376 | \ No newline at end of file |
app/src/main/res/layout-land/fragment_inventario.xml
... | ... | @@ -117,6 +117,23 @@ |
117 | 117 | android:background="@drawable/boton_borde_redondeado" |
118 | 118 | app:layout_constraintTop_toBottomOf="@+id/guideline5" /> |
119 | 119 | |
120 | + | |
121 | + <ProgressBar | |
122 | + android:id="@+id/loading_view" | |
123 | + android:layout_width="wrap_content" | |
124 | + android:layout_height="wrap_content" | |
125 | + android:layout_marginStart="8dp" | |
126 | + android:layout_marginLeft="8dp" | |
127 | + android:layout_marginTop="8dp" | |
128 | + android:layout_marginEnd="8dp" | |
129 | + android:layout_marginRight="8dp" | |
130 | + android:layout_marginBottom="8dp" | |
131 | + android:visibility="invisible" | |
132 | + app:layout_constraintBottom_toBottomOf="parent" | |
133 | + app:layout_constraintEnd_toEndOf="parent" | |
134 | + app:layout_constraintStart_toStartOf="parent" | |
135 | + app:layout_constraintTop_toTopOf="parent" /> | |
136 | + | |
120 | 137 | <androidx.constraintlayout.widget.Guideline |
121 | 138 | android:id="@+id/guideline" |
122 | 139 | android:layout_width="wrap_content" |
app/src/main/res/layout-land/fragment_servidores.xml
... | ... | @@ -77,7 +77,7 @@ |
77 | 77 | |
78 | 78 | <EditText |
79 | 79 | android:id="@+id/etDireccionServidor" |
80 | - android:layout_width="130dp" | |
80 | + android:layout_width="180dp" | |
81 | 81 | android:layout_height="wrap_content" |
82 | 82 | android:clickable="true" |
83 | 83 | android:ems="10" |
... | ... | @@ -85,25 +85,52 @@ |
85 | 85 | android:hint="192.168.100.100" |
86 | 86 | android:inputType="phone" |
87 | 87 | android:lines="1" |
88 | + android:nextFocusLeft="@id/etPuertoSubida" | |
89 | + android:nextFocusRight="@id/etPuertoSubida" | |
90 | + android:nextFocusDown="@id/etPuertoSubida" | |
88 | 91 | android:textSize="15sp" |
89 | 92 | app:layout_constraintBaseline_toBaselineOf="@+id/tvDirServer" |
90 | 93 | app:layout_constraintStart_toEndOf="@+id/tvDirServer" /> |
91 | 94 | |
92 | 95 | |
93 | 96 | <EditText |
94 | - android:id="@+id/etPuerto" | |
95 | - android:layout_width="80dp" | |
97 | + android:id="@+id/etPuertoSubida" | |
98 | + android:layout_width="150dp" | |
96 | 99 | android:layout_height="wrap_content" |
100 | + android:layout_margin="10dp" | |
101 | + android:autofillHints="" | |
97 | 102 | android:clickable="true" |
98 | - android:ems="10" | |
103 | + android:ems="9" | |
99 | 104 | android:focusable="true" |
100 | - android:hint="Puerto" | |
105 | + android:hint="Puerto de Subida" | |
101 | 106 | android:inputType="number" |
102 | 107 | android:lines="1" |
108 | + android:nextFocusLeft="@id/etPuertoBajada" | |
109 | + android:nextFocusRight="@id/etPuertoBajada" | |
110 | + android:nextFocusDown="@id/etPuertoBajada" | |
103 | 111 | android:textSize="15sp" |
104 | 112 | app:layout_constraintBaseline_toBaselineOf="@+id/etDireccionServidor" |
105 | - app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
106 | - android:autofillHints="" /> | |
113 | + app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" /> | |
114 | + | |
115 | + <EditText | |
116 | + android:id="@+id/etPuertoBajada" | |
117 | + android:layout_width="150dp" | |
118 | + android:layout_height="wrap_content" | |
119 | + android:layout_margin="10dp" | |
120 | + android:autofillHints="" | |
121 | + android:clickable="true" | |
122 | + android:ems="10" | |
123 | + android:focusable="true" | |
124 | + android:hint="Puerto de Bajada" | |
125 | + android:inputType="number" | |
126 | + android:lines="1" | |
127 | + android:nextFocusLeft="@id/btnGuardarServidores" | |
128 | + android:nextFocusRight="@id/btnGuardarServidores" | |
129 | + android:nextFocusDown="@id/btnGuardarServidores" | |
130 | + android:textSize="15sp" | |
131 | + app:layout_constraintBaseline_toBaselineOf="@+id/etPuertoSubida" | |
132 | + | |
133 | + app:layout_constraintStart_toEndOf="@+id/etPuertoSubida" /> | |
107 | 134 | |
108 | 135 | |
109 | 136 | <androidx.recyclerview.widget.RecyclerView |
... | ... | @@ -115,7 +142,7 @@ |
115 | 142 | app:layout_constraintBottom_toTopOf="@+id/btnGuardarServidores" |
116 | 143 | app:layout_constraintEnd_toEndOf="parent" |
117 | 144 | app:layout_constraintStart_toStartOf="parent" |
118 | - app:layout_constraintTop_toBottomOf="@+id/etPuerto" | |
145 | + app:layout_constraintTop_toBottomOf="@+id/etPuertoSubida" | |
119 | 146 | app:layout_goneMarginEnd="10dp" |
120 | 147 | tools:listitem="@layout/item_servidores" /> |
121 | 148 |
app/src/main/res/layout-large-v26/fragment_main.xml
... | ... | @@ -0,0 +1,180 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent"> | |
7 | + | |
8 | + <androidx.appcompat.widget.AppCompatTextView | |
9 | + android:id="@+id/tvInvDinamicos" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="110dp" | |
12 | + android:autoSizeMaxTextSize="150sp" | |
13 | + android:autoSizeMinTextSize="25sp" | |
14 | + android:autoSizeStepGranularity="5sp" | |
15 | + android:autoSizeTextType="uniform" | |
16 | + android:gravity="start" | |
17 | + android:lines="1" | |
18 | + android:padding="10dp" | |
19 | + android:text="@string/invDinamicoVenta" | |
20 | + android:textColor="@color/colorAccent" | |
21 | + android:visibility="visible" | |
22 | + app:fontFamily="sans-serif-condensed" | |
23 | + app:layout_constraintEnd_toEndOf="parent" | |
24 | + app:layout_constraintStart_toStartOf="parent" | |
25 | + app:layout_constraintTop_toTopOf="parent" /> | |
26 | + | |
27 | + <androidx.appcompat.widget.AppCompatImageButton | |
28 | + android:id="@+id/ivSort19" | |
29 | + android:layout_width="@dimen/icon_dim10" | |
30 | + android:layout_height="@dimen/icon_dim10" | |
31 | + android:layout_marginStart="10dp" | |
32 | + android:padding="5dp" | |
33 | + android:src="@drawable/ic_sort19" | |
34 | + android:visibility="gone" | |
35 | + app:layout_constraintHorizontal_bias="0.0" | |
36 | + app:layout_constraintHorizontal_chainStyle="packed" | |
37 | + app:layout_constraintStart_toStartOf="parent" | |
38 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
39 | + | |
40 | + <androidx.appcompat.widget.AppCompatImageButton | |
41 | + android:id="@+id/ivSort91" | |
42 | + android:layout_width="@dimen/icon_dim10" | |
43 | + android:layout_height="@dimen/icon_dim10" | |
44 | + android:layout_marginStart="10dp" | |
45 | + android:padding="5dp" | |
46 | + android:src="@drawable/ic_sort91" | |
47 | + android:visibility="gone" | |
48 | + app:layout_constraintHorizontal_chainStyle="packed" | |
49 | + app:layout_constraintStart_toStartOf="parent" | |
50 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
51 | + | |
52 | + <TextView | |
53 | + android:id="@+id/tvTipo" | |
54 | + android:layout_width="wrap_content" | |
55 | + android:layout_height="wrap_content" | |
56 | + android:layout_margin="5dp" | |
57 | + android:layout_marginTop="12dp" | |
58 | + android:text="Tipo:" | |
59 | + android:textSize="@dimen/md_message_textsize" | |
60 | + android:visibility="gone" | |
61 | + app:layout_constraintBaseline_toBaselineOf="@+id/cbVentas" | |
62 | + app:layout_constraintEnd_toStartOf="@+id/cbVentas" /> | |
63 | + | |
64 | + <com.google.android.material.checkbox.MaterialCheckBox | |
65 | + android:id="@+id/cbVentas" | |
66 | + android:layout_width="wrap_content" | |
67 | + android:layout_height="wrap_content" | |
68 | + android:layout_margin="5dp" | |
69 | + android:layout_marginTop="12dp" | |
70 | + android:checked="true" | |
71 | + android:text="Ventas" | |
72 | + android:textSize="@dimen/SubTitulos10" | |
73 | + android:visibility="gone" | |
74 | + app:layout_constraintEnd_toStartOf="@+id/cbDeposito" | |
75 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
76 | + | |
77 | + <com.google.android.material.checkbox.MaterialCheckBox | |
78 | + android:id="@+id/cbDeposito" | |
79 | + android:layout_width="wrap_content" | |
80 | + android:layout_height="wrap_content" | |
81 | + android:layout_margin="5dp" | |
82 | + android:layout_marginTop="12dp" | |
83 | + android:checked="true" | |
84 | + android:text="Deposito" | |
85 | + android:textSize="@dimen/SubTitulos10" | |
86 | + android:visibility="gone" | |
87 | + app:layout_constraintEnd_toEndOf="parent" | |
88 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
89 | + | |
90 | + <androidx.recyclerview.widget.RecyclerView | |
91 | + android:id="@+id/rcInventario" | |
92 | + android:layout_width="match_parent" | |
93 | + android:layout_height="0dp" | |
94 | + android:background="@android:color/darker_gray" | |
95 | + android:scrollbars="vertical" | |
96 | + android:visibility="gone" | |
97 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
98 | + app:layout_constraintEnd_toEndOf="parent" | |
99 | + app:layout_constraintStart_toStartOf="parent" | |
100 | + app:layout_constraintTop_toBottomOf="@id/ivSort19" | |
101 | + tools:listitem="@layout/item_principal" /> | |
102 | + | |
103 | + | |
104 | + <androidx.appcompat.widget.AppCompatTextView | |
105 | + android:id="@+id/tvInvImportados" | |
106 | + android:layout_width="match_parent" | |
107 | + android:layout_height="110dp" | |
108 | + android:autoSizeMaxTextSize="150sp" | |
109 | + android:autoSizeMinTextSize="25sp" | |
110 | + android:autoSizeStepGranularity="5sp" | |
111 | + android:autoSizeTextType="uniform" | |
112 | + android:gravity="start" | |
113 | + android:lines="1" | |
114 | + android:padding="10dp" | |
115 | + android:text="@string/invDinamicoCompra" | |
116 | + android:textColor="@color/colorAccent" | |
117 | + android:visibility="visible" | |
118 | + app:fontFamily="sans-serif-condensed" | |
119 | + app:layout_constraintBottom_toBottomOf="parent" | |
120 | + app:layout_constraintEnd_toEndOf="parent" | |
121 | + app:layout_constraintStart_toStartOf="parent" | |
122 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" | |
123 | + app:layout_constraintVertical_bias="0.0" /> | |
124 | + | |
125 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
126 | +<!-- android:id="@+id/ivSort19II"--> | |
127 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
128 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
129 | +<!-- android:layout_marginStart="10dp"--> | |
130 | +<!-- android:padding="5dp"--> | |
131 | +<!-- android:src="@drawable/ic_sort19"--> | |
132 | +<!-- android:visibility="invisible"--> | |
133 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
134 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
135 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
136 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
137 | + | |
138 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
139 | +<!-- android:id="@+id/ivSort91II"--> | |
140 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
141 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
142 | +<!-- android:layout_marginStart="10dp"--> | |
143 | +<!-- android:padding="5dp"--> | |
144 | +<!-- android:src="@drawable/ic_sort91"--> | |
145 | +<!-- android:visibility="invisible"--> | |
146 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
147 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
148 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
149 | + <ImageView | |
150 | + android:id="@+id/ivPortada" | |
151 | + android:layout_width="452dp" | |
152 | + android:layout_height="259dp" | |
153 | + android:elevation="10dp" | |
154 | + android:visibility="visible" | |
155 | + app:layout_constraintBottom_toBottomOf="parent" | |
156 | + app:layout_constraintEnd_toEndOf="parent" | |
157 | + app:layout_constraintStart_toStartOf="parent" | |
158 | + app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" | |
159 | + tools:srcCompat="@drawable/imagen_portada" /> | |
160 | + | |
161 | + <androidx.recyclerview.widget.RecyclerView | |
162 | + android:id="@+id/rcInventarioII" | |
163 | + android:layout_width="match_parent" | |
164 | + android:layout_height="0dp" | |
165 | + android:background="@android:color/darker_gray" | |
166 | + android:scrollbars="vertical" | |
167 | + android:visibility="gone" | |
168 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
169 | + app:layout_constraintEnd_toEndOf="parent" | |
170 | + app:layout_constraintStart_toStartOf="parent" | |
171 | + app:layout_constraintTop_toBottomOf="@id/tvInvImportados" | |
172 | + tools:listitem="@layout/item_principal" /> | |
173 | + | |
174 | + <androidx.constraintlayout.widget.Guideline | |
175 | + android:id="@+id/guideline6" | |
176 | + android:layout_width="wrap_content" | |
177 | + android:layout_height="wrap_content" | |
178 | + android:orientation="horizontal" | |
179 | + app:layout_constraintGuide_percent="0.97" /> | |
180 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 181 | \ No newline at end of file |
app/src/main/res/layout-large/fragment_main.xml
... | ... | @@ -0,0 +1,174 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent"> | |
7 | + | |
8 | + <androidx.appcompat.widget.AppCompatTextView | |
9 | + android:id="@+id/tvInvDinamicos" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="wrap_content" | |
12 | + android:textSize="60sp" | |
13 | + android:gravity="start" | |
14 | + android:lines="1" | |
15 | + android:padding="10dp" | |
16 | + android:text="@string/invDinamicoVenta" | |
17 | + android:textColor="@color/colorAccent" | |
18 | + android:visibility="visible" | |
19 | + app:fontFamily="sans-serif-condensed" | |
20 | + app:layout_constraintEnd_toEndOf="parent" | |
21 | + app:layout_constraintStart_toStartOf="parent" | |
22 | + app:layout_constraintTop_toTopOf="parent" /> | |
23 | + | |
24 | + <androidx.appcompat.widget.AppCompatImageButton | |
25 | + android:id="@+id/ivSort19" | |
26 | + android:layout_width="@dimen/icon_dim10" | |
27 | + android:layout_height="@dimen/icon_dim10" | |
28 | + android:layout_marginStart="10dp" | |
29 | + android:padding="5dp" | |
30 | + android:src="@drawable/ic_sort19" | |
31 | + android:visibility="gone" | |
32 | + app:layout_constraintHorizontal_bias="0.0" | |
33 | + app:layout_constraintHorizontal_chainStyle="packed" | |
34 | + app:layout_constraintStart_toStartOf="parent" | |
35 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
36 | + | |
37 | + <androidx.appcompat.widget.AppCompatImageButton | |
38 | + android:id="@+id/ivSort91" | |
39 | + android:layout_width="@dimen/icon_dim10" | |
40 | + android:layout_height="@dimen/icon_dim10" | |
41 | + android:layout_marginStart="10dp" | |
42 | + android:padding="5dp" | |
43 | + android:src="@drawable/ic_sort91" | |
44 | + android:visibility="gone" | |
45 | + app:layout_constraintHorizontal_chainStyle="packed" | |
46 | + app:layout_constraintStart_toStartOf="parent" | |
47 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
48 | + | |
49 | + <TextView | |
50 | + android:id="@+id/tvTipo" | |
51 | + android:layout_width="wrap_content" | |
52 | + android:layout_height="wrap_content" | |
53 | + android:layout_margin="5dp" | |
54 | + android:layout_marginTop="12dp" | |
55 | + android:text="Tipo:" | |
56 | + android:textSize="@dimen/md_message_textsize" | |
57 | + android:visibility="gone" | |
58 | + app:layout_constraintBaseline_toBaselineOf="@+id/cbVentas" | |
59 | + app:layout_constraintEnd_toStartOf="@+id/cbVentas" /> | |
60 | + | |
61 | + <com.google.android.material.checkbox.MaterialCheckBox | |
62 | + android:id="@+id/cbVentas" | |
63 | + android:layout_width="wrap_content" | |
64 | + android:layout_height="wrap_content" | |
65 | + android:layout_margin="5dp" | |
66 | + android:layout_marginTop="12dp" | |
67 | + android:checked="true" | |
68 | + android:text="Ventas" | |
69 | + android:textSize="@dimen/SubTitulos10" | |
70 | + android:visibility="gone" | |
71 | + app:layout_constraintEnd_toStartOf="@+id/cbDeposito" | |
72 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
73 | + | |
74 | + <com.google.android.material.checkbox.MaterialCheckBox | |
75 | + android:id="@+id/cbDeposito" | |
76 | + android:layout_width="wrap_content" | |
77 | + android:layout_height="wrap_content" | |
78 | + android:layout_margin="5dp" | |
79 | + android:layout_marginTop="12dp" | |
80 | + android:checked="true" | |
81 | + android:text="Deposito" | |
82 | + android:textSize="@dimen/SubTitulos10" | |
83 | + android:visibility="gone" | |
84 | + app:layout_constraintEnd_toEndOf="parent" | |
85 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
86 | + | |
87 | + <androidx.recyclerview.widget.RecyclerView | |
88 | + android:id="@+id/rcInventario" | |
89 | + android:layout_width="match_parent" | |
90 | + android:layout_height="0dp" | |
91 | + android:background="@android:color/darker_gray" | |
92 | + android:scrollbars="vertical" | |
93 | + android:visibility="gone" | |
94 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
95 | + app:layout_constraintEnd_toEndOf="parent" | |
96 | + app:layout_constraintStart_toStartOf="parent" | |
97 | + app:layout_constraintTop_toBottomOf="@id/ivSort19" | |
98 | + tools:listitem="@layout/item_principal" /> | |
99 | + | |
100 | + | |
101 | + <androidx.appcompat.widget.AppCompatTextView | |
102 | + android:id="@+id/tvInvImportados" | |
103 | + android:layout_width="match_parent" | |
104 | + android:layout_height="wrap_content" | |
105 | + android:textSize="60sp" | |
106 | + android:gravity="start" | |
107 | + android:lines="1" | |
108 | + android:padding="10dp" | |
109 | + android:text="@string/invDinamicoCompra" | |
110 | + android:textColor="@color/colorAccent" | |
111 | + android:visibility="visible" | |
112 | + app:fontFamily="sans-serif-condensed" | |
113 | + app:layout_constraintBottom_toBottomOf="parent" | |
114 | + app:layout_constraintEnd_toEndOf="parent" | |
115 | + app:layout_constraintStart_toStartOf="parent" | |
116 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" | |
117 | + app:layout_constraintVertical_bias="0.0" /> | |
118 | + | |
119 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
120 | +<!-- android:id="@+id/ivSort19II"--> | |
121 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
122 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
123 | +<!-- android:layout_marginStart="10dp"--> | |
124 | +<!-- android:padding="5dp"--> | |
125 | +<!-- android:src="@drawable/ic_sort19"--> | |
126 | +<!-- android:visibility="invisible"--> | |
127 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
128 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
129 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
130 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
131 | + | |
132 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
133 | +<!-- android:id="@+id/ivSort91II"--> | |
134 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
135 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
136 | +<!-- android:layout_marginStart="10dp"--> | |
137 | +<!-- android:padding="5dp"--> | |
138 | +<!-- android:src="@drawable/ic_sort91"--> | |
139 | +<!-- android:visibility="invisible"--> | |
140 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
141 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
142 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
143 | + <ImageView | |
144 | + android:id="@+id/ivPortada" | |
145 | + android:layout_width="706dp" | |
146 | + android:layout_height="448dp" | |
147 | + android:elevation="10dp" | |
148 | + android:visibility="visible" | |
149 | + app:layout_constraintBottom_toBottomOf="parent" | |
150 | + app:layout_constraintEnd_toEndOf="parent" | |
151 | + app:layout_constraintStart_toStartOf="parent" | |
152 | + app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" | |
153 | + tools:srcCompat="@drawable/imagen_portada" /> | |
154 | + | |
155 | + <androidx.recyclerview.widget.RecyclerView | |
156 | + android:id="@+id/rcInventarioII" | |
157 | + android:layout_width="match_parent" | |
158 | + android:layout_height="0dp" | |
159 | + android:background="@android:color/darker_gray" | |
160 | + android:scrollbars="vertical" | |
161 | + android:visibility="gone" | |
162 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
163 | + app:layout_constraintEnd_toEndOf="parent" | |
164 | + app:layout_constraintStart_toStartOf="parent" | |
165 | + app:layout_constraintTop_toBottomOf="@id/tvInvImportados" | |
166 | + tools:listitem="@layout/item_principal" /> | |
167 | + | |
168 | + <androidx.constraintlayout.widget.Guideline | |
169 | + android:id="@+id/guideline6" | |
170 | + android:layout_width="wrap_content" | |
171 | + android:layout_height="wrap_content" | |
172 | + android:orientation="horizontal" | |
173 | + app:layout_constraintGuide_percent="0.97" /> | |
174 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 175 | \ No newline at end of file |
app/src/main/res/layout-xlarge-v26/fragment_actua_maestros.xml
... | ... | @@ -0,0 +1,140 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent" | |
7 | + tools:context=".UI.actualizacionMaestros.ActuaMaestrosFragment"> | |
8 | + | |
9 | + <androidx.appcompat.widget.AppCompatTextView | |
10 | + android:id="@+id/tvActMaestros" | |
11 | + android:layout_width="match_parent" | |
12 | + android:layout_height="120dp" | |
13 | + android:layout_marginTop="15dp" | |
14 | + android:autoSizeMaxTextSize="100sp" | |
15 | + android:autoSizeMinTextSize="20sp" | |
16 | + android:autoSizeStepGranularity="5sp" | |
17 | + android:autoSizeTextType="uniform" | |
18 | + android:gravity="center" | |
19 | + android:lines="1" | |
20 | + android:text="@string/tvActMaestros" | |
21 | + android:textColor="@color/colorAccent" | |
22 | + app:fontFamily="sans-serif-condensed" | |
23 | + app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" | |
24 | + app:layout_constraintEnd_toEndOf="parent" | |
25 | + app:layout_constraintStart_toStartOf="parent" | |
26 | + app:layout_constraintTop_toTopOf="parent" /> | |
27 | + | |
28 | + <TextView | |
29 | + android:id="@+id/tvSeleccioneServidor" | |
30 | + android:layout_width="0dp" | |
31 | + android:layout_height="wrap_content" | |
32 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
33 | + android:layout_marginTop="20dp" | |
34 | + android:gravity="start" | |
35 | + android:lines="1" | |
36 | + android:text="@string/tvMedio" | |
37 | + android:textColor="@android:color/black" | |
38 | + android:textSize="@dimen/VentasDeposito10" | |
39 | + app:fontFamily="sans-serif-condensed" | |
40 | + app:layout_constraintEnd_toEndOf="parent" | |
41 | + app:layout_constraintStart_toStartOf="parent" | |
42 | + app:layout_constraintTop_toBottomOf="@+id/tvActMaestros" /> | |
43 | + | |
44 | + <RadioGroup | |
45 | + android:id="@+id/rgTipoActualizacion" | |
46 | + android:layout_width="0dp" | |
47 | + android:layout_height="wrap_content" | |
48 | + android:layout_marginTop="20dp" | |
49 | + android:gravity="start" | |
50 | + android:orientation="vertical" | |
51 | + app:layout_constraintEnd_toEndOf="parent" | |
52 | + app:layout_constraintStart_toStartOf="parent" | |
53 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor"> | |
54 | + | |
55 | + <RadioButton | |
56 | + android:id="@+id/obPorWifi" | |
57 | + android:layout_width="wrap_content" | |
58 | + android:layout_height="wrap_content" | |
59 | + android:layout_margin="10dp" | |
60 | + android:checked="true" | |
61 | + android:padding="5dp" | |
62 | + android:text="@string/obPorWifi" | |
63 | + android:textSize="@dimen/SubTitulos10" /> | |
64 | + | |
65 | + <RadioButton | |
66 | + android:id="@+id/obImpInventarios" | |
67 | + android:layout_width="wrap_content" | |
68 | + android:layout_height="wrap_content" | |
69 | + android:layout_margin="10dp" | |
70 | + android:checked="false" | |
71 | + android:padding="5dp" | |
72 | + android:text="@string/obViaArchivo" | |
73 | + android:textSize="@dimen/SubTitulos10"/> | |
74 | + </RadioGroup> | |
75 | + | |
76 | + <TextView | |
77 | + android:id="@+id/tvServerConectado" | |
78 | + android:layout_width="match_parent" | |
79 | + android:layout_height="wrap_content" | |
80 | + android:layout_margin="30dp" | |
81 | + android:gravity="center" | |
82 | + android:lines="2" | |
83 | + android:text="" | |
84 | + android:textColor="@android:color/black" | |
85 | + android:textSize="@dimen/textCantidad10" | |
86 | + android:textStyle="bold" | |
87 | + app:fontFamily="sans-serif-condensed" | |
88 | + app:layout_constraintBottom_toTopOf="@+id/countriesList" | |
89 | + app:layout_constraintTop_toBottomOf="@+id/rgTipoActualizacion" /> | |
90 | + | |
91 | + <TextView | |
92 | + android:id="@+id/countriesList" | |
93 | + android:layout_width="0dp" | |
94 | + android:layout_height="wrap_content" | |
95 | + android:layout_marginTop="@dimen/MarginTopTitulos" | |
96 | + android:gravity="center" | |
97 | + android:text="" | |
98 | + android:textColor="@android:color/black" | |
99 | + android:textSize="@dimen/SubTitulos10" | |
100 | + android:textStyle="bold" | |
101 | + android:visibility="visible" | |
102 | + app:fontFamily="sans-serif-condensed" | |
103 | + app:layout_constraintBottom_toTopOf="@+id/btnConfirmarAct" | |
104 | + app:layout_constraintEnd_toEndOf="parent" | |
105 | + app:layout_constraintHorizontal_bias="0.0" | |
106 | + app:layout_constraintStart_toStartOf="parent" | |
107 | + app:layout_constraintTop_toBottomOf="@+id/rgTipoActualizacion" | |
108 | + app:layout_constraintVertical_bias="0.106" /> | |
109 | + | |
110 | + <Button | |
111 | + android:id="@+id/btnConfirmarAct" | |
112 | + android:layout_width="0dp" | |
113 | + android:layout_height="wrap_content" | |
114 | + android:layout_margin="20dp" | |
115 | + android:background="@drawable/boton_borde_redondeado" | |
116 | + android:padding="10dp" | |
117 | + android:text="@string/btnConfirmarAct" | |
118 | + android:textColor="@android:color/white" | |
119 | + android:textSize="@dimen/SubTitulos10" | |
120 | + app:layout_constraintBottom_toBottomOf="parent" | |
121 | + app:layout_constraintEnd_toEndOf="parent" | |
122 | + app:layout_constraintStart_toStartOf="parent" /> | |
123 | + | |
124 | + <ProgressBar | |
125 | + android:id="@+id/loading_view" | |
126 | + android:layout_width="wrap_content" | |
127 | + android:layout_height="wrap_content" | |
128 | + android:layout_marginStart="8dp" | |
129 | + android:layout_marginLeft="8dp" | |
130 | + android:layout_marginTop="8dp" | |
131 | + android:layout_marginEnd="8dp" | |
132 | + android:layout_marginRight="8dp" | |
133 | + android:layout_marginBottom="8dp" | |
134 | + android:visibility="gone" | |
135 | + app:layout_constraintBottom_toBottomOf="parent" | |
136 | + app:layout_constraintEnd_toEndOf="parent" | |
137 | + app:layout_constraintStart_toStartOf="parent" | |
138 | + app:layout_constraintTop_toTopOf="parent" /> | |
139 | + | |
140 | +</androidx.constraintlayout.widget.ConstraintLayout> |
app/src/main/res/layout-xlarge-v26/fragment_main.xml
... | ... | @@ -0,0 +1,182 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent"> | |
7 | + | |
8 | + <androidx.appcompat.widget.AppCompatTextView | |
9 | + android:id="@+id/tvInvDinamicos" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="110dp" | |
12 | + android:autoSizeMaxTextSize="150sp" | |
13 | + android:autoSizeMinTextSize="25sp" | |
14 | + android:autoSizeStepGranularity="5sp" | |
15 | + android:autoSizeTextType="uniform" | |
16 | + android:gravity="start" | |
17 | + android:lines="1" | |
18 | + android:padding="10dp" | |
19 | + android:text="@string/invDinamicoVenta" | |
20 | + android:textColor="@color/colorAccent" | |
21 | + android:visibility="visible" | |
22 | + app:fontFamily="sans-serif-condensed" | |
23 | + app:layout_constraintEnd_toEndOf="parent" | |
24 | + app:layout_constraintStart_toStartOf="parent" | |
25 | + app:layout_constraintTop_toTopOf="parent" /> | |
26 | + | |
27 | + <androidx.appcompat.widget.AppCompatImageButton | |
28 | + android:id="@+id/ivSort19" | |
29 | + android:layout_width="@dimen/icon_dim10" | |
30 | + android:layout_height="@dimen/icon_dim10" | |
31 | + android:layout_marginStart="10dp" | |
32 | + android:padding="5dp" | |
33 | + android:src="@drawable/ic_sort19" | |
34 | + android:visibility="gone" | |
35 | + app:layout_constraintHorizontal_bias="0.0" | |
36 | + app:layout_constraintHorizontal_chainStyle="packed" | |
37 | + app:layout_constraintStart_toStartOf="parent" | |
38 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
39 | + | |
40 | + <androidx.appcompat.widget.AppCompatImageButton | |
41 | + android:id="@+id/ivSort91" | |
42 | + android:layout_width="@dimen/icon_dim10" | |
43 | + android:layout_height="@dimen/icon_dim10" | |
44 | + android:layout_marginStart="10dp" | |
45 | + android:padding="5dp" | |
46 | + android:src="@drawable/ic_sort91" | |
47 | + android:visibility="gone" | |
48 | + app:layout_constraintHorizontal_chainStyle="packed" | |
49 | + app:layout_constraintStart_toStartOf="parent" | |
50 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" /> | |
51 | + | |
52 | + <TextView | |
53 | + android:id="@+id/tvTipo" | |
54 | + android:layout_width="wrap_content" | |
55 | + android:layout_height="wrap_content" | |
56 | + android:layout_margin="5dp" | |
57 | + android:layout_marginTop="12dp" | |
58 | + android:text="Tipo:" | |
59 | + android:textSize="@dimen/md_message_textsize" | |
60 | + android:visibility="gone" | |
61 | + app:layout_constraintBaseline_toBaselineOf="@+id/cbVentas" | |
62 | + app:layout_constraintEnd_toStartOf="@+id/cbVentas" /> | |
63 | + | |
64 | + <com.google.android.material.checkbox.MaterialCheckBox | |
65 | + android:id="@+id/cbVentas" | |
66 | + android:layout_width="wrap_content" | |
67 | + android:layout_height="wrap_content" | |
68 | + android:layout_margin="5dp" | |
69 | + android:layout_marginTop="12dp" | |
70 | + android:checked="true" | |
71 | + android:text="Ventas" | |
72 | + android:textSize="@dimen/SubTitulos10" | |
73 | + android:visibility="gone" | |
74 | + app:layout_constraintEnd_toStartOf="@+id/cbDeposito" | |
75 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
76 | + | |
77 | + <com.google.android.material.checkbox.MaterialCheckBox | |
78 | + android:id="@+id/cbDeposito" | |
79 | + android:layout_width="wrap_content" | |
80 | + android:layout_height="wrap_content" | |
81 | + android:layout_margin="5dp" | |
82 | + android:layout_marginTop="12dp" | |
83 | + android:checked="true" | |
84 | + android:text="Deposito" | |
85 | + android:textSize="@dimen/SubTitulos10" | |
86 | + android:visibility="gone" | |
87 | + app:layout_constraintEnd_toEndOf="parent" | |
88 | + app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> | |
89 | + | |
90 | + <androidx.recyclerview.widget.RecyclerView | |
91 | + android:id="@+id/rcInventario" | |
92 | + android:layout_width="match_parent" | |
93 | + android:layout_height="0dp" | |
94 | + android:background="@android:color/darker_gray" | |
95 | + android:scrollbars="vertical" | |
96 | + android:visibility="gone" | |
97 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
98 | + app:layout_constraintEnd_toEndOf="parent" | |
99 | + app:layout_constraintStart_toStartOf="parent" | |
100 | + app:layout_constraintTop_toBottomOf="@id/ivSort19" | |
101 | + tools:listitem="@layout/item_principal" /> | |
102 | + | |
103 | + | |
104 | + <androidx.appcompat.widget.AppCompatTextView | |
105 | + android:id="@+id/tvInvImportados" | |
106 | + android:layout_width="match_parent" | |
107 | + android:layout_height="110dp" | |
108 | + android:autoSizeMaxTextSize="150sp" | |
109 | + android:autoSizeMinTextSize="25sp" | |
110 | + android:autoSizeStepGranularity="5sp" | |
111 | + android:autoSizeTextType="uniform" | |
112 | + android:gravity="start" | |
113 | + android:lines="1" | |
114 | + android:padding="10dp" | |
115 | + android:text="@string/invDinamicoCompra" | |
116 | + android:textColor="@color/colorAccent" | |
117 | + android:visibility="visible" | |
118 | + app:fontFamily="sans-serif-condensed" | |
119 | + app:layout_constraintBottom_toBottomOf="parent" | |
120 | + app:layout_constraintEnd_toEndOf="parent" | |
121 | + app:layout_constraintStart_toStartOf="parent" | |
122 | + app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" | |
123 | + app:layout_constraintVertical_bias="0.0" /> | |
124 | + | |
125 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
126 | +<!-- android:id="@+id/ivSort19II"--> | |
127 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
128 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
129 | +<!-- android:layout_marginStart="10dp"--> | |
130 | +<!-- android:padding="5dp"--> | |
131 | +<!-- android:src="@drawable/ic_sort19"--> | |
132 | +<!-- android:visibility="invisible"--> | |
133 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
134 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
135 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
136 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
137 | + | |
138 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
139 | +<!-- android:id="@+id/ivSort91II"--> | |
140 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
141 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
142 | +<!-- android:layout_marginStart="10dp"--> | |
143 | +<!-- android:padding="5dp"--> | |
144 | +<!-- android:src="@drawable/ic_sort91"--> | |
145 | +<!-- android:visibility="invisible"--> | |
146 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
147 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
148 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
149 | + | |
150 | + <ImageView | |
151 | + android:id="@+id/ivPortada" | |
152 | + android:layout_width="730dp" | |
153 | + android:layout_height="491dp" | |
154 | + android:layout_marginBottom="156dp" | |
155 | + android:elevation="10dp" | |
156 | + android:visibility="visible" | |
157 | + app:layout_constraintBottom_toBottomOf="parent" | |
158 | + app:layout_constraintEnd_toEndOf="parent" | |
159 | + app:layout_constraintStart_toStartOf="parent" | |
160 | + app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" | |
161 | + tools:srcCompat="@drawable/imagen_portada" /> | |
162 | + | |
163 | + <androidx.recyclerview.widget.RecyclerView | |
164 | + android:id="@+id/rcInventarioII" | |
165 | + android:layout_width="match_parent" | |
166 | + android:layout_height="0dp" | |
167 | + android:background="@android:color/darker_gray" | |
168 | + android:scrollbars="vertical" | |
169 | + android:visibility="gone" | |
170 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
171 | + app:layout_constraintEnd_toEndOf="parent" | |
172 | + app:layout_constraintStart_toStartOf="parent" | |
173 | + app:layout_constraintTop_toBottomOf="@id/tvInvImportados" | |
174 | + tools:listitem="@layout/item_principal" /> | |
175 | + | |
176 | + <androidx.constraintlayout.widget.Guideline | |
177 | + android:id="@+id/guideline6" | |
178 | + android:layout_width="wrap_content" | |
179 | + android:layout_height="wrap_content" | |
180 | + android:orientation="horizontal" | |
181 | + app:layout_constraintGuide_percent="0.97" /> | |
182 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 183 | \ No newline at end of file |
app/src/main/res/layout-xlarge/activity_splash.xml
... | ... | @@ -14,10 +14,7 @@ |
14 | 14 | android:layout_width="match_parent" |
15 | 15 | android:layout_height="150dp" |
16 | 16 | android:layout_margin="20dp" |
17 | - android:autoSizeMaxTextSize="1000sp" | |
18 | - android:autoSizeMinTextSize="30sp" | |
19 | - android:autoSizeStepGranularity="5sp" | |
20 | - android:autoSizeTextType="uniform" | |
17 | + android:textSize="95sp" | |
21 | 18 | android:gravity="center" |
22 | 19 | android:lines="1" |
23 | 20 | android:text="@string/bien" |
... | ... | @@ -44,10 +41,7 @@ |
44 | 41 | android:layout_width="match_parent" |
45 | 42 | android:layout_height="150dp" |
46 | 43 | android:layout_margin="20dp" |
47 | - android:autoSizeMaxTextSize="1000sp" | |
48 | - android:autoSizeMinTextSize="30sp" | |
49 | - android:autoSizeStepGranularity="5sp" | |
50 | - android:autoSizeTextType="uniform" | |
44 | + android:textSize="95sp" | |
51 | 45 | android:gravity="center" |
52 | 46 | android:lines="1" |
53 | 47 | android:text="@string/inventario" |
app/src/main/res/layout-xlarge/fragment_actua_maestros.xml
... | ... | @@ -6,21 +6,16 @@ |
6 | 6 | android:layout_height="match_parent" |
7 | 7 | tools:context=".UI.actualizacionMaestros.ActuaMaestrosFragment"> |
8 | 8 | |
9 | - | |
10 | 9 | <androidx.appcompat.widget.AppCompatTextView |
11 | 10 | android:id="@+id/tvActMaestros" |
12 | 11 | android:layout_width="match_parent" |
13 | 12 | android:layout_height="120dp" |
14 | 13 | android:layout_marginTop="15dp" |
15 | - android:autoSizeMaxTextSize="100sp" | |
16 | - android:autoSizeMinTextSize="20sp" | |
17 | - android:autoSizeStepGranularity="5sp" | |
18 | - android:autoSizeTextType="uniform" | |
14 | + android:textSize="60sp" | |
19 | 15 | android:gravity="center" |
20 | 16 | android:lines="1" |
21 | 17 | android:text="@string/tvActMaestros" |
22 | 18 | android:textColor="@color/colorAccent" |
23 | - | |
24 | 19 | app:fontFamily="sans-serif-condensed" |
25 | 20 | app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" |
26 | 21 | app:layout_constraintEnd_toEndOf="parent" |
... | ... | @@ -37,7 +32,7 @@ |
37 | 32 | android:lines="1" |
38 | 33 | android:text="@string/tvMedio" |
39 | 34 | android:textColor="@android:color/black" |
40 | - android:textSize="@dimen/SubTitulos10" | |
35 | + android:textSize="@dimen/VentasDeposito10" | |
41 | 36 | app:fontFamily="sans-serif-condensed" |
42 | 37 | app:layout_constraintEnd_toEndOf="parent" |
43 | 38 | app:layout_constraintStart_toStartOf="parent" |
... | ... | @@ -58,17 +53,17 @@ |
58 | 53 | android:id="@+id/obPorWifi" |
59 | 54 | android:layout_width="wrap_content" |
60 | 55 | android:layout_height="wrap_content" |
61 | - android:layout_margin="5dp" | |
56 | + android:layout_margin="10dp" | |
62 | 57 | android:checked="true" |
63 | 58 | android:padding="5dp" |
64 | 59 | android:text="@string/obPorWifi" |
65 | 60 | android:textSize="@dimen/SubTitulos10" /> |
66 | 61 | |
67 | 62 | <RadioButton |
68 | - android:id="@+id/obViaArchivo" | |
63 | + android:id="@+id/obImpInventarios" | |
69 | 64 | android:layout_width="wrap_content" |
70 | 65 | android:layout_height="wrap_content" |
71 | - android:layout_margin="5dp" | |
66 | + android:layout_margin="10dp" | |
72 | 67 | android:checked="false" |
73 | 68 | android:padding="5dp" |
74 | 69 | android:text="@string/obViaArchivo" |
... | ... | @@ -123,7 +118,6 @@ |
123 | 118 | app:layout_constraintEnd_toEndOf="parent" |
124 | 119 | app:layout_constraintStart_toStartOf="parent" /> |
125 | 120 | |
126 | - | |
127 | 121 | <ProgressBar |
128 | 122 | android:id="@+id/loading_view" |
129 | 123 | android:layout_width="wrap_content" |
app/src/main/res/layout-xlarge/fragment_configuracion.xml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | -<ScrollView | |
2 | +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | 3 | xmlns:app="http://schemas.android.com/apk/res-auto" |
4 | 4 | xmlns:tools="http://schemas.android.com/tools" |
5 | - tools:context=".UI.configuracion.ConfiguracionFragment" | |
6 | - xmlns:android="http://schemas.android.com/apk/res/android" | |
7 | - android:layout_width="match_parent" | |
8 | - android:layout_height="wrap_content"> | |
9 | - | |
10 | -<androidx.constraintlayout.widget.ConstraintLayout | |
11 | 5 | android:layout_width="match_parent" |
12 | 6 | android:layout_height="wrap_content" |
13 | 7 | tools:context=".UI.configuracion.ConfiguracionFragment"> |
14 | 8 | |
15 | - | |
16 | - <androidx.appcompat.widget.AppCompatTextView | |
17 | - android:id="@+id/textView2" | |
9 | + <androidx.constraintlayout.widget.ConstraintLayout | |
18 | 10 | android:layout_width="match_parent" |
19 | - android:layout_height="100dp" | |
20 | - android:layout_marginStart="8dp" | |
21 | - android:layout_marginEnd="8dp" | |
22 | - android:autoSizeMaxTextSize="100sp" | |
23 | - android:autoSizeMinTextSize="20sp" | |
24 | - android:autoSizeStepGranularity="5sp" | |
25 | - android:autoSizeTextType="uniform" | |
26 | - android:gravity="center" | |
27 | - android:lines="1" | |
28 | - android:text="@string/tvTituloConf" | |
29 | - android:textColor="@color/colorAccent" | |
30 | - android:textSize="@dimen/Titulos" | |
31 | - app:fontFamily="sans-serif-condensed" | |
32 | - app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" | |
33 | - app:layout_constraintEnd_toEndOf="parent" | |
34 | - app:layout_constraintStart_toStartOf="parent" | |
35 | - app:layout_constraintTop_toTopOf="parent" /> | |
36 | - | |
37 | - <TextView | |
38 | - android:id="@+id/tvSeleccioneServidor" | |
39 | - android:layout_width="0dp" | |
40 | - android:layout_height="wrap_content" | |
41 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
42 | - android:layout_marginTop="15dp" | |
43 | - android:gravity="start" | |
44 | - android:lines="1" | |
45 | - android:text="@string/tvSeleccioneServidor" | |
46 | - android:textColor="@android:color/black" | |
47 | - android:textSize="@dimen/SubTitulos10" | |
48 | - app:fontFamily="sans-serif-condensed" | |
49 | - app:layout_constraintBottom_toTopOf="@+id/spServidor" | |
50 | - app:layout_constraintEnd_toEndOf="parent" | |
51 | - app:layout_constraintStart_toStartOf="parent" | |
52 | - app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
53 | - | |
54 | - <Spinner | |
55 | - android:id="@+id/spServidor" | |
56 | - style="@android:style/Widget.Holo.Light.Spinner" | |
57 | - android:layout_width="0dp" | |
58 | - android:layout_height="wrap_content" | |
59 | - android:elevation="5dp" | |
60 | - android:textSize="@dimen/VentasDeposito10" | |
61 | - app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
62 | - app:layout_constraintEnd_toStartOf="@+id/btnValidarServidor" | |
63 | - app:layout_constraintHorizontal_chainStyle="packed" | |
64 | - app:layout_constraintStart_toStartOf="parent" | |
65 | - app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" | |
66 | - /> | |
67 | - | |
68 | - <Button | |
69 | - android:id="@+id/btnValidarServidor" | |
70 | - android:layout_width="wrap_content" | |
71 | - android:layout_height="wrap_content" | |
72 | - android:textColor="@android:color/white" | |
73 | - android:padding="10dp" | |
74 | - android:background="@drawable/boton_borde_redondeado" | |
75 | - android:text="@string/btnValidarServidor" | |
76 | - android:textSize="@dimen/SubTitulos10" | |
77 | - app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
78 | - app:layout_constraintEnd_toEndOf="parent" | |
79 | - app:layout_constraintHorizontal_chainStyle="packed" | |
80 | - app:layout_constraintStart_toEndOf="@id/spServidor" | |
81 | - app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
82 | - | |
83 | - <Button | |
84 | - android:id="@+id/btnAgregarServidor" | |
85 | - android:layout_width="0dp" | |
86 | - android:layout_height="wrap_content" | |
87 | - android:layout_marginTop="10dp" | |
88 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
89 | - android:layout_marginEnd="@dimen/MarginBotAgreSer" | |
90 | - android:text="@string/btnAgregarServidor" | |
91 | - android:textSize="@dimen/SubTitulos10" | |
92 | - android:textColor="@android:color/white" | |
93 | - android:padding="10dp" | |
94 | - android:background="@drawable/boton_borde_redondeado" | |
95 | - app:layout_constraintBottom_toTopOf="@+id/tvUbicacionCarpetas" | |
96 | - app:layout_constraintEnd_toEndOf="parent" | |
97 | - app:layout_constraintStart_toStartOf="parent" | |
98 | - app:layout_constraintTop_toBottomOf="@+id/btnValidarServidor" /> | |
99 | - | |
100 | - | |
101 | - <TextView | |
102 | - android:id="@+id/tvUbicacionCarpetas" | |
103 | - android:layout_width="0dp" | |
104 | - android:layout_height="wrap_content" | |
105 | -android:visibility="gone" | |
106 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
107 | - android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
108 | - android:gravity="start" | |
109 | - android:lines="1" | |
110 | - android:text="@string/tvUbicacionCarpetas" | |
111 | - android:textColor="@android:color/black" | |
112 | - android:textSize="@dimen/SubTitulos" | |
113 | - app:fontFamily="sans-serif-condensed" | |
114 | - app:layout_constraintBottom_toTopOf="@+id/ibSearch" | |
115 | - app:layout_constraintEnd_toEndOf="parent" | |
116 | - app:layout_constraintStart_toStartOf="parent" | |
117 | - app:layout_constraintTop_toBottomOf="@+id/btnAgregarServidor" /> | |
118 | - | |
119 | - <ImageButton | |
120 | - android:id="@+id/ibSearch" | |
121 | - android:layout_width="36dp" | |
122 | - android:layout_height="37dp" | |
123 | - android:layout_margin="10dp" | |
124 | - android:src="@drawable/search" | |
125 | - android:textColor="@android:color/white" | |
126 | - android:padding="10dp" | |
127 | - android:visibility="gone" | |
128 | - android:background="@drawable/boton_borde_redondeado" | |
129 | - app:layout_constraintEnd_toStartOf="@+id/etRuta" | |
130 | - app:layout_constraintStart_toStartOf="parent" | |
131 | - app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
132 | - | |
133 | - <EditText | |
134 | - android:id="@+id/etRuta" | |
135 | - android:layout_width="0dp" | |
136 | - android:layout_height="wrap_content" | |
137 | - android:layout_marginTop="10dp" | |
138 | - android:layout_marginEnd="10dp" | |
139 | - android:clickable="true" | |
140 | - android:ems="10" | |
141 | - android:focusable="true" | |
142 | - android:visibility="gone" | |
143 | - android:inputType="textPersonName" | |
144 | - android:lines="1" | |
145 | - android:text="" | |
146 | - android:textSize="@dimen/NormalText" | |
147 | - app:layout_constraintEnd_toEndOf="parent" | |
148 | - app:layout_constraintStart_toEndOf="@id/ibSearch" | |
149 | - app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
150 | - | |
151 | - <TextView | |
152 | - android:id="@+id/tvActuFecha" | |
153 | - android:layout_width="0dp" | |
154 | - android:layout_height="wrap_content" | |
155 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
156 | - android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
157 | - android:gravity="start" | |
158 | - android:lines="1" | |
159 | - android:text="@string/tvTituloArea" | |
160 | - android:textColor="@android:color/black" | |
161 | - android:textSize="@dimen/SubTitulos10" | |
162 | - app:fontFamily="sans-serif-condensed" | |
163 | - app:layout_constraintEnd_toEndOf="parent" | |
164 | - app:layout_constraintStart_toStartOf="parent" | |
165 | - app:layout_constraintTop_toBottomOf="@+id/etRuta" /> | |
166 | - | |
167 | - <RadioGroup | |
168 | - android:id="@+id/rgFechaHora" | |
169 | - android:layout_width="0dp" | |
170 | 11 | android:layout_height="wrap_content" |
12 | + tools:context=".UI.configuracion.ConfiguracionFragment"> | |
171 | 13 | |
172 | - android:gravity="center" | |
173 | - android:orientation="horizontal" | |
174 | - app:layout_constraintEnd_toEndOf="parent" | |
175 | - app:layout_constraintStart_toStartOf="parent" | |
176 | - app:layout_constraintTop_toBottomOf="@+id/tvActuFecha"> | |
177 | 14 | |
178 | - <RadioButton | |
179 | - android:id="@+id/rbVentas" | |
180 | - android:layout_width="wrap_content" | |
15 | + <androidx.appcompat.widget.AppCompatTextView | |
16 | + android:id="@+id/textView2" | |
17 | + android:layout_width="match_parent" | |
18 | + android:layout_height="100dp" | |
19 | + android:layout_marginStart="8dp" | |
20 | + android:layout_marginEnd="8dp" | |
21 | + android:gravity="center" | |
22 | + android:lines="1" | |
23 | + android:text="@string/tvTituloConf" | |
24 | + android:textColor="@color/colorAccent" | |
25 | + android:textSize="60sp" | |
26 | + | |
27 | + app:fontFamily="sans-serif-condensed" | |
28 | + app:layout_constraintBottom_toTopOf="@+id/tvSeleccioneServidor" | |
29 | + app:layout_constraintEnd_toEndOf="parent" | |
30 | + app:layout_constraintStart_toStartOf="parent" | |
31 | + app:layout_constraintTop_toTopOf="parent" /> | |
32 | + | |
33 | + <TextView | |
34 | + android:id="@+id/tvSeleccioneServidor" | |
35 | + android:layout_width="0dp" | |
36 | + android:layout_height="wrap_content" | |
37 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
38 | + android:layout_marginTop="15dp" | |
39 | + android:gravity="start" | |
40 | + android:lines="1" | |
41 | + android:text="@string/tvSeleccioneServidor" | |
42 | + android:textColor="@android:color/black" | |
43 | + android:textSize="@dimen/SubTitulos10" | |
44 | + app:fontFamily="sans-serif-condensed" | |
45 | + app:layout_constraintBottom_toTopOf="@+id/spServidor" | |
46 | + app:layout_constraintEnd_toEndOf="parent" | |
47 | + app:layout_constraintStart_toStartOf="parent" | |
48 | + app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
49 | + | |
50 | + <Spinner | |
51 | + android:id="@+id/spServidor" | |
52 | + style="@android:style/Widget.Holo.Light.Spinner" | |
53 | + android:layout_width="0dp" | |
181 | 54 | android:layout_height="wrap_content" |
182 | - android:layout_margin="5dp" | |
183 | - android:checked="true" | |
184 | - android:padding="5dp" | |
185 | - android:text="@string/rbVentas" | |
186 | - android:textSize="@dimen/SubTitulos10" /> | |
187 | - | |
188 | - <RadioButton | |
189 | - android:id="@+id/rbDeposito" | |
55 | + android:elevation="5dp" | |
56 | + android:textSize="@dimen/VentasDeposito10" | |
57 | + app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
58 | + app:layout_constraintEnd_toStartOf="@+id/btnValidarServidor" | |
59 | + app:layout_constraintHorizontal_chainStyle="packed" | |
60 | + app:layout_constraintStart_toStartOf="parent" | |
61 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
62 | + | |
63 | + <Button | |
64 | + android:id="@+id/btnValidarServidor" | |
190 | 65 | android:layout_width="wrap_content" |
191 | 66 | android:layout_height="wrap_content" |
192 | - android:layout_margin="5dp" | |
193 | - android:checked="false" | |
194 | - android:padding="5dp" | |
195 | - android:text="@string/rbDeposito" | |
196 | - android:textSize="@dimen/SubTitulos10" /> | |
197 | - | |
198 | - </RadioGroup> | |
199 | - | |
200 | - <TextView | |
201 | - android:id="@+id/tvLosProductos" | |
202 | - android:layout_width="0dp" | |
203 | - android:layout_height="wrap_content" | |
204 | - android:layout_marginStart="@dimen/MarginBotAgreSer" | |
205 | - android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
206 | - android:gravity="start" | |
207 | - android:lines="1" | |
208 | - android:text="@string/tvLosProductos" | |
209 | - android:textColor="@android:color/black" | |
210 | - android:textSize="@dimen/SubTitulos10" | |
211 | - app:fontFamily="sans-serif-condensed" | |
212 | - app:layout_constraintEnd_toEndOf="parent" | |
213 | - app:layout_constraintStart_toStartOf="parent" | |
214 | - app:layout_constraintTop_toBottomOf="@+id/rgFechaHora" /> | |
215 | - | |
216 | - <RadioGroup | |
217 | - android:id="@+id/rgLosProductos" | |
218 | - android:layout_width="0dp" | |
219 | - android:layout_height="wrap_content" | |
67 | + android:background="@drawable/boton_borde_redondeado" | |
68 | + android:padding="10dp" | |
69 | + android:text="@string/btnValidarServidor" | |
70 | + android:textColor="@android:color/white" | |
71 | + android:textSize="@dimen/SubTitulos10" | |
72 | + app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" | |
73 | + app:layout_constraintEnd_toEndOf="parent" | |
74 | + app:layout_constraintHorizontal_chainStyle="packed" | |
75 | + app:layout_constraintStart_toEndOf="@id/spServidor" | |
76 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
77 | + | |
78 | + <Button | |
79 | + android:id="@+id/btnAgregarServidor" | |
80 | + android:layout_width="0dp" | |
81 | + android:layout_height="wrap_content" | |
82 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
83 | + android:layout_marginTop="10dp" | |
84 | + android:layout_marginEnd="@dimen/MarginBotAgreSer" | |
85 | + android:background="@drawable/boton_borde_redondeado" | |
86 | + android:padding="10dp" | |
87 | + android:text="@string/btnAgregarServidor" | |
88 | + android:textColor="@android:color/white" | |
89 | + android:textSize="@dimen/SubTitulos10" | |
90 | + app:layout_constraintBottom_toTopOf="@+id/tvUbicacionCarpetas" | |
91 | + app:layout_constraintEnd_toEndOf="parent" | |
92 | + app:layout_constraintStart_toStartOf="parent" | |
93 | + app:layout_constraintTop_toBottomOf="@+id/btnValidarServidor" /> | |
94 | + | |
95 | + | |
96 | + <TextView | |
97 | + android:id="@+id/tvUbicacionCarpetas" | |
98 | + android:layout_width="0dp" | |
99 | + android:layout_height="wrap_content" | |
100 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
101 | + android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
102 | + android:gravity="start" | |
103 | + android:lines="1" | |
104 | + android:text="@string/tvUbicacionCarpetas" | |
105 | + android:textColor="@android:color/black" | |
106 | + android:textSize="@dimen/SubTitulos" | |
107 | + android:visibility="gone" | |
108 | + app:fontFamily="sans-serif-condensed" | |
109 | + app:layout_constraintBottom_toTopOf="@+id/ibSearch" | |
110 | + app:layout_constraintEnd_toEndOf="parent" | |
111 | + app:layout_constraintStart_toStartOf="parent" | |
112 | + app:layout_constraintTop_toBottomOf="@+id/btnAgregarServidor" /> | |
113 | + | |
114 | + <ImageButton | |
115 | + android:id="@+id/ibSearch" | |
116 | + android:layout_width="36dp" | |
117 | + android:layout_height="37dp" | |
118 | + android:layout_margin="10dp" | |
119 | + android:background="@drawable/boton_borde_redondeado" | |
120 | + android:padding="10dp" | |
121 | + android:src="@drawable/search" | |
122 | + android:textColor="@android:color/white" | |
123 | + android:visibility="gone" | |
124 | + app:layout_constraintEnd_toStartOf="@+id/etRuta" | |
125 | + app:layout_constraintStart_toStartOf="parent" | |
126 | + app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
127 | + | |
128 | + <EditText | |
129 | + android:id="@+id/etRuta" | |
130 | + android:layout_width="0dp" | |
131 | + android:layout_height="wrap_content" | |
132 | + android:layout_marginTop="10dp" | |
133 | + android:layout_marginEnd="10dp" | |
134 | + android:clickable="true" | |
135 | + android:ems="10" | |
136 | + android:focusable="true" | |
137 | + android:inputType="textPersonName" | |
138 | + android:lines="1" | |
139 | + android:text="" | |
140 | + android:textSize="@dimen/NormalText" | |
141 | + android:visibility="gone" | |
142 | + app:layout_constraintEnd_toEndOf="parent" | |
143 | + app:layout_constraintStart_toEndOf="@id/ibSearch" | |
144 | + app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> | |
145 | + | |
146 | + <TextView | |
147 | + android:id="@+id/tvActuFecha" | |
148 | + android:layout_width="0dp" | |
149 | + android:layout_height="wrap_content" | |
150 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
151 | + android:layout_marginTop="@dimen/MarginTopSubTitulos" | |
152 | + android:gravity="start" | |
153 | + android:lines="1" | |
154 | + android:text="@string/tvTituloArea" | |
155 | + android:textColor="@android:color/black" | |
156 | + android:textSize="@dimen/SubTitulos10" | |
157 | + app:fontFamily="sans-serif-condensed" | |
158 | + app:layout_constraintEnd_toEndOf="parent" | |
159 | + app:layout_constraintStart_toStartOf="parent" | |
160 | + app:layout_constraintTop_toBottomOf="@+id/etRuta" /> | |
161 | + | |
162 | + <RadioGroup | |
163 | + android:id="@+id/rgFechaHora" | |
164 | + android:layout_width="0dp" | |
165 | + android:layout_height="wrap_content" | |
220 | 166 | |
221 | - android:gravity="center" | |
222 | - android:orientation="vertical" | |
223 | - app:layout_constraintEnd_toEndOf="parent" | |
224 | - app:layout_constraintStart_toStartOf="parent" | |
225 | - app:layout_constraintTop_toBottomOf="@+id/tvLosProductos"> | |
167 | + android:gravity="center" | |
168 | + android:orientation="horizontal" | |
169 | + app:layout_constraintEnd_toEndOf="parent" | |
170 | + app:layout_constraintStart_toStartOf="parent" | |
171 | + app:layout_constraintTop_toBottomOf="@+id/tvActuFecha"> | |
172 | + | |
173 | + <RadioButton | |
174 | + android:id="@+id/rbVentas" | |
175 | + android:layout_width="wrap_content" | |
176 | + android:layout_height="wrap_content" | |
177 | + android:layout_margin="5dp" | |
178 | + android:checked="true" | |
179 | + android:padding="5dp" | |
180 | + android:text="@string/rbVentas" | |
181 | + android:textSize="@dimen/SubTitulos10" /> | |
182 | + | |
183 | + <RadioButton | |
184 | + android:id="@+id/rbDeposito" | |
185 | + android:layout_width="wrap_content" | |
186 | + android:layout_height="wrap_content" | |
187 | + android:layout_margin="5dp" | |
188 | + android:checked="false" | |
189 | + android:padding="5dp" | |
190 | + android:text="@string/rbDeposito" | |
191 | + android:textSize="@dimen/SubTitulos10" /> | |
192 | + | |
193 | + </RadioGroup> | |
194 | + | |
195 | + <TextView | |
196 | + android:id="@+id/tvLosProductos" | |
197 | + android:layout_width="0dp" | |
198 | + android:layout_height="wrap_content" | |
199 | + android:layout_marginStart="@dimen/MarginBotAgreSer" | |
200 | + android:layout_marginEnd="@dimen/MarginTopSubTitulos" | |
201 | + android:gravity="start" | |
202 | + android:lines="1" | |
203 | + android:text="@string/tvLosProductos" | |
204 | + android:textColor="@android:color/black" | |
205 | + android:textSize="@dimen/SubTitulos10" | |
206 | + app:fontFamily="sans-serif-condensed" | |
207 | + app:layout_constraintEnd_toEndOf="parent" | |
208 | + app:layout_constraintStart_toStartOf="parent" | |
209 | + app:layout_constraintTop_toBottomOf="@+id/rgFechaHora" /> | |
210 | + | |
211 | + <RadioGroup | |
212 | + android:id="@+id/rgLosProductos" | |
213 | + android:layout_width="0dp" | |
214 | + android:layout_height="wrap_content" | |
226 | 215 | |
227 | - <RadioButton | |
228 | - android:id="@+id/rbProInclu" | |
229 | - android:layout_width="match_parent" | |
216 | + android:gravity="center" | |
217 | + android:orientation="vertical" | |
218 | + app:layout_constraintEnd_toEndOf="parent" | |
219 | + app:layout_constraintStart_toStartOf="parent" | |
220 | + app:layout_constraintTop_toBottomOf="@+id/tvLosProductos"> | |
221 | + | |
222 | + <RadioButton | |
223 | + android:id="@+id/rbProInclu" | |
224 | + android:layout_width="match_parent" | |
225 | + android:layout_height="wrap_content" | |
226 | + android:layout_margin="@dimen/PadingCbyRb" | |
227 | + android:checked="true" | |
228 | + android:padding="@dimen/PadingCbyRb" | |
229 | + android:text="@string/rbProInclu" | |
230 | + android:textSize="@dimen/SubTitulos10" /> | |
231 | + | |
232 | + <RadioButton | |
233 | + android:id="@+id/rbProNoInclu" | |
234 | + android:layout_width="match_parent" | |
235 | + android:layout_height="wrap_content" | |
236 | + android:layout_margin="@dimen/PadingCbyRb" | |
237 | + android:checked="false" | |
238 | + android:padding="@dimen/PadingCbyRb" | |
239 | + android:text="@string/rbProNoInclu" | |
240 | + android:textSize="@dimen/SubTitulos10" /> | |
241 | + | |
242 | + </RadioGroup> | |
243 | + | |
244 | + <CheckBox | |
245 | + android:id="@+id/cbHabiLectura" | |
246 | + android:layout_width="0dp" | |
230 | 247 | android:layout_height="wrap_content" |
231 | 248 | android:layout_margin="@dimen/PadingCbyRb" |
232 | - android:checked="true" | |
233 | 249 | android:padding="@dimen/PadingCbyRb" |
234 | - android:text="@string/rbProInclu" | |
235 | - android:textSize="@dimen/SubTitulos10" /> | |
250 | + android:text="@string/cbHabiLectura" | |
251 | + android:textSize="@dimen/SubTitulos10" | |
252 | + app:layout_constraintEnd_toEndOf="parent" | |
253 | + app:layout_constraintStart_toStartOf="parent" | |
254 | + app:layout_constraintTop_toBottomOf="@+id/rgLosProductos" /> | |
255 | + | |
256 | + <CheckBox | |
257 | + android:id="@+id/cbMostrarStock" | |
258 | + android:layout_width="0dp" | |
259 | + android:layout_height="wrap_content" | |
260 | + android:layout_margin="@dimen/PadingCbyRb" | |
261 | + android:padding="@dimen/PadingCbyRb" | |
262 | + android:text="@string/cbMostrarStock" | |
263 | + android:textSize="@dimen/SubTitulos10" | |
264 | + app:layout_constraintEnd_toEndOf="parent" | |
265 | + app:layout_constraintStart_toStartOf="parent" | |
266 | + app:layout_constraintTop_toBottomOf="@+id/cbHabiLectura" /> | |
236 | 267 | |
237 | - <RadioButton | |
238 | - android:id="@+id/rbProNoInclu" | |
239 | - android:layout_width="match_parent" | |
268 | + | |
269 | + <Button | |
270 | + android:id="@+id/btnAskTimeServer" | |
271 | + android:layout_width="wrap_content" | |
272 | + android:layout_height="wrap_content" | |
273 | + android:layout_margin="10dp" | |
274 | + android:background="@drawable/boton_borde_redondeado" | |
275 | + android:checked="false" | |
276 | + android:padding="@dimen/PadingCbyRb" | |
277 | + android:text="@string/btnAskTimeServer" | |
278 | + android:textColor="@android:color/white" | |
279 | + android:textSize="@dimen/md_message_textsize" | |
280 | + android:visibility="gone" | |
281 | + app:layout_constraintStart_toStartOf="parent" | |
282 | + app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
283 | + | |
284 | + <CheckBox | |
285 | + android:id="@+id/cbAskTimeServerToStart" | |
286 | + android:layout_width="wrap_content" | |
240 | 287 | android:layout_height="wrap_content" |
241 | 288 | android:layout_margin="@dimen/PadingCbyRb" |
242 | 289 | android:checked="false" |
243 | 290 | android:padding="@dimen/PadingCbyRb" |
244 | - android:text="@string/rbProNoInclu" | |
245 | - android:textSize="@dimen/SubTitulos10"/> | |
291 | + android:text="@string/cbAskTimeServerToStart" | |
292 | + android:textSize="@dimen/SubTitulos10" | |
293 | + android:visibility="visible" | |
246 | 294 | |
247 | - </RadioGroup> | |
295 | + app:layout_constraintStart_toStartOf="parent" | |
296 | + app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
248 | 297 | |
249 | - <CheckBox | |
250 | - android:id="@+id/cbHabiLectura" | |
251 | - android:layout_width="0dp" | |
252 | - android:layout_height="wrap_content" | |
253 | - android:layout_margin="@dimen/PadingCbyRb" | |
254 | - android:padding="@dimen/PadingCbyRb" | |
255 | - android:text="@string/cbHabiLectura" | |
256 | - android:textSize="@dimen/SubTitulos10" | |
257 | - app:layout_constraintEnd_toEndOf="parent" | |
258 | - app:layout_constraintStart_toStartOf="parent" | |
259 | - app:layout_constraintTop_toBottomOf="@+id/rgLosProductos" /> | |
260 | - | |
261 | - <CheckBox | |
262 | - android:id="@+id/cbMostrarStock" | |
263 | - android:layout_width="0dp" | |
264 | - android:layout_height="wrap_content" | |
265 | - android:layout_margin="@dimen/PadingCbyRb" | |
266 | - android:padding="@dimen/PadingCbyRb" | |
267 | - android:text="@string/cbMostrarStock" | |
268 | - android:textSize="@dimen/SubTitulos10" | |
269 | - app:layout_constraintEnd_toEndOf="parent" | |
270 | - app:layout_constraintStart_toStartOf="parent" | |
271 | - app:layout_constraintTop_toBottomOf="@+id/cbHabiLectura" /> | |
272 | - | |
273 | -<!-- <TextView--> | |
274 | -<!-- android:id="@+id/tvColumMostrar"--> | |
275 | -<!-- android:layout_width="0dp"--> | |
276 | -<!-- android:layout_height="wrap_content"--> | |
277 | -<!-- android:layout_marginStart="@dimen/MarginBotAgreSer"--> | |
278 | -<!-- android:layout_marginEnd="@dimen/MarginTopSubTitulos"--> | |
279 | -<!-- android:gravity="start"--> | |
280 | -<!-- android:lines="1"--> | |
281 | -<!-- android:text="@string/tvColumMostrar"--> | |
282 | -<!-- android:textColor="@android:color/black"--> | |
283 | -<!-- android:textSize="@dimen/VentasDeposito10"--> | |
284 | -<!-- app:fontFamily="sans-serif-condensed"--> | |
285 | -<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
286 | -<!-- app:layout_constraintStart_toStartOf="parent"--> | |
287 | -<!-- app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" />--> | |
288 | - | |
289 | -<!-- <RadioGroup--> | |
290 | -<!-- android:id="@+id/rgCodigosMostrar"--> | |
291 | -<!-- android:layout_width="0dp"--> | |
292 | -<!-- android:layout_height="wrap_content"--> | |
293 | - | |
294 | -<!-- android:gravity="center"--> | |
295 | -<!-- android:orientation="horizontal"--> | |
296 | -<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
297 | -<!-- app:layout_constraintStart_toStartOf="parent"--> | |
298 | -<!-- app:layout_constraintTop_toBottomOf="@+id/tvColumMostrar">--> | |
299 | - | |
300 | -<!-- <RadioButton--> | |
301 | -<!-- android:id="@+id/rbCodigoDebo"--> | |
302 | -<!-- android:layout_width="wrap_content"--> | |
303 | -<!-- android:layout_height="wrap_content"--> | |
304 | -<!-- android:layout_margin="5dp"--> | |
305 | -<!-- android:checked="true"--> | |
306 | -<!-- android:padding="5dp"--> | |
307 | -<!-- android:text="@string/rbCodigoDebo"--> | |
308 | -<!-- android:textSize="@dimen/NormalText" />--> | |
309 | - | |
310 | -<!-- <RadioButton--> | |
311 | -<!-- android:id="@+id/rbCodigoOrigen"--> | |
312 | -<!-- android:layout_width="wrap_content"--> | |
313 | -<!-- android:layout_height="wrap_content"--> | |
314 | -<!-- android:layout_margin="5dp"--> | |
315 | -<!-- android:checked="false"--> | |
316 | -<!-- android:padding="5dp"--> | |
317 | -<!-- android:text="@string/rbCodigoOrigen"--> | |
318 | -<!-- android:textSize="@dimen/NormalText" />--> | |
319 | - | |
320 | -<!-- <RadioButton--> | |
321 | -<!-- android:id="@+id/rbCodigoBarras"--> | |
322 | -<!-- android:layout_width="wrap_content"--> | |
323 | -<!-- android:layout_height="wrap_content"--> | |
324 | -<!-- android:layout_margin="5dp"--> | |
325 | -<!-- android:padding="5dp"--> | |
326 | -<!-- android:text="@string/rbCodigoBarras"--> | |
327 | -<!-- android:textSize="@dimen/NormalText" />--> | |
328 | -<!-- </RadioGroup>--> | |
329 | - | |
330 | -<!-- <CheckBox--> | |
331 | -<!-- android:id="@+id/cbMostrarExistencia"--> | |
332 | -<!-- android:layout_width="wrap_content"--> | |
333 | -<!-- android:layout_height="wrap_content"--> | |
334 | -<!-- android:layout_margin="@dimen/PadingCbyRb"--> | |
335 | -<!-- android:padding="@dimen/PadingCbyRb"--> | |
336 | -<!-- android:text="@string/cbMostrarExistencia"--> | |
337 | -<!-- android:textSize="@dimen/NormalText"--> | |
338 | -<!-- android:checked="false"--> | |
339 | -<!-- app:layout_constraintEnd_toStartOf="@+id/cbMostrarPrecio"--> | |
340 | -<!-- app:layout_constraintStart_toStartOf="parent"--> | |
341 | -<!-- app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" />--> | |
342 | - | |
343 | -<!-- <CheckBox--> | |
344 | -<!-- android:id="@+id/cbMostrarPrecio"--> | |
345 | -<!-- android:layout_width="wrap_content"--> | |
346 | -<!-- android:layout_height="wrap_content"--> | |
347 | -<!-- android:layout_margin="@dimen/PadingCbyRb"--> | |
348 | -<!-- android:padding="@dimen/PadingCbyRb"--> | |
349 | -<!-- android:text="@string/cbMostrarPrecio"--> | |
350 | -<!-- android:textSize="@dimen/NormalText"--> | |
351 | -<!-- android:checked="false"--> | |
352 | -<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
353 | -<!-- app:layout_constraintStart_toEndOf="@+id/cbMostrarExistencia"--> | |
354 | -<!-- app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" />--> | |
355 | - | |
356 | - <Button | |
357 | - android:id="@+id/btnGuardar" | |
358 | - android:layout_width="wrap_content" | |
359 | - android:layout_height="wrap_content" | |
360 | - android:layout_marginTop="20dp" | |
361 | - android:text="@string/btnGuardar" | |
362 | - android:textSize="@dimen/SubTitulos10" | |
363 | - app:layout_constraintEnd_toEndOf="parent" | |
364 | - android:textColor="@android:color/white" | |
365 | - android:padding="10dp" | |
366 | - android:background="@drawable/boton_borde_redondeado" | |
367 | - app:layout_constraintStart_toStartOf="parent" | |
368 | - app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
369 | - | |
370 | -</androidx.constraintlayout.widget.ConstraintLayout> | |
298 | + <Button | |
299 | + android:id="@+id/btnGuardar" | |
300 | + android:layout_width="wrap_content" | |
301 | + android:layout_height="wrap_content" | |
302 | + android:background="@drawable/boton_borde_redondeado" | |
303 | + android:padding="10dp" | |
304 | + android:text="@string/btnGuardar" | |
305 | + android:textColor="@android:color/white" | |
306 | + android:textSize="@dimen/SubTitulos10" | |
307 | + app:layout_constraintEnd_toEndOf="parent" | |
308 | + app:layout_constraintStart_toStartOf="parent" | |
309 | + app:layout_constraintTop_toBottomOf="@+id/cbAskTimeServerToStart" /> | |
310 | + | |
311 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
371 | 312 | </ScrollView> |
372 | 313 |
app/src/main/res/layout-xlarge/fragment_detalle_art_sec.xml
... | ... | @@ -0,0 +1,348 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + android:id="@+id/nsPedidosDatos" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent"> | |
7 | + | |
8 | + <androidx.cardview.widget.CardView | |
9 | + android:id="@+id/cvItem1" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="wrap_content" | |
12 | + android:layout_marginStart="5dp" | |
13 | + android:layout_marginTop="5dp" | |
14 | + android:layout_marginEnd="5dp" | |
15 | + app:cardBackgroundColor="@android:color/darker_gray" | |
16 | + app:cardCornerRadius="25dp" | |
17 | + app:cardElevation="10dp" | |
18 | + app:layout_constraintEnd_toEndOf="parent" | |
19 | + app:layout_constraintStart_toStartOf="parent" | |
20 | + app:layout_constraintTop_toTopOf="parent"> | |
21 | + | |
22 | + <androidx.constraintlayout.widget.ConstraintLayout | |
23 | + android:id="@+id/clayout" | |
24 | + android:layout_width="match_parent" | |
25 | + android:layout_height="match_parent"> | |
26 | + | |
27 | + <!-- <TextView--> | |
28 | + <!-- android:id="@+id/tvTime"--> | |
29 | + <!-- android:layout_width="0dp"--> | |
30 | + <!-- android:layout_height="wrap_content"--> | |
31 | + <!-- android:layout_marginTop="15dp"--> | |
32 | + <!-- android:gravity="center_horizontal"--> | |
33 | + <!-- android:orientation="horizontal"--> | |
34 | + <!-- android:text="Detalle del artículo"--> | |
35 | + <!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
36 | + <!-- android:textSize="@dimen/Titulos"--> | |
37 | + <!-- android:textStyle="bold"--> | |
38 | + <!-- app:layout_constraintEnd_toEndOf="parent"--> | |
39 | + <!-- app:layout_constraintStart_toStartOf="parent"--> | |
40 | + <!-- app:layout_constraintTop_toTopOf="parent" />--> | |
41 | + | |
42 | + <TextView | |
43 | + android:id="@+id/tvDescripcion" | |
44 | + android:layout_width="wrap_content" | |
45 | + android:layout_height="0dp" | |
46 | + android:layout_marginTop="10dp" | |
47 | + android:layout_marginBottom="30dp" | |
48 | + android:gravity="center_horizontal" | |
49 | + android:text="coaca" | |
50 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
51 | + android:textSize="30sp" | |
52 | + android:textStyle="bold" | |
53 | + app:layout_constraintEnd_toEndOf="parent" | |
54 | + app:layout_constraintStart_toStartOf="parent" | |
55 | + app:layout_constraintTop_toTopOf="parent" /> | |
56 | + | |
57 | + | |
58 | + <TextView | |
59 | + android:id="@+id/textView18" | |
60 | + android:layout_width="wrap_content" | |
61 | + android:layout_height="wrap_content" | |
62 | + android:layout_marginTop="10dp" | |
63 | + android:text="Códigos:" | |
64 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
65 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
66 | + app:layout_constraintStart_toStartOf="parent" | |
67 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
68 | + | |
69 | + <TextView | |
70 | + android:id="@+id/textView19" | |
71 | + android:layout_width="wrap_content" | |
72 | + android:layout_height="wrap_content" | |
73 | + android:layout_marginStart="5dp" | |
74 | + android:text="DEBO:" | |
75 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
76 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
77 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView18" | |
78 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
79 | + | |
80 | + <TextView | |
81 | + android:id="@+id/tvSector" | |
82 | + android:layout_width="0dp" | |
83 | + android:layout_height="wrap_content" | |
84 | + android:layout_marginStart="5dp" | |
85 | + android:text="99" | |
86 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
87 | + android:textSize="@dimen/SubTitulos10" | |
88 | + android:textStyle="bold" | |
89 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView19" | |
90 | + app:layout_constraintStart_toEndOf="@+id/textView19" /> | |
91 | + | |
92 | + <TextView | |
93 | + android:id="@+id/tvCodigo" | |
94 | + android:layout_width="0dp" | |
95 | + android:layout_height="wrap_content" | |
96 | + android:layout_marginTop="10dp" | |
97 | + android:text="999999" | |
98 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
99 | + android:textSize="@dimen/SubTitulos10" | |
100 | + android:textStyle="bold" | |
101 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvSector" | |
102 | + app:layout_constraintStart_toEndOf="@id/tvSector" /> | |
103 | + | |
104 | + | |
105 | + <TextView | |
106 | + android:id="@+id/textView1" | |
107 | + android:layout_width="0dp" | |
108 | + android:layout_height="wrap_content" | |
109 | + android:layout_marginStart="5dp" | |
110 | + android:layout_marginTop="10dp" | |
111 | + android:text="barras:" | |
112 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
113 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
114 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvCodigo" | |
115 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
116 | + | |
117 | + <TextView | |
118 | + android:id="@+id/tvCodigoBarras" | |
119 | + android:layout_width="wrap_content" | |
120 | + android:layout_height="wrap_content" | |
121 | + android:layout_marginStart="5dp" | |
122 | + android:text="12346579012345" | |
123 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
124 | + android:textSize="@dimen/SubTitulos10" | |
125 | + android:textStyle="bold" | |
126 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView1" | |
127 | + app:layout_constraintStart_toEndOf="@id/textView1" /> | |
128 | + | |
129 | + <TextView | |
130 | + android:id="@+id/textView2" | |
131 | + android:layout_width="wrap_content" | |
132 | + android:layout_height="wrap_content" | |
133 | + android:layout_marginStart="5dp" | |
134 | + android:layout_marginTop="10dp" | |
135 | + android:text="origen:" | |
136 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
137 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
138 | + app:layout_constraintStart_toEndOf="@+id/textView18" | |
139 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
140 | + | |
141 | + | |
142 | + <TextView | |
143 | + android:id="@+id/tvCodigoOrigen" | |
144 | + android:layout_width="wrap_content" | |
145 | + android:layout_height="wrap_content" | |
146 | + android:layout_marginStart="5dp" | |
147 | + android:layout_marginTop="10dp" | |
148 | + android:text="1234567890123" | |
149 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
150 | + android:textSize="@dimen/SubTitulos10" | |
151 | + android:textStyle="bold" | |
152 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView2" | |
153 | + app:layout_constraintStart_toEndOf="@+id/textView2" | |
154 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
155 | + | |
156 | + <TextView | |
157 | + android:id="@+id/textView9" | |
158 | + android:layout_width="wrap_content" | |
159 | + android:layout_height="wrap_content" | |
160 | + android:layout_marginTop="10dp" | |
161 | + android:text="Precio:" | |
162 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
163 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
164 | + app:layout_constraintStart_toStartOf="parent" | |
165 | + app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
166 | + | |
167 | + <TextView | |
168 | + android:id="@+id/textView12" | |
169 | + android:layout_width="wrap_content" | |
170 | + android:layout_height="wrap_content" | |
171 | + android:layout_marginStart="5dp" | |
172 | + android:layout_marginTop="10dp" | |
173 | + android:text="venta:" | |
174 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
175 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
176 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView9" | |
177 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
178 | + | |
179 | + <TextView | |
180 | + android:id="@+id/tvPrecio" | |
181 | + android:layout_width="wrap_content" | |
182 | + android:layout_height="wrap_content" | |
183 | + android:layout_marginStart="5dp" | |
184 | + android:layout_marginTop="10dp" | |
185 | + android:text="99999.99" | |
186 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
187 | + android:textSize="@dimen/SubTitulos10" | |
188 | + android:textStyle="bold" | |
189 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView12" | |
190 | + app:layout_constraintStart_toEndOf="@+id/textView12" /> | |
191 | + | |
192 | + <TextView | |
193 | + android:id="@+id/textView8" | |
194 | + android:layout_width="wrap_content" | |
195 | + android:layout_height="wrap_content" | |
196 | + android:text="Costo:" | |
197 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
198 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
199 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvPrecio" | |
200 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
201 | + | |
202 | + <TextView | |
203 | + android:id="@+id/tvCosto" | |
204 | + android:layout_width="wrap_content" | |
205 | + android:layout_height="wrap_content" | |
206 | + android:layout_marginStart="5dp" | |
207 | + android:layout_marginTop="10dp" | |
208 | + android:text="9999.99" | |
209 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
210 | + android:textSize="@dimen/SubTitulos10" | |
211 | + android:textStyle="bold" | |
212 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView8" | |
213 | + app:layout_constraintStart_toEndOf="@+id/textView8" /> | |
214 | + | |
215 | + <TextView | |
216 | + android:id="@+id/textView3" | |
217 | + android:layout_width="wrap_content" | |
218 | + android:layout_height="wrap_content" | |
219 | + android:layout_marginTop="10dp" | |
220 | + android:text="Depósito:" | |
221 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
222 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
223 | + app:layout_constraintStart_toStartOf="parent" | |
224 | + app:layout_constraintTop_toBottomOf="@+id/textView9" /> | |
225 | + | |
226 | + <TextView | |
227 | + android:id="@+id/tvDeposito" | |
228 | + android:layout_width="wrap_content" | |
229 | + android:layout_height="wrap_content" | |
230 | + android:layout_marginStart="5dp" | |
231 | + android:text="Si" | |
232 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
233 | + android:textSize="@dimen/SubTitulos10" | |
234 | + android:textStyle="bold" | |
235 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView3" | |
236 | + app:layout_constraintStart_toEndOf="@+id/textView3" /> | |
237 | + | |
238 | + <TextView | |
239 | + android:id="@+id/textView5" | |
240 | + android:layout_width="wrap_content" | |
241 | + android:layout_height="wrap_content" | |
242 | + android:layout_marginTop="10dp" | |
243 | + android:text="Stock:" | |
244 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
245 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
246 | + app:layout_constraintStart_toStartOf="parent" | |
247 | + app:layout_constraintTop_toBottomOf="@+id/textView3" /> | |
248 | + | |
249 | + | |
250 | + <TextView | |
251 | + android:id="@+id/textView15" | |
252 | + android:layout_width="wrap_content" | |
253 | + android:layout_height="wrap_content" | |
254 | + android:layout_marginStart="5dp" | |
255 | + android:layout_marginTop="10dp" | |
256 | + android:text="venta:" | |
257 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
258 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
259 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
260 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
261 | + | |
262 | + <TextView | |
263 | + android:id="@+id/tvExiVenta" | |
264 | + android:layout_width="wrap_content" | |
265 | + android:layout_height="wrap_content" | |
266 | + android:layout_marginStart="5dp" | |
267 | + android:layout_marginTop="10dp" | |
268 | + android:text="99999.99" | |
269 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
270 | + android:textSize="@dimen/SubTitulos10" | |
271 | + android:textStyle="bold" | |
272 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView15" | |
273 | + app:layout_constraintStart_toEndOf="@+id/textView15" /> | |
274 | + | |
275 | + <TextView | |
276 | + android:id="@+id/textView7" | |
277 | + android:layout_width="wrap_content" | |
278 | + android:layout_height="wrap_content" | |
279 | + android:text="deposito:" | |
280 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
281 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
282 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvExiVenta" | |
283 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
284 | + | |
285 | + <TextView | |
286 | + android:id="@+id/tvExiDeposito" | |
287 | + android:layout_width="wrap_content" | |
288 | + android:layout_height="wrap_content" | |
289 | + android:layout_marginStart="5dp" | |
290 | + android:layout_marginTop="10dp" | |
291 | + android:text="99999.99" | |
292 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
293 | + android:textSize="@dimen/SubTitulos10" | |
294 | + android:textStyle="bold" | |
295 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView7" | |
296 | + app:layout_constraintStart_toEndOf="@+id/textView7" | |
297 | + app:layout_constraintTop_toBottomOf="@+id/tvCosto" /> | |
298 | + | |
299 | + | |
300 | + <TextView | |
301 | + android:id="@+id/textView10" | |
302 | + android:layout_width="wrap_content" | |
303 | + android:layout_height="wrap_content" | |
304 | + android:text="Unidad de venta:" | |
305 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
306 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
307 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvDeposito" | |
308 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
309 | + | |
310 | + <TextView | |
311 | + android:id="@+id/tvBal" | |
312 | + android:layout_width="wrap_content" | |
313 | + android:layout_height="wrap_content" | |
314 | + android:layout_marginStart="5dp" | |
315 | + android:text="Unidades" | |
316 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
317 | + android:textSize="@dimen/SubTitulos10" | |
318 | + android:textStyle="bold" | |
319 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView10" | |
320 | + app:layout_constraintStart_toEndOf="@+id/textView10" /> | |
321 | + | |
322 | + | |
323 | + <TextView | |
324 | + android:id="@+id/textView11" | |
325 | + android:layout_width="wrap_content" | |
326 | + android:layout_height="wrap_content" | |
327 | + android:layout_marginTop="10dp" | |
328 | + android:text="Imagen:" | |
329 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
330 | + android:textSize="@dimen/nav_header_vertical_spacing10" | |
331 | + app:layout_constraintStart_toStartOf="parent" | |
332 | + app:layout_constraintTop_toBottomOf="@+id/textView5" /> | |
333 | + | |
334 | + <ImageView | |
335 | + android:id="@+id/ivImagen" | |
336 | + android:layout_width="400dp" | |
337 | + android:layout_height="400dp" | |
338 | + android:src="@drawable/no_imagen" | |
339 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
340 | + android:textSize="14sp" | |
341 | + app:layout_constraintEnd_toEndOf="parent" | |
342 | + app:layout_constraintStart_toStartOf="parent" | |
343 | + app:layout_constraintTop_toBottomOf="@+id/textView15" /> | |
344 | + | |
345 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
346 | + </androidx.cardview.widget.CardView> | |
347 | + | |
348 | +</ScrollView> |
app/src/main/res/layout-xlarge/fragment_inv_importados.xml
... | ... | @@ -0,0 +1,106 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent" | |
7 | + tools:context=".UI.actualizacionMaestros.ActuaMaestrosFragment"> | |
8 | + | |
9 | + | |
10 | + <androidx.appcompat.widget.AppCompatTextView | |
11 | + android:id="@+id/tvActMaestros" | |
12 | + android:layout_width="0dp" | |
13 | + android:layout_height="wrap_content" | |
14 | + android:layout_marginTop="@dimen/MarginTopTitulos" | |
15 | + android:gravity="center" | |
16 | + android:text="@string/tvActMaestros" | |
17 | + android:textColor="@color/colorAccent" | |
18 | + android:textSize="65sp" | |
19 | + app:fontFamily="sans-serif-condensed" | |
20 | + app:layout_constraintBottom_toTopOf="@+id/tvSeleccionInventario" | |
21 | + app:layout_constraintEnd_toEndOf="parent" | |
22 | + app:layout_constraintStart_toStartOf="parent" | |
23 | + app:layout_constraintTop_toTopOf="parent" /> | |
24 | + | |
25 | + <TextView | |
26 | + android:id="@+id/tvSeleccionInventario" | |
27 | + android:layout_width="0dp" | |
28 | + android:layout_height="wrap_content" | |
29 | + android:layout_margin="30dp" | |
30 | + android:padding="15dp" | |
31 | + android:gravity="center" | |
32 | + android:text="@string/tvSeleccionInventario" | |
33 | + android:textColor="@android:color/black" | |
34 | + android:textSize="30sp" | |
35 | + app:fontFamily="sans-serif-condensed" | |
36 | + app:layout_constraintEnd_toEndOf="parent" | |
37 | + app:layout_constraintStart_toStartOf="parent" | |
38 | + app:layout_constraintTop_toBottomOf="@+id/tvActMaestros" /> | |
39 | + | |
40 | + <androidx.recyclerview.widget.RecyclerView | |
41 | + android:id="@+id/rcDescripcion" | |
42 | + android:layout_width="match_parent" | |
43 | + android:layout_height="0dp" | |
44 | + android:background="@android:color/darker_gray" | |
45 | + android:scrollbars="vertical" | |
46 | + android:visibility="visible" | |
47 | + app:layout_constraintBottom_toTopOf="@+id/guideline" | |
48 | + app:layout_constraintEnd_toEndOf="parent" | |
49 | + app:layout_constraintStart_toStartOf="parent" | |
50 | + app:layout_constraintTop_toBottomOf="@id/tvSeleccionInventario" | |
51 | + tools:listitem="@layout/item_inv_importados" /> | |
52 | + | |
53 | + <Button | |
54 | + android:id="@+id/btnConfirmarAct" | |
55 | + android:layout_width="0dp" | |
56 | + android:layout_height="wrap_content" | |
57 | + android:layout_margin="20dp" | |
58 | + android:text="@string/btnConfirmarAct" | |
59 | + android:textSize="@dimen/TitulosMedios" | |
60 | + android:textColor="@android:color/white" | |
61 | + android:padding="10dp" | |
62 | + android:background="@drawable/boton_borde_redondeado" | |
63 | + app:layout_constraintBottom_toBottomOf="parent" | |
64 | + app:layout_constraintEnd_toEndOf="parent" | |
65 | + app:layout_constraintStart_toStartOf="parent" /> | |
66 | + | |
67 | + | |
68 | + <ProgressBar | |
69 | + android:id="@+id/pbInvSec" | |
70 | + android:layout_width="wrap_content" | |
71 | + android:layout_height="wrap_content" | |
72 | + android:layout_marginStart="8dp" | |
73 | + android:layout_marginLeft="8dp" | |
74 | + android:layout_marginTop="8dp" | |
75 | + android:layout_marginEnd="8dp" | |
76 | + android:layout_marginRight="8dp" | |
77 | + android:layout_marginBottom="8dp" | |
78 | + android:visibility="gone" | |
79 | + app:layout_constraintBottom_toBottomOf="parent" | |
80 | + app:layout_constraintEnd_toEndOf="parent" | |
81 | + app:layout_constraintStart_toStartOf="parent" | |
82 | + app:layout_constraintTop_toTopOf="parent" /> | |
83 | + | |
84 | + <TextView | |
85 | + android:id="@+id/tvMensaje" | |
86 | + android:layout_width="0dp" | |
87 | + android:layout_height="wrap_content" | |
88 | + android:padding="15dp" | |
89 | + android:gravity="center" | |
90 | + android:text="@string/tvSeleccionInventario" | |
91 | + android:textColor="@android:color/black" | |
92 | + android:textSize="@dimen/TitulosMedios" | |
93 | + app:fontFamily="sans-serif-condensed" | |
94 | + android:visibility="gone" | |
95 | + app:layout_constraintBottom_toBottomOf="@+id/rcDescripcion" | |
96 | + app:layout_constraintEnd_toEndOf="parent" | |
97 | + app:layout_constraintStart_toStartOf="parent" | |
98 | + app:layout_constraintTop_toTopOf="@+id/rcDescripcion" /> | |
99 | + | |
100 | + <androidx.constraintlayout.widget.Guideline | |
101 | + android:id="@+id/guideline" | |
102 | + android:layout_width="wrap_content" | |
103 | + android:layout_height="wrap_content" | |
104 | + android:orientation="horizontal" | |
105 | + app:layout_constraintGuide_percent="0.88" /> | |
106 | +</androidx.constraintlayout.widget.ConstraintLayout> |
app/src/main/res/layout-xlarge/fragment_inv_sec.xml
... | ... | @@ -0,0 +1,244 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout | |
3 | + xmlns:android="http://schemas.android.com/apk/res/android" | |
4 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
5 | + xmlns:tools="http://schemas.android.com/tools" | |
6 | + android:id="@+id/frameLayout" | |
7 | + android:layout_width="match_parent" | |
8 | + android:layout_height="match_parent" | |
9 | + tools:context=".UI.inventario.InventarioFragment"> | |
10 | + | |
11 | + | |
12 | +<!-- <androidx.appcompat.widget.AppCompatTextView--> | |
13 | +<!-- android:id="@+id/tvTituloSec"--> | |
14 | +<!-- android:layout_width="0dp"--> | |
15 | +<!-- android:layout_height="wrap_content"--> | |
16 | +<!-- android:layout_marginStart="8dp"--> | |
17 | +<!-- android:layout_marginEnd="8dp"--> | |
18 | +<!-- android:textSize="60sp"--> | |
19 | +<!-- android:gravity="center"--> | |
20 | +<!-- android:lines="1"--> | |
21 | +<!-- android:text="@string/invTitulo"--> | |
22 | +<!-- android:textColor="@color/colorAccent"--> | |
23 | +<!-- app:fontFamily="sans-serif-condensed"--> | |
24 | +<!-- app:layout_constraintBottom_toTopOf="@id/guideline2"--> | |
25 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
26 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
27 | +<!-- app:layout_constraintTop_toTopOf="@id/guideline" />--> | |
28 | + | |
29 | + | |
30 | +<!-- <androidx.recyclerview.widget.RecyclerView--> | |
31 | +<!-- android:id="@+id/rcInventariosSec"--> | |
32 | +<!-- android:layout_width="match_parent"--> | |
33 | +<!-- android:layout_height="0dp"--> | |
34 | +<!-- android:background="@android:color/darker_gray"--> | |
35 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline5"--> | |
36 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
37 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
38 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline2"--> | |
39 | +<!-- tools:listitem="@layout/item" />--> | |
40 | + | |
41 | + | |
42 | +<!-- <Button--> | |
43 | +<!-- android:id="@+id/btnExportarInvSec"--> | |
44 | +<!-- android:layout_width="wrap_content"--> | |
45 | +<!-- android:layout_height="wrap_content"--> | |
46 | +<!-- android:text="@string/btnExportarInv"--> | |
47 | +<!-- android:textColor="@android:color/white"--> | |
48 | +<!-- android:padding="10dp"--> | |
49 | +<!-- android:textSize="@dimen/SubTitulos10"--> | |
50 | +<!-- android:background="@drawable/boton_borde_redondeado"--> | |
51 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline6"--> | |
52 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
53 | +<!-- app:layout_constraintHorizontal_chainStyle="spread"--> | |
54 | +<!-- app:layout_constraintStart_toEndOf="@+id/btnBorrarInv"--> | |
55 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline5" />--> | |
56 | + | |
57 | +<!-- <Button--> | |
58 | +<!-- android:id="@+id/btnBorrarInv"--> | |
59 | +<!-- android:layout_width="wrap_content"--> | |
60 | +<!-- android:layout_height="wrap_content"--> | |
61 | +<!-- android:text="@string/btnBorrarInv"--> | |
62 | +<!-- android:textSize="@dimen/SubTitulos10"--> | |
63 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline6"--> | |
64 | +<!-- app:layout_constraintEnd_toStartOf="@id/btnExportarInvSec"--> | |
65 | +<!-- app:layout_constraintHorizontal_chainStyle="spread"--> | |
66 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
67 | +<!-- android:textColor="@android:color/white"--> | |
68 | +<!-- android:padding="10dp"--> | |
69 | +<!-- android:background="@drawable/boton_borde_redondeado"--> | |
70 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline5" />--> | |
71 | + | |
72 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
73 | +<!-- android:id="@+id/guideline"--> | |
74 | +<!-- android:layout_width="wrap_content"--> | |
75 | +<!-- android:layout_height="wrap_content"--> | |
76 | +<!-- android:orientation="horizontal"--> | |
77 | +<!-- app:layout_constraintGuide_percent="0.02" />--> | |
78 | + | |
79 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
80 | +<!-- android:id="@+id/guideline2"--> | |
81 | +<!-- android:layout_width="wrap_content"--> | |
82 | +<!-- android:layout_height="wrap_content"--> | |
83 | +<!-- android:orientation="horizontal"--> | |
84 | +<!-- app:layout_constraintGuide_percent="0.12029161" />--> | |
85 | + | |
86 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
87 | +<!-- android:id="@+id/guideline5"--> | |
88 | +<!-- android:layout_width="wrap_content"--> | |
89 | +<!-- android:layout_height="wrap_content"--> | |
90 | +<!-- android:orientation="horizontal"--> | |
91 | +<!-- app:layout_constraintGuide_percent="0.88" />--> | |
92 | + | |
93 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
94 | +<!-- android:id="@+id/guideline6"--> | |
95 | +<!-- android:layout_width="wrap_content"--> | |
96 | +<!-- android:layout_height="wrap_content"--> | |
97 | +<!-- android:orientation="horizontal"--> | |
98 | +<!-- app:layout_constraintGuide_percent="0.97" />--> | |
99 | + | |
100 | + | |
101 | + <androidx.appcompat.widget.AppCompatTextView | |
102 | + android:id="@+id/tvTitulo" | |
103 | + android:layout_width="0dp" | |
104 | + android:layout_height="wrap_content" | |
105 | + android:layout_marginStart="8dp" | |
106 | + android:layout_marginEnd="8dp" | |
107 | +android:textSize="60sp" | |
108 | + android:gravity="center" | |
109 | + android:lines="1" | |
110 | + android:text="@string/invTitulo" | |
111 | + android:textColor="@color/colorAccent" | |
112 | + app:fontFamily="sans-serif-condensed" | |
113 | + app:layout_constraintBottom_toTopOf="@id/guideline2" | |
114 | + app:layout_constraintEnd_toEndOf="parent" | |
115 | + app:layout_constraintStart_toStartOf="parent" | |
116 | + app:layout_constraintTop_toTopOf="@id/guideline" /> | |
117 | + | |
118 | + | |
119 | + <ImageButton | |
120 | + android:id="@+id/ivCamara" | |
121 | + android:layout_width="@dimen/boton10" | |
122 | + android:layout_height="@dimen/boton10" | |
123 | + android:layout_marginTop="15dp" | |
124 | + android:clickable="true" | |
125 | + android:contentDescription="@string/ibBusCB" | |
126 | + android:elevation="5dp" | |
127 | + android:background="@drawable/boton_redondo" | |
128 | + android:layout_margin="10dp" | |
129 | + android:focusable="false" | |
130 | + android:scaleType="fitEnd" | |
131 | + app:layout_constraintCircleRadius="40dp" | |
132 | + android:src="@drawable/desc" | |
133 | + app:layout_constraintBottom_toTopOf="@id/guideline3" | |
134 | + app:layout_constraintEnd_toStartOf="@+id/etDescripcion" | |
135 | + app:layout_constraintHorizontal_bias="0.0" | |
136 | + app:layout_constraintStart_toStartOf="parent" | |
137 | + app:layout_constraintTop_toBottomOf="@+id/guideline2" /> | |
138 | + | |
139 | + <EditText | |
140 | + android:id="@+id/etDescripcion" | |
141 | + android:layout_width="0dp" | |
142 | + android:layout_height="wrap_content" | |
143 | + android:autofillHints="" | |
144 | + android:clickable="true" | |
145 | + android:ems="10" | |
146 | + android:focusable="true" | |
147 | + android:hint="@string/ibBusDesc" | |
148 | + android:inputType="textPersonName" | |
149 | + android:lines="1" | |
150 | + android:textAllCaps="true" | |
151 | + android:textSize="@dimen/textCantidad10" | |
152 | + app:layout_constraintBottom_toTopOf="@+id/guideline3" | |
153 | + app:layout_constraintEnd_toEndOf="parent" | |
154 | + app:layout_constraintHorizontal_bias="0.49" | |
155 | + app:layout_constraintHorizontal_chainStyle="packed" | |
156 | + app:layout_constraintStart_toEndOf="@+id/ivCamara" | |
157 | + app:layout_constraintTop_toBottomOf="@+id/guideline2" /> | |
158 | + | |
159 | + <androidx.recyclerview.widget.RecyclerView | |
160 | + android:id="@+id/rcInventarios" | |
161 | + android:layout_width="match_parent" | |
162 | + android:layout_height="0dp" | |
163 | + android:background="@android:color/darker_gray" | |
164 | + app:layout_constraintBottom_toBottomOf="@+id/guideline5" | |
165 | + app:layout_constraintEnd_toEndOf="parent" | |
166 | + app:layout_constraintStart_toStartOf="parent" | |
167 | + app:layout_constraintTop_toBottomOf="@+id/guideline4" | |
168 | + tools:listitem="@layout/item" /> | |
169 | + | |
170 | + <Button | |
171 | + android:id="@+id/btnExportarInv" | |
172 | + android:layout_width="wrap_content" | |
173 | + android:layout_height="wrap_content" | |
174 | + android:text="@string/btnExportarInv" | |
175 | + android:textColor="@android:color/white" | |
176 | + android:layout_marginTop="7dp" | |
177 | + android:padding="10dp" | |
178 | + android:textSize="@dimen/SubTitulos10" | |
179 | + android:background="@drawable/boton_borde_redondeado" | |
180 | + app:layout_constraintBottom_toBottomOf="@+id/guideline6" | |
181 | + app:layout_constraintEnd_toEndOf="parent" | |
182 | + app:layout_constraintHorizontal_chainStyle="spread" | |
183 | + app:layout_constraintStart_toEndOf="@+id/btnBorrarInv" | |
184 | + app:layout_constraintTop_toBottomOf="@+id/guideline5" /> | |
185 | + | |
186 | + <Button | |
187 | + android:id="@+id/btnBorrarInv" | |
188 | + android:layout_width="wrap_content" | |
189 | + android:layout_height="wrap_content" | |
190 | + android:layout_marginTop="7dp" | |
191 | + android:background="@drawable/boton_borde_redondeado" | |
192 | + android:padding="10dp" | |
193 | + android:text="@string/btnBorrarInv" | |
194 | + android:textColor="@android:color/white" | |
195 | + android:textSize="@dimen/SubTitulos10" | |
196 | + app:layout_constraintBottom_toBottomOf="@+id/guideline6" | |
197 | + app:layout_constraintEnd_toStartOf="@id/btnExportarInv" | |
198 | + app:layout_constraintHorizontal_chainStyle="spread" | |
199 | + app:layout_constraintStart_toStartOf="parent" | |
200 | + app:layout_constraintTop_toBottomOf="@+id/guideline5" /> | |
201 | + | |
202 | + <androidx.constraintlayout.widget.Guideline | |
203 | + android:id="@+id/guideline" | |
204 | + android:layout_width="wrap_content" | |
205 | + android:layout_height="wrap_content" | |
206 | + android:orientation="horizontal" | |
207 | + app:layout_constraintGuide_percent="0.02" /> | |
208 | + | |
209 | + <androidx.constraintlayout.widget.Guideline | |
210 | + android:id="@+id/guideline2" | |
211 | + android:layout_width="wrap_content" | |
212 | + android:layout_height="wrap_content" | |
213 | + android:orientation="horizontal" | |
214 | + app:layout_constraintGuide_percent="0.12029161" /> | |
215 | + | |
216 | + <androidx.constraintlayout.widget.Guideline | |
217 | + android:id="@+id/guideline3" | |
218 | + android:layout_width="wrap_content" | |
219 | + android:layout_height="wrap_content" | |
220 | + android:orientation="horizontal" | |
221 | + app:layout_constraintGuide_percent="0.27" /> | |
222 | + | |
223 | + <androidx.constraintlayout.widget.Guideline | |
224 | + android:id="@+id/guideline4" | |
225 | + android:layout_width="wrap_content" | |
226 | + android:layout_height="wrap_content" | |
227 | + android:orientation="horizontal" | |
228 | + app:layout_constraintGuide_percent="0.32" /> | |
229 | + | |
230 | + <androidx.constraintlayout.widget.Guideline | |
231 | + android:id="@+id/guideline5" | |
232 | + android:layout_width="wrap_content" | |
233 | + android:layout_height="wrap_content" | |
234 | + android:orientation="horizontal" | |
235 | + app:layout_constraintGuide_percent="0.88" /> | |
236 | + | |
237 | + <androidx.constraintlayout.widget.Guideline | |
238 | + android:id="@+id/guideline6" | |
239 | + android:layout_width="wrap_content" | |
240 | + android:layout_height="wrap_content" | |
241 | + android:orientation="horizontal" | |
242 | + app:layout_constraintGuide_percent="0.97" /> | |
243 | + | |
244 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 245 | \ No newline at end of file |
app/src/main/res/layout-xlarge/fragment_inventario.xml
... | ... | @@ -10,14 +10,11 @@ |
10 | 10 | |
11 | 11 | <androidx.appcompat.widget.AppCompatTextView |
12 | 12 | android:id="@+id/tvTitulo" |
13 | - android:layout_width="match_parent" | |
14 | - android:layout_height="90dp" | |
13 | + android:layout_width="0dp" | |
14 | + android:layout_height="wrap_content" | |
15 | 15 | android:layout_marginStart="8dp" |
16 | 16 | android:layout_marginEnd="8dp" |
17 | - android:autoSizeMaxTextSize="100sp" | |
18 | - android:autoSizeMinTextSize="20sp" | |
19 | - android:autoSizeStepGranularity="5sp" | |
20 | - android:autoSizeTextType="uniform" | |
17 | +android:textSize="60sp" | |
21 | 18 | android:gravity="center" |
22 | 19 | android:lines="1" |
23 | 20 | android:text="@string/invTitulo" |
... | ... | @@ -125,6 +122,23 @@ |
125 | 122 | app:layout_constraintStart_toStartOf="parent" |
126 | 123 | app:layout_constraintTop_toBottomOf="@+id/guideline5" /> |
127 | 124 | |
125 | + | |
126 | + <ProgressBar | |
127 | + android:id="@+id/loading_view" | |
128 | + android:layout_width="wrap_content" | |
129 | + android:layout_height="wrap_content" | |
130 | + android:layout_marginStart="8dp" | |
131 | + android:layout_marginLeft="8dp" | |
132 | + android:layout_marginTop="8dp" | |
133 | + android:layout_marginEnd="8dp" | |
134 | + android:layout_marginRight="8dp" | |
135 | + android:layout_marginBottom="8dp" | |
136 | + android:visibility="invisible" | |
137 | + app:layout_constraintBottom_toBottomOf="parent" | |
138 | + app:layout_constraintEnd_toEndOf="parent" | |
139 | + app:layout_constraintStart_toStartOf="parent" | |
140 | + app:layout_constraintTop_toTopOf="parent" /> | |
141 | + | |
128 | 142 | <androidx.constraintlayout.widget.Guideline |
129 | 143 | android:id="@+id/guideline" |
130 | 144 | android:layout_width="wrap_content" |
app/src/main/res/layout-xlarge/fragment_main.xml
... | ... | @@ -8,11 +8,8 @@ |
8 | 8 | <androidx.appcompat.widget.AppCompatTextView |
9 | 9 | android:id="@+id/tvInvDinamicos" |
10 | 10 | android:layout_width="match_parent" |
11 | - android:layout_height="110dp" | |
12 | - android:autoSizeMaxTextSize="150sp" | |
13 | - android:autoSizeMinTextSize="25sp" | |
14 | - android:autoSizeStepGranularity="5sp" | |
15 | - android:autoSizeTextType="uniform" | |
11 | + android:layout_height="wrap_content" | |
12 | + android:textSize="60sp" | |
16 | 13 | android:gravity="start" |
17 | 14 | android:lines="1" |
18 | 15 | android:padding="10dp" |
... | ... | @@ -54,9 +51,9 @@ |
54 | 51 | android:layout_width="wrap_content" |
55 | 52 | android:layout_height="wrap_content" |
56 | 53 | android:layout_margin="5dp" |
57 | - android:text="Tipo:" | |
58 | 54 | android:layout_marginTop="12dp" |
59 | - android:textSize="@dimen/nav_header_vertical_spacing10" | |
55 | + android:text="Tipo:" | |
56 | + android:textSize="@dimen/md_message_textsize" | |
60 | 57 | android:visibility="gone" |
61 | 58 | app:layout_constraintBaseline_toBaselineOf="@+id/cbVentas" |
62 | 59 | app:layout_constraintEnd_toStartOf="@+id/cbVentas" /> |
... | ... | @@ -65,11 +62,11 @@ |
65 | 62 | android:id="@+id/cbVentas" |
66 | 63 | android:layout_width="wrap_content" |
67 | 64 | android:layout_height="wrap_content" |
68 | - android:textSize="@dimen/SubTitulos10" | |
69 | 65 | android:layout_margin="5dp" |
66 | + android:layout_marginTop="12dp" | |
70 | 67 | android:checked="true" |
71 | 68 | android:text="Ventas" |
72 | - android:layout_marginTop="12dp" | |
69 | + android:textSize="@dimen/SubTitulos10" | |
73 | 70 | android:visibility="gone" |
74 | 71 | app:layout_constraintEnd_toStartOf="@+id/cbDeposito" |
75 | 72 | app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> |
... | ... | @@ -78,11 +75,11 @@ |
78 | 75 | android:id="@+id/cbDeposito" |
79 | 76 | android:layout_width="wrap_content" |
80 | 77 | android:layout_height="wrap_content" |
81 | - android:textSize="@dimen/SubTitulos10" | |
82 | 78 | android:layout_margin="5dp" |
79 | + android:layout_marginTop="12dp" | |
83 | 80 | android:checked="true" |
84 | 81 | android:text="Deposito" |
85 | - android:layout_marginTop="12dp" | |
82 | + android:textSize="@dimen/SubTitulos10" | |
86 | 83 | android:visibility="gone" |
87 | 84 | app:layout_constraintEnd_toEndOf="parent" |
88 | 85 | app:layout_constraintTop_toBottomOf="@+id/tvInvDinamicos" /> |
... | ... | @@ -94,21 +91,18 @@ |
94 | 91 | android:background="@android:color/darker_gray" |
95 | 92 | android:scrollbars="vertical" |
96 | 93 | android:visibility="gone" |
94 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
97 | 95 | app:layout_constraintEnd_toEndOf="parent" |
98 | 96 | app:layout_constraintStart_toStartOf="parent" |
99 | 97 | app:layout_constraintTop_toBottomOf="@id/ivSort19" |
100 | - tools:listitem="@layout/item_principal" | |
101 | - app:layout_constraintBottom_toTopOf="@+id/guideline6"/> | |
98 | + tools:listitem="@layout/item_principal" /> | |
102 | 99 | |
103 | 100 | |
104 | 101 | <androidx.appcompat.widget.AppCompatTextView |
105 | - android:id="@+id/txtDeposito" | |
102 | + android:id="@+id/tvInvImportados" | |
106 | 103 | android:layout_width="match_parent" |
107 | 104 | android:layout_height="110dp" |
108 | - android:autoSizeMaxTextSize="150sp" | |
109 | - android:autoSizeMinTextSize="25sp" | |
110 | - android:autoSizeStepGranularity="5sp" | |
111 | - android:autoSizeTextType="uniform" | |
105 | + android:textSize="60sp" | |
112 | 106 | android:gravity="start" |
113 | 107 | android:lines="1" |
114 | 108 | android:padding="10dp" |
... | ... | @@ -122,10 +116,60 @@ |
122 | 116 | app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" |
123 | 117 | app:layout_constraintVertical_bias="0.0" /> |
124 | 118 | |
119 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
120 | +<!-- android:id="@+id/ivSort19II"--> | |
121 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
122 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
123 | +<!-- android:layout_marginStart="10dp"--> | |
124 | +<!-- android:padding="5dp"--> | |
125 | +<!-- android:src="@drawable/ic_sort19"--> | |
126 | +<!-- android:visibility="invisible"--> | |
127 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
128 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
129 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
130 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
131 | + | |
132 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
133 | +<!-- android:id="@+id/ivSort91II"--> | |
134 | +<!-- android:layout_width="@dimen/icon_dim10"--> | |
135 | +<!-- android:layout_height="@dimen/icon_dim10"--> | |
136 | +<!-- android:layout_marginStart="10dp"--> | |
137 | +<!-- android:padding="5dp"--> | |
138 | +<!-- android:src="@drawable/ic_sort91"--> | |
139 | +<!-- android:visibility="invisible"--> | |
140 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
141 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
142 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
143 | + | |
144 | + <androidx.recyclerview.widget.RecyclerView | |
145 | + android:id="@+id/rcInventarioII" | |
146 | + android:layout_width="match_parent" | |
147 | + android:layout_height="0dp" | |
148 | + android:background="@android:color/darker_gray" | |
149 | + android:scrollbars="vertical" | |
150 | + android:visibility="gone" | |
151 | + app:layout_constraintBottom_toTopOf="@+id/guideline6" | |
152 | + app:layout_constraintEnd_toEndOf="parent" | |
153 | + app:layout_constraintStart_toStartOf="parent" | |
154 | + app:layout_constraintTop_toBottomOf="@id/tvInvImportados" | |
155 | + tools:listitem="@layout/item_principal" /> | |
156 | + | |
125 | 157 | <androidx.constraintlayout.widget.Guideline |
126 | - android:id="@+id/guideline6" | |
127 | - android:layout_width="wrap_content" | |
128 | - android:layout_height="wrap_content" | |
129 | - android:orientation="horizontal" | |
130 | - app:layout_constraintGuide_percent="0.97" /> | |
158 | + android:id="@+id/guideline6" | |
159 | + android:layout_width="wrap_content" | |
160 | + android:layout_height="wrap_content" | |
161 | + android:orientation="horizontal" | |
162 | + app:layout_constraintGuide_percent="0.97" /> | |
163 | + | |
164 | + <ImageView | |
165 | + android:id="@+id/ivPortada" | |
166 | + android:layout_width="730dp" | |
167 | + android:layout_height="491dp" | |
168 | + android:elevation="10dp" | |
169 | + android:visibility="visible" | |
170 | + app:layout_constraintBottom_toBottomOf="parent" | |
171 | + app:layout_constraintEnd_toEndOf="parent" | |
172 | + app:layout_constraintStart_toStartOf="parent" | |
173 | + app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" | |
174 | + tools:srcCompat="@drawable/imagen_portada" /> | |
131 | 175 | </androidx.constraintlayout.widget.ConstraintLayout> |
132 | 176 | \ No newline at end of file |
app/src/main/res/layout-xlarge/fragment_servidores.xml
... | ... | @@ -8,15 +8,12 @@ |
8 | 8 | |
9 | 9 | <androidx.appcompat.widget.AppCompatTextView |
10 | 10 | android:id="@+id/tvTitutloServer" |
11 | - android:layout_width="match_parent" | |
12 | - android:layout_height="120dp" | |
11 | + android:layout_width="0dp" | |
12 | + android:layout_height="wrap_content" | |
13 | 13 | android:layout_marginStart="8dp" |
14 | 14 | android:layout_marginTop="15dp" |
15 | 15 | android:layout_marginEnd="8dp" |
16 | - android:autoSizeMaxTextSize="100sp" | |
17 | - android:autoSizeMinTextSize="20sp" | |
18 | - android:autoSizeStepGranularity="5sp" | |
19 | - android:autoSizeTextType="uniform" | |
16 | +android:textSize="60sp" | |
20 | 17 | android:gravity="center" |
21 | 18 | android:lines="1" |
22 | 19 | android:text="@string/tvTitutloServer" |
... | ... | @@ -77,7 +74,7 @@ |
77 | 74 | |
78 | 75 | <EditText |
79 | 76 | android:id="@+id/etDireccionServidor" |
80 | - android:layout_width="wrap_content" | |
77 | + android:layout_width="0dp" | |
81 | 78 | android:layout_height="wrap_content" |
82 | 79 | android:clickable="true" |
83 | 80 | android:ems="10" |
... | ... | @@ -85,25 +82,55 @@ |
85 | 82 | android:hint="192.168.100.100" |
86 | 83 | android:inputType="phone" |
87 | 84 | android:lines="1" |
85 | + android:nextFocusLeft="@id/etPuertoSubida" | |
86 | + android:nextFocusRight="@id/etPuertoSubida" | |
87 | + android:nextFocusDown="@id/etPuertoSubida" | |
88 | 88 | android:textSize="@dimen/SubTitulos10" |
89 | 89 | app:layout_constraintBaseline_toBaselineOf="@+id/tvDirServer" |
90 | + app:layout_constraintEnd_toEndOf="parent" | |
90 | 91 | app:layout_constraintStart_toEndOf="@+id/tvDirServer" /> |
91 | 92 | |
92 | 93 | |
94 | +<EditText | |
95 | + android:id="@+id/etPuertoSubida" | |
96 | + android:layout_width="0dp" | |
97 | + android:layout_height="wrap_content" | |
98 | + android:layout_margin="10dp" | |
99 | + android:autofillHints="" | |
100 | + android:clickable="true" | |
101 | + android:ems="10" | |
102 | + android:focusable="true" | |
103 | + android:hint="Puerto de Subida" | |
104 | + android:inputType="number" | |
105 | + android:nextFocusDown="@id/etPuertoBajada" | |
106 | + android:nextFocusRight="@id/etPuertoBajada" | |
107 | + android:nextFocusLeft="@id/etPuertoBajada" | |
108 | + android:lines="1" | |
109 | + android:textSize="@dimen/SubTitulos10" | |
110 | + app:layout_constraintStart_toStartOf="parent" | |
111 | + app:layout_constraintTop_toBottomOf="@+id/tvDirServer" /> | |
112 | + | |
93 | 113 | <EditText |
94 | - android:id="@+id/etPuerto" | |
95 | - android:layout_width="wrap_content" | |
114 | + android:id="@+id/etPuertoBajada" | |
115 | + android:layout_width="0dp" | |
96 | 116 | android:layout_height="wrap_content" |
117 | + android:layout_margin="10dp" | |
118 | + android:autofillHints="" | |
97 | 119 | android:clickable="true" |
98 | 120 | android:ems="10" |
99 | 121 | android:focusable="true" |
100 | - android:hint="Puerto" | |
122 | + android:hint="Puerto de Bajada" | |
101 | 123 | android:inputType="number" |
102 | 124 | android:lines="1" |
125 | + android:nextFocusLeft="@id/btnGuardarServidores" | |
126 | + android:nextFocusRight="@id/btnGuardarServidores" | |
127 | + android:nextFocusDown="@id/btnGuardarServidores" | |
103 | 128 | android:textSize="@dimen/SubTitulos10" |
104 | - app:layout_constraintBaseline_toBaselineOf="@+id/etDireccionServidor" | |
105 | - app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
106 | - android:autofillHints="" /> | |
129 | + app:layout_constraintBaseline_toBaselineOf="@+id/etPuertoSubida" | |
130 | + | |
131 | + app:layout_constraintEnd_toEndOf="parent" | |
132 | + app:layout_constraintStart_toEndOf="@+id/etPuertoSubida" /> | |
133 | + | |
107 | 134 | |
108 | 135 | |
109 | 136 | <androidx.recyclerview.widget.RecyclerView |
... | ... | @@ -115,7 +142,7 @@ |
115 | 142 | app:layout_constraintBottom_toTopOf="@+id/btnGuardarServidores" |
116 | 143 | app:layout_constraintEnd_toEndOf="parent" |
117 | 144 | app:layout_constraintStart_toStartOf="parent" |
118 | - app:layout_constraintTop_toBottomOf="@+id/etPuerto" | |
145 | + app:layout_constraintTop_toBottomOf="@+id/etPuertoSubida" | |
119 | 146 | app:layout_goneMarginEnd="10dp" |
120 | 147 | tools:listitem="@layout/item_servidores" /> |
121 | 148 |
app/src/main/res/layout-xlarge/item_descripcion.xml
... | ... | @@ -34,7 +34,7 @@ |
34 | 34 | android:layout_marginStart="5dp" |
35 | 35 | android:text="Código DEBO:" |
36 | 36 | android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" |
37 | - android:textSize="@dimen/nav_header_vertical_spacing10" | |
37 | + android:textSize="@dimen/md_message_textsize" | |
38 | 38 | app:layout_constraintHorizontal_chainStyle="packed" |
39 | 39 | app:layout_constraintStart_toStartOf="parent" |
40 | 40 | app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> |
app/src/main/res/layout-xlarge/item_inv_importados.xml
... | ... | @@ -0,0 +1,36 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="wrap_content" | |
7 | + android:layout_margin="10dp" | |
8 | + app:cardCornerRadius="15dp" | |
9 | + app:cardElevation="10dp" | |
10 | + app:cardPreventCornerOverlap="false"> | |
11 | + | |
12 | + <androidx.constraintlayout.widget.ConstraintLayout | |
13 | + android:layout_width="match_parent" | |
14 | + android:layout_height="wrap_content" | |
15 | + android:layout_gravity="center" | |
16 | + android:orientation="horizontal"> | |
17 | + | |
18 | + <com.google.android.material.checkbox.MaterialCheckBox | |
19 | + android:id="@+id/tvPrincipalinventario" | |
20 | + android:layout_width="match_parent" | |
21 | + android:layout_height="wrap_content" | |
22 | + android:layout_margin="15dp" | |
23 | + android:background="@drawable/boton_redondo2" | |
24 | + android:gravity="center_vertical" | |
25 | + android:padding="5dp" | |
26 | + android:textColor="@android:color/black" | |
27 | + android:textSize="@dimen/VentasDeposito10" | |
28 | + android:textStyle="bold" | |
29 | + app:layout_constraintBottom_toBottomOf="parent" | |
30 | + app:layout_constraintStart_toStartOf="parent" | |
31 | + app:layout_constraintTop_toTopOf="parent" | |
32 | + tools:text="Inventario Sectorizado # 1487" /> | |
33 | + | |
34 | + | |
35 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
36 | +</androidx.cardview.widget.CardView> |
app/src/main/res/layout-xlarge/item_principal.xml
... | ... | @@ -62,8 +62,8 @@ |
62 | 62 | android:layout_width="wrap_content" |
63 | 63 | android:layout_height="wrap_content" |
64 | 64 | android:layout_marginTop="4dp" |
65 | - android:text="Art. Contados" | |
66 | - android:textSize="@dimen/nav_header_vertical_spacing10" | |
65 | + android:text="Cantidad Art." | |
66 | + android:textSize="@dimen/textView510" | |
67 | 67 | android:textStyle="bold" |
68 | 68 | app:layout_constraintEnd_toEndOf="parent" |
69 | 69 | app:layout_constraintHorizontal_bias="0.23" |
app/src/main/res/layout-xlarge/item_sec.xml
... | ... | @@ -0,0 +1,171 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="wrap_content" | |
7 | + android:layout_margin="5dp" | |
8 | + app:cardCornerRadius="15dp" | |
9 | + app:cardElevation="10dp" | |
10 | + app:contentPadding="5dp" | |
11 | + app:cardPreventCornerOverlap="false"> | |
12 | + | |
13 | + <androidx.constraintlayout.widget.ConstraintLayout | |
14 | + android:layout_width="match_parent" | |
15 | + android:layout_height="wrap_content"> | |
16 | + | |
17 | + <TextView | |
18 | + android:id="@+id/tvDescripcion" | |
19 | + android:layout_width="0dp" | |
20 | + android:layout_height="wrap_content" | |
21 | + android:layout_marginStart="3dp" | |
22 | + android:maxLines="2" | |
23 | + android:text="abcdefghijklmnñopqrstuvwxyz0123456789abcdefghijklmnñopqrstuvwxyz" | |
24 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
25 | + android:textSize="@dimen/SubTitulos10" | |
26 | + android:textStyle="bold" | |
27 | + app:layout_constraintStart_toStartOf="parent" | |
28 | + app:layout_constraintTop_toTopOf="parent" /> | |
29 | + | |
30 | +<!-- <TextView--> | |
31 | +<!-- android:id="@+id/textView2"--> | |
32 | +<!-- android:layout_width="wrap_content"--> | |
33 | +<!-- android:layout_height="wrap_content"--> | |
34 | +<!-- android:layout_marginStart="5dp"--> | |
35 | +<!-- android:text="Código:"--> | |
36 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large"--> | |
37 | +<!-- android:textSize="14sp"--> | |
38 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvSector"--> | |
39 | +<!-- app:layout_constraintHorizontal_bias="0.01"--> | |
40 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
41 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
42 | +<!-- app:layout_constraintTop_toTopOf="parent" />--> | |
43 | + | |
44 | + | |
45 | +<!-- <TextView--> | |
46 | +<!-- android:id="@+id/tvSector"--> | |
47 | +<!-- android:layout_width="wrap_content"--> | |
48 | +<!-- android:layout_height="match_parent"--> | |
49 | +<!-- android:layout_marginStart="8dp"--> | |
50 | +<!-- android:text="9999"--> | |
51 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
52 | +<!-- android:textColorHint="@android:color/black"--> | |
53 | +<!-- android:textSize="18sp"--> | |
54 | +<!-- android:textStyle="bold"--> | |
55 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
56 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView2"--> | |
57 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvCodigo"--> | |
58 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView2" />--> | |
59 | + | |
60 | + | |
61 | +<!-- <TextView--> | |
62 | +<!-- android:id="@+id/tvCodigo"--> | |
63 | +<!-- android:layout_width="wrap_content"--> | |
64 | +<!-- android:layout_height="match_parent"--> | |
65 | +<!-- android:text="99999999"--> | |
66 | +<!-- android:layout_marginStart="8dp"--> | |
67 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
68 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
69 | +<!-- android:textColorHint="@android:color/black"--> | |
70 | +<!-- android:textSize="18sp"--> | |
71 | +<!-- android:textStyle="bold"--> | |
72 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/tvSector"--> | |
73 | +<!-- app:layout_constraintEnd_toStartOf="@+id/textView5"--> | |
74 | +<!-- app:layout_constraintStart_toEndOf="@+id/tvSector" />--> | |
75 | + | |
76 | + <TextView | |
77 | + android:id="@+id/textView5" | |
78 | + android:layout_width="wrap_content" | |
79 | + android:layout_height="wrap_content" | |
80 | + android:text="Cantidad:" | |
81 | + android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" | |
82 | + android:textSize="@dimen/md_message_textsize" | |
83 | + android:layout_marginStart="5dp" | |
84 | + android:layout_marginTop="5dp" | |
85 | + app:layout_constraintStart_toStartOf="parent" | |
86 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
87 | + | |
88 | + <TextView | |
89 | + android:id="@+id/tvCantidad" | |
90 | + android:layout_width="wrap_content" | |
91 | + android:layout_height="match_parent" | |
92 | + android:layout_marginTop="5dp" | |
93 | + android:text="12345.12" | |
94 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
95 | + android:textSize="@dimen/SubTitulos10" | |
96 | + android:textStyle="bold" | |
97 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
98 | + | |
99 | + app:layout_constraintStart_toEndOf="@id/textView5" /> | |
100 | + | |
101 | + <ImageView | |
102 | + android:id="@+id/ivPen" | |
103 | + android:layout_width="@dimen/iconosMedia10" | |
104 | + android:layout_height="@dimen/iconosMedia10" | |
105 | + android:layout_marginStart="3dp" | |
106 | + android:src="@drawable/pen" | |
107 | + android:visibility="visible" | |
108 | + app:layout_constraintStart_toEndOf="@+id/tvCantidad" | |
109 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
110 | + | |
111 | + <ImageView | |
112 | + android:id="@+id/ivDots" | |
113 | + android:layout_width="30dp" | |
114 | + android:layout_height="30dp" | |
115 | + android:layout_marginEnd="3dp" | |
116 | + android:src="@drawable/more" | |
117 | + android:visibility="visible" | |
118 | + app:layout_constraintEnd_toEndOf="parent" | |
119 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
120 | + | |
121 | +<!-- <TextView--> | |
122 | +<!-- android:id="@+id/textView85"--> | |
123 | +<!-- android:layout_width="wrap_content"--> | |
124 | +<!-- android:layout_height="wrap_content"--> | |
125 | +<!-- android:layout_marginStart="5dp"--> | |
126 | +<!-- android:layout_marginTop="8dp"--> | |
127 | +<!-- android:text="Desc:"--> | |
128 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large"--> | |
129 | +<!-- android:textSize="14sp"--> | |
130 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvDescripcion"--> | |
131 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
132 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
133 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
134 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvCodigo" />--> | |
135 | + | |
136 | + | |
137 | +<!-- <TextView--> | |
138 | +<!-- android:id="@+id/tvCodigoBarras"--> | |
139 | +<!-- android:layout_width="match_parent"--> | |
140 | +<!-- android:layout_height="wrap_content"--> | |
141 | +<!-- android:layout_marginStart="3dp"--> | |
142 | +<!-- android:layout_marginTop="8dp"--> | |
143 | +<!-- android:maxLines="2"--> | |
144 | +<!-- android:text=""--> | |
145 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
146 | +<!-- android:textSize="14sp"--> | |
147 | +<!-- android:visibility="gone"--> | |
148 | +<!-- android:textStyle="bold"--> | |
149 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView85"--> | |
150 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
151 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView85"--> | |
152 | +<!-- app:layout_constraintTop_toBottomOf="@+id/tvCodigo" />--> | |
153 | +<!-- <TextView--> | |
154 | +<!-- android:id="@+id/tvCodigoOrigen"--> | |
155 | +<!-- android:layout_width="match_parent"--> | |
156 | +<!-- android:layout_height="wrap_content"--> | |
157 | +<!-- android:layout_marginStart="3dp"--> | |
158 | +<!-- android:layout_marginTop="8dp"--> | |
159 | +<!-- android:maxLines="2"--> | |
160 | +<!-- android:text=""--> | |
161 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
162 | +<!-- android:textSize="14sp"--> | |
163 | +<!-- android:visibility="gone"--> | |
164 | +<!-- android:textStyle="bold"--> | |
165 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView85"--> | |
166 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
167 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView85"--> | |
168 | +<!-- app:layout_constraintTop_toBottomOf="@+id/tvCodigo" />--> | |
169 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
170 | + | |
171 | +</androidx.cardview.widget.CardView> | |
0 | 172 | \ No newline at end of file |
app/src/main/res/layout-xlarge/item_servidores.xml
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | 2 | <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" |
3 | 3 | xmlns:app="http://schemas.android.com/apk/res-auto" |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | 4 | android:layout_width="match_parent" |
6 | 5 | android:layout_height="wrap_content" |
7 | 6 | android:layout_margin="5dp" |
8 | 7 | app:cardCornerRadius="15dp" |
9 | 8 | app:cardElevation="10dp" |
10 | - app:contentPadding="5dp" | |
11 | - app:cardPreventCornerOverlap="false"> | |
9 | + app:cardPreventCornerOverlap="false" | |
10 | + app:contentPadding="5dp"> | |
12 | 11 | |
13 | 12 | <androidx.constraintlayout.widget.ConstraintLayout |
14 | 13 | android:layout_width="match_parent" |
... | ... | @@ -71,28 +70,51 @@ |
71 | 70 | android:id="@+id/textView86" |
72 | 71 | android:layout_width="wrap_content" |
73 | 72 | android:layout_height="wrap_content" |
74 | - android:layout_marginTop="8dp" | |
75 | - android:layout_marginStart="15dp" | |
76 | - android:text="Puerto:" | |
73 | + android:layout_marginStart="5dp" | |
74 | + android:layout_marginTop="3dp" | |
75 | + android:text="Puerto Subida:" | |
77 | 76 | android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" |
78 | 77 | android:textSize="20sp" |
79 | 78 | app:layout_constraintHorizontal_chainStyle="packed" |
80 | - app:layout_constraintStart_toEndOf="@+id/tvDireccionServidor" | |
81 | - app:layout_constraintTop_toBottomOf="@id/tvDescServidor" /> | |
79 | + app:layout_constraintStart_toStartOf="parent" | |
80 | + app:layout_constraintTop_toBottomOf="@+id/textView85" /> | |
82 | 81 | |
83 | 82 | <TextView |
84 | - android:id="@+id/tvPuertoServidor" | |
83 | + android:id="@+id/tvPuertoSubida" | |
84 | + android:layout_width="wrap_content" | |
85 | + android:layout_height="wrap_content" | |
86 | + android:text="9999" | |
87 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
88 | + android:textColorHint="@android:color/black" | |
89 | + android:textSize="25sp" | |
90 | + android:textStyle="bold" | |
91 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView86" | |
92 | + app:layout_constraintStart_toEndOf="@+id/textView86" /> | |
93 | + | |
94 | + <TextView | |
95 | + android:id="@+id/textView87" | |
85 | 96 | android:layout_width="wrap_content" |
86 | 97 | android:layout_height="wrap_content" |
87 | - android:layout_marginTop="8dp" | |
88 | 98 | android:layout_marginStart="5dp" |
89 | - android:text="" | |
99 | + android:layout_marginTop="3dp" | |
100 | + android:text="Puerto Bajada:" | |
101 | + android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" | |
102 | + android:textSize="20sp" | |
103 | + app:layout_constraintHorizontal_chainStyle="packed" | |
104 | + app:layout_constraintStart_toEndOf="@+id/tvPuertoSubida" | |
105 | + app:layout_constraintTop_toBottomOf="@+id/textView85" /> | |
106 | + | |
107 | + <TextView | |
108 | + android:id="@+id/tvPuertoBajada" | |
109 | + android:layout_width="wrap_content" | |
110 | + android:layout_height="wrap_content" | |
111 | + android:text="9999" | |
90 | 112 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
91 | 113 | android:textColorHint="@android:color/black" |
92 | 114 | android:textSize="25sp" |
93 | 115 | android:textStyle="bold" |
94 | - app:layout_constraintStart_toEndOf="@+id/textView86" | |
95 | - app:layout_constraintTop_toBottomOf="@+id/tvDescServidor" /> | |
116 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView87" | |
117 | + app:layout_constraintStart_toEndOf="@+id/textView87" /> | |
96 | 118 | </androidx.constraintlayout.widget.ConstraintLayout> |
97 | 119 | |
98 | 120 | </androidx.cardview.widget.CardView> |
99 | 121 | \ No newline at end of file |
app/src/main/res/layout-xlarge/login_dialog.xml
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | android:layout_height="wrap_content" |
52 | 52 | android:layout_margin="5dp" |
53 | 53 | android:text="" |
54 | - android:textSize="20sp" | |
54 | + android:textSize="25sp" | |
55 | 55 | app:layout_constraintBaseline_toBaselineOf="@+id/dialogNameEt" |
56 | 56 | app:layout_constraintEnd_toEndOf="parent" |
57 | 57 | app:layout_constraintHorizontal_chainStyle="packed" |
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | android:layout_height="wrap_content" |
75 | 75 | android:autofillHints="" |
76 | 76 | android:hint="" |
77 | - android:textSize="20sp" | |
77 | + android:textSize="25sp" | |
78 | 78 | android:focusable="true" |
79 | 79 | android:clickable="true" |
80 | 80 | android:inputType="numberDecimal" |
... | ... | @@ -155,7 +155,7 @@ |
155 | 155 | android:layout_margin="5dp" |
156 | 156 | android:gravity="center" |
157 | 157 | android:text="" |
158 | - android:textSize="20sp" | |
158 | + android:textSize="25sp" | |
159 | 159 | app:layout_constraintEnd_toEndOf="parent" |
160 | 160 | app:layout_constraintHorizontal_bias="0.0" |
161 | 161 | app:layout_constraintStart_toEndOf="@+id/tvgenerico3" |
app/src/main/res/layout/fragment_actua_maestros.xml
... | ... | @@ -6,14 +6,12 @@ |
6 | 6 | android:layout_height="match_parent" |
7 | 7 | tools:context=".UI.actualizacionMaestros.ActuaMaestrosFragment"> |
8 | 8 | |
9 | - | |
10 | 9 | <androidx.appcompat.widget.AppCompatTextView |
11 | 10 | android:id="@+id/tvActMaestros" |
12 | 11 | android:layout_width="match_parent" |
13 | 12 | android:layout_height="wrap_content" |
14 | 13 | android:layout_marginTop="@dimen/MarginTopTitulos" |
15 | 14 | android:gravity="center" |
16 | - | |
17 | 15 | android:text="@string/tvActMaestros" |
18 | 16 | android:textColor="@color/colorAccent" |
19 | 17 | android:textSize="@dimen/Titulos" |
... | ... | @@ -69,7 +67,6 @@ |
69 | 67 | android:text="@string/obViaArchivo" |
70 | 68 | android:textSize="@dimen/NormalText" /> |
71 | 69 | |
72 | - | |
73 | 70 | </RadioGroup> |
74 | 71 | |
75 | 72 | <TextView |
... | ... | @@ -118,7 +115,6 @@ |
118 | 115 | app:layout_constraintEnd_toEndOf="parent" |
119 | 116 | app:layout_constraintStart_toStartOf="parent" /> |
120 | 117 | |
121 | - | |
122 | 118 | <ProgressBar |
123 | 119 | android:id="@+id/loading_view" |
124 | 120 | android:layout_width="wrap_content" |
... | ... | @@ -129,7 +125,7 @@ |
129 | 125 | android:layout_marginEnd="8dp" |
130 | 126 | android:layout_marginRight="8dp" |
131 | 127 | android:layout_marginBottom="8dp" |
132 | - android:visibility="gone" | |
128 | + android:visibility="invisible" | |
133 | 129 | app:layout_constraintBottom_toBottomOf="parent" |
134 | 130 | app:layout_constraintEnd_toEndOf="parent" |
135 | 131 | app:layout_constraintStart_toStartOf="parent" |
app/src/main/res/layout/fragment_configuracion.xml
... | ... | @@ -11,10 +11,8 @@ |
11 | 11 | android:id="@+id/textView2" |
12 | 12 | android:layout_width="match_parent" |
13 | 13 | android:layout_height="wrap_content" |
14 | - | |
15 | 14 | android:layout_marginTop="@dimen/MarginTopTitulos" |
16 | 15 | android:gravity="center" |
17 | - | |
18 | 16 | android:lines="1" |
19 | 17 | android:text="@string/tvTituloConf" |
20 | 18 | android:textColor="@color/colorAccent" |
... | ... | @@ -49,23 +47,21 @@ |
49 | 47 | android:layout_width="0dp" |
50 | 48 | android:layout_height="wrap_content" |
51 | 49 | android:elevation="5dp" |
52 | - | |
53 | 50 | android:textSize="@dimen/NormalText" |
54 | 51 | app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" |
55 | 52 | app:layout_constraintEnd_toStartOf="@+id/btnValidarServidor" |
56 | 53 | app:layout_constraintHorizontal_chainStyle="packed" |
57 | 54 | app:layout_constraintStart_toStartOf="parent" |
58 | - app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" | |
59 | - /> | |
55 | + app:layout_constraintTop_toBottomOf="@+id/tvSeleccioneServidor" /> | |
60 | 56 | |
61 | 57 | <Button |
62 | 58 | android:id="@+id/btnValidarServidor" |
63 | 59 | android:layout_width="wrap_content" |
64 | 60 | android:layout_height="wrap_content" |
65 | - android:textColor="@android:color/white" | |
66 | - android:padding="10dp" | |
67 | 61 | android:background="@drawable/boton_borde_redondeado" |
62 | + android:padding="10dp" | |
68 | 63 | android:text="@string/btnValidarServidor" |
64 | + android:textColor="@android:color/white" | |
69 | 65 | android:textSize="@dimen/NormalText" |
70 | 66 | app:layout_constraintBottom_toTopOf="@+id/btnAgregarServidor" |
71 | 67 | app:layout_constraintEnd_toEndOf="parent" |
... | ... | @@ -79,11 +75,11 @@ |
79 | 75 | android:layout_height="wrap_content" |
80 | 76 | android:layout_marginStart="@dimen/MarginBotAgreSer" |
81 | 77 | android:layout_marginEnd="@dimen/MarginBotAgreSer" |
78 | + android:background="@drawable/boton_borde_redondeado" | |
79 | + android:padding="10dp" | |
82 | 80 | android:text="@string/btnAgregarServidor" |
83 | - android:textSize="@dimen/NormalText" | |
84 | 81 | android:textColor="@android:color/white" |
85 | - android:padding="10dp" | |
86 | - android:background="@drawable/boton_borde_redondeado" | |
82 | + android:textSize="@dimen/NormalText" | |
87 | 83 | app:layout_constraintBottom_toTopOf="@+id/tvUbicacionCarpetas" |
88 | 84 | app:layout_constraintEnd_toEndOf="parent" |
89 | 85 | app:layout_constraintStart_toStartOf="parent" |
... | ... | @@ -94,7 +90,6 @@ |
94 | 90 | android:id="@+id/tvUbicacionCarpetas" |
95 | 91 | android:layout_width="0dp" |
96 | 92 | android:layout_height="wrap_content" |
97 | -android:visibility="gone" | |
98 | 93 | android:layout_marginStart="@dimen/MarginBotAgreSer" |
99 | 94 | android:layout_marginTop="@dimen/MarginTopSubTitulos" |
100 | 95 | android:gravity="start" |
... | ... | @@ -102,6 +97,7 @@ android:visibility="gone" |
102 | 97 | android:text="@string/tvUbicacionCarpetas" |
103 | 98 | android:textColor="@android:color/black" |
104 | 99 | android:textSize="@dimen/SubTitulos" |
100 | + android:visibility="gone" | |
105 | 101 | app:fontFamily="sans-serif-condensed" |
106 | 102 | app:layout_constraintBottom_toTopOf="@+id/ibSearch" |
107 | 103 | app:layout_constraintEnd_toEndOf="parent" |
... | ... | @@ -113,11 +109,11 @@ android:visibility="gone" |
113 | 109 | android:layout_width="36dp" |
114 | 110 | android:layout_height="37dp" |
115 | 111 | android:layout_margin="10dp" |
112 | + android:background="@drawable/boton_borde_redondeado" | |
113 | + android:padding="10dp" | |
116 | 114 | android:src="@drawable/search" |
117 | 115 | android:textColor="@android:color/white" |
118 | - android:padding="10dp" | |
119 | 116 | android:visibility="gone" |
120 | - android:background="@drawable/boton_borde_redondeado" | |
121 | 117 | app:layout_constraintEnd_toStartOf="@+id/etRuta" |
122 | 118 | app:layout_constraintStart_toStartOf="parent" |
123 | 119 | app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> |
... | ... | @@ -131,11 +127,11 @@ android:visibility="gone" |
131 | 127 | android:clickable="true" |
132 | 128 | android:ems="10" |
133 | 129 | android:focusable="true" |
134 | - android:visibility="gone" | |
135 | 130 | android:inputType="textPersonName" |
136 | 131 | android:lines="1" |
137 | 132 | android:text="" |
138 | 133 | android:textSize="@dimen/NormalText" |
134 | + android:visibility="gone" | |
139 | 135 | app:layout_constraintEnd_toEndOf="parent" |
140 | 136 | app:layout_constraintStart_toEndOf="@id/ibSearch" |
141 | 137 | app:layout_constraintTop_toBottomOf="@+id/tvUbicacionCarpetas" /> |
... | ... | @@ -221,7 +217,6 @@ android:visibility="gone" |
221 | 217 | android:id="@+id/rbProInclu" |
222 | 218 | android:layout_width="match_parent" |
223 | 219 | android:layout_height="wrap_content" |
224 | - | |
225 | 220 | android:layout_margin="@dimen/PadingCbyRb" |
226 | 221 | android:checked="true" |
227 | 222 | android:padding="@dimen/PadingCbyRb" |
... | ... | @@ -268,7 +263,6 @@ android:visibility="gone" |
268 | 263 | android:id="@+id/tvColumMostrar" |
269 | 264 | android:layout_width="0dp" |
270 | 265 | android:layout_height="wrap_content" |
271 | - | |
272 | 266 | android:layout_marginStart="@dimen/MarginBotAgreSer" |
273 | 267 | android:layout_marginEnd="@dimen/MarginTopSubTitulos" |
274 | 268 | android:gravity="start" |
... | ... | @@ -276,90 +270,94 @@ android:visibility="gone" |
276 | 270 | android:text="@string/tvColumMostrar" |
277 | 271 | android:textColor="@android:color/black" |
278 | 272 | android:textSize="@dimen/SubTitulos" |
273 | + android:visibility="gone" | |
279 | 274 | app:fontFamily="sans-serif-condensed" |
280 | 275 | app:layout_constraintEnd_toEndOf="parent" |
281 | 276 | app:layout_constraintStart_toStartOf="parent" |
282 | 277 | app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> |
283 | 278 | |
284 | - <RadioGroup | |
285 | - android:id="@+id/rgCodigosMostrar" | |
286 | - android:layout_width="0dp" | |
287 | - android:layout_height="wrap_content" | |
279 | +<!-- <RadioGroup--> | |
280 | +<!-- android:id="@+id/rgCodigosMostrar"--> | |
281 | +<!-- android:layout_width="0dp"--> | |
282 | +<!-- android:layout_height="wrap_content"--> | |
283 | +<!-- android:gravity="center"--> | |
284 | +<!-- android:orientation="horizontal"--> | |
285 | +<!-- android:visibility="gone"--> | |
286 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
287 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
288 | +<!-- app:layout_constraintTop_toBottomOf="@+id/tvColumMostrar">--> | |
289 | + | |
290 | +<!-- <RadioButton--> | |
291 | +<!-- android:id="@+id/rbCodigoDebo"--> | |
292 | +<!-- android:layout_width="wrap_content"--> | |
293 | +<!-- android:layout_height="wrap_content"--> | |
294 | +<!-- android:layout_margin="5dp"--> | |
295 | +<!-- android:checked="true"--> | |
296 | +<!-- android:padding="5dp"--> | |
297 | +<!-- android:text="@string/rbCodigoDebo"--> | |
298 | +<!-- android:textSize="@dimen/NormalText" />--> | |
299 | + | |
300 | +<!-- <RadioButton--> | |
301 | +<!-- android:id="@+id/rbCodigoOrigen"--> | |
302 | +<!-- android:layout_width="wrap_content"--> | |
303 | +<!-- android:layout_height="wrap_content"--> | |
304 | +<!-- android:layout_margin="5dp"--> | |
305 | +<!-- android:checked="false"--> | |
306 | +<!-- android:padding="5dp"--> | |
307 | +<!-- android:text="@string/rbCodigoOrigen"--> | |
308 | +<!-- android:textSize="@dimen/NormalText" />--> | |
309 | + | |
310 | +<!-- <RadioButton--> | |
311 | +<!-- android:id="@+id/rbCodigoBarras"--> | |
312 | +<!-- android:layout_width="wrap_content"--> | |
313 | +<!-- android:layout_height="wrap_content"--> | |
314 | +<!-- android:layout_margin="5dp"--> | |
315 | +<!-- android:padding="5dp"--> | |
316 | +<!-- android:text="@string/rbCodigoBarras"--> | |
317 | +<!-- android:textSize="@dimen/NormalText" />--> | |
318 | +<!-- </RadioGroup>--> | |
288 | 319 | |
289 | - android:gravity="center" | |
290 | - android:orientation="horizontal" | |
291 | - app:layout_constraintEnd_toEndOf="parent" | |
292 | - app:layout_constraintStart_toStartOf="parent" | |
293 | - app:layout_constraintTop_toBottomOf="@+id/tvColumMostrar"> | |
294 | - | |
295 | - <RadioButton | |
296 | - android:id="@+id/rbCodigoDebo" | |
297 | - android:layout_width="wrap_content" | |
298 | - android:layout_height="wrap_content" | |
299 | - android:layout_margin="5dp" | |
300 | - android:checked="true" | |
301 | - android:padding="5dp" | |
302 | - android:text="@string/rbCodigoDebo" | |
303 | - android:textSize="@dimen/NormalText" /> | |
304 | - | |
305 | - <RadioButton | |
306 | - android:id="@+id/rbCodigoOrigen" | |
307 | - android:layout_width="wrap_content" | |
308 | - android:layout_height="wrap_content" | |
309 | - android:layout_margin="5dp" | |
310 | - android:checked="false" | |
311 | - android:padding="5dp" | |
312 | - android:text="@string/rbCodigoOrigen" | |
313 | - android:textSize="@dimen/NormalText" /> | |
314 | - | |
315 | - <RadioButton | |
316 | - android:id="@+id/rbCodigoBarras" | |
317 | - android:layout_width="wrap_content" | |
318 | - android:layout_height="wrap_content" | |
319 | - android:layout_margin="5dp" | |
320 | - android:padding="5dp" | |
321 | - android:text="@string/rbCodigoBarras" | |
322 | - android:textSize="@dimen/NormalText" /> | |
323 | - </RadioGroup> | |
324 | - | |
325 | - <CheckBox | |
326 | - android:id="@+id/cbMostrarExistencia" | |
320 | + <Button | |
321 | + android:id="@+id/btnAskTimeServer" | |
327 | 322 | android:layout_width="wrap_content" |
328 | 323 | android:layout_height="wrap_content" |
329 | 324 | android:layout_margin="@dimen/PadingCbyRb" |
330 | - android:padding="@dimen/PadingCbyRb" | |
331 | - android:text="@string/cbMostrarExistencia" | |
332 | - android:textSize="@dimen/NormalText" | |
325 | + android:background="@drawable/boton_borde_redondeado" | |
333 | 326 | android:checked="false" |
334 | - app:layout_constraintEnd_toStartOf="@+id/cbMostrarPrecio" | |
327 | + android:padding="10dp" | |
328 | + android:text="@string/btnAskTimeServer" | |
329 | + android:textColor="@android:color/white" | |
330 | + android:textSize="@dimen/NormalText" | |
331 | + android:visibility="gone" | |
335 | 332 | app:layout_constraintStart_toStartOf="parent" |
336 | 333 | app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" /> |
337 | 334 | |
338 | 335 | <CheckBox |
339 | - android:id="@+id/cbMostrarPrecio" | |
336 | + android:id="@+id/cbAskTimeServerToStart" | |
340 | 337 | android:layout_width="wrap_content" |
341 | 338 | android:layout_height="wrap_content" |
342 | - android:layout_margin="@dimen/PadingCbyRb" | |
339 | + android:layout_margin="5dp" | |
340 | + android:checked="false" | |
343 | 341 | android:padding="@dimen/PadingCbyRb" |
344 | - android:text="@string/cbMostrarPrecio" | |
342 | + android:text="@string/cbAskTimeServerToStart" | |
345 | 343 | android:textSize="@dimen/NormalText" |
346 | - android:checked="false" | |
347 | - app:layout_constraintEnd_toEndOf="parent" | |
348 | - app:layout_constraintStart_toEndOf="@+id/cbMostrarExistencia" | |
349 | - app:layout_constraintTop_toBottomOf="@+id/rgCodigosMostrar" /> | |
344 | + android:visibility="visible" | |
345 | + app:layout_constraintStart_toEndOf="@+id/btnAskTimeServer" | |
346 | + app:layout_constraintTop_toBottomOf="@+id/cbMostrarStock" /> | |
350 | 347 | |
351 | 348 | <Button |
352 | 349 | android:id="@+id/btnGuardar" |
353 | 350 | android:layout_width="wrap_content" |
354 | 351 | android:layout_height="wrap_content" |
352 | + android:background="@drawable/boton_borde_redondeado" | |
353 | + android:padding="10dp" | |
355 | 354 | android:text="@string/btnGuardar" |
355 | + android:textColor="@android:color/white" | |
356 | 356 | android:textSize="@dimen/NormalText" |
357 | + app:layout_constraintBottom_toBottomOf="parent" | |
357 | 358 | app:layout_constraintEnd_toEndOf="parent" |
358 | - android:textColor="@android:color/white" | |
359 | - android:padding="10dp" | |
360 | - android:background="@drawable/boton_borde_redondeado" | |
361 | 359 | app:layout_constraintStart_toStartOf="parent" |
362 | - app:layout_constraintTop_toBottomOf="@+id/cbMostrarPrecio" /> | |
360 | + app:layout_constraintTop_toBottomOf="@+id/cbAskTimeServerToStart" /> | |
363 | 361 | |
364 | 362 | </androidx.constraintlayout.widget.ConstraintLayout> |
365 | 363 |
app/src/main/res/layout/fragment_detalle_art_sec.xml
... | ... | @@ -0,0 +1,338 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + android:id="@+id/nsPedidosDatos" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="match_parent"> | |
7 | + | |
8 | + <androidx.cardview.widget.CardView | |
9 | + android:id="@+id/cvItem1" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="wrap_content" | |
12 | + android:layout_marginStart="5dp" | |
13 | + android:layout_marginTop="5dp" | |
14 | + android:layout_marginEnd="5dp" | |
15 | + app:cardBackgroundColor="@android:color/darker_gray" | |
16 | + app:cardCornerRadius="25dp" | |
17 | + app:cardElevation="10dp" | |
18 | + app:layout_constraintEnd_toEndOf="parent" | |
19 | + app:layout_constraintStart_toStartOf="parent" | |
20 | + app:layout_constraintTop_toTopOf="parent"> | |
21 | + | |
22 | + <androidx.constraintlayout.widget.ConstraintLayout | |
23 | + android:id="@+id/clayout" | |
24 | + android:layout_width="match_parent" | |
25 | + android:layout_height="match_parent"> | |
26 | + | |
27 | + <TextView | |
28 | + android:id="@+id/tvDescripcion" | |
29 | + android:layout_width="wrap_content" | |
30 | + android:layout_height="0dp" | |
31 | + android:layout_marginTop="10dp" | |
32 | + android:gravity="center_horizontal" | |
33 | + | |
34 | + android:text="coaca" | |
35 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
36 | + android:textSize="25sp" | |
37 | + android:textStyle="bold" | |
38 | + app:layout_constraintEnd_toEndOf="parent" | |
39 | + app:layout_constraintStart_toStartOf="parent" | |
40 | + app:layout_constraintTop_toTopOf="parent" /> | |
41 | + | |
42 | + | |
43 | + <TextView | |
44 | + android:id="@+id/textView18" | |
45 | + android:layout_width="wrap_content" | |
46 | + android:layout_height="wrap_content" | |
47 | + android:layout_marginTop="10dp" | |
48 | + android:text="Códigos:" | |
49 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
50 | + android:textSize="15sp" | |
51 | + app:layout_constraintStart_toStartOf="parent" | |
52 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
53 | + | |
54 | + <TextView | |
55 | + android:id="@+id/textView19" | |
56 | + android:layout_width="wrap_content" | |
57 | + android:layout_height="wrap_content" | |
58 | + android:layout_marginStart="5dp" | |
59 | + android:text="DEBO:" | |
60 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
61 | + android:textSize="15sp" | |
62 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView18" | |
63 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
64 | + | |
65 | + <TextView | |
66 | + android:id="@+id/tvSector" | |
67 | + android:layout_width="0dp" | |
68 | + android:layout_height="wrap_content" | |
69 | + android:layout_marginStart="5dp" | |
70 | + android:text="99" | |
71 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
72 | + android:textSize="18sp" | |
73 | + android:textStyle="bold" | |
74 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView19" | |
75 | + app:layout_constraintStart_toEndOf="@+id/textView19" /> | |
76 | + | |
77 | + <TextView | |
78 | + android:id="@+id/tvCodigo" | |
79 | + android:layout_width="0dp" | |
80 | + android:layout_height="wrap_content" | |
81 | + android:layout_marginStart="3dp" | |
82 | + android:layout_marginTop="10dp" | |
83 | + android:text="999999" | |
84 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
85 | + android:textSize="18sp" | |
86 | + android:textStyle="bold" | |
87 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvSector" | |
88 | + app:layout_constraintStart_toEndOf="@id/tvSector" /> | |
89 | + | |
90 | + | |
91 | + <TextView | |
92 | + android:id="@+id/textView1" | |
93 | + android:layout_width="0dp" | |
94 | + android:layout_height="wrap_content" | |
95 | + android:layout_marginStart="5dp" | |
96 | + android:layout_marginTop="10dp" | |
97 | + android:text="barras:" | |
98 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
99 | + android:textSize="15sp" | |
100 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvCodigo" | |
101 | + app:layout_constraintStart_toEndOf="@+id/tvCodigo" /> | |
102 | + | |
103 | + <TextView | |
104 | + android:id="@+id/tvCodigoBarras" | |
105 | + android:layout_width="wrap_content" | |
106 | + android:layout_height="wrap_content" | |
107 | + android:layout_marginStart="5dp" | |
108 | + android:text="12346579012345" | |
109 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
110 | + android:textSize="18sp" | |
111 | + android:textStyle="bold" | |
112 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView1" | |
113 | + app:layout_constraintStart_toEndOf="@id/textView1" /> | |
114 | + | |
115 | + <TextView | |
116 | + android:id="@+id/textView2" | |
117 | + android:layout_width="wrap_content" | |
118 | + android:layout_height="wrap_content" | |
119 | + android:layout_marginStart="5dp" | |
120 | + android:layout_marginTop="10dp" | |
121 | + android:text="origen:" | |
122 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
123 | + android:textSize="15sp" | |
124 | + app:layout_constraintStart_toEndOf="@+id/textView18" | |
125 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
126 | + | |
127 | + | |
128 | + <TextView | |
129 | + android:id="@+id/tvCodigoOrigen" | |
130 | + android:layout_width="wrap_content" | |
131 | + android:layout_height="wrap_content" | |
132 | + android:layout_marginStart="5dp" | |
133 | + android:layout_marginTop="10dp" | |
134 | + android:text="1234567890123" | |
135 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
136 | + android:textSize="18sp" | |
137 | + android:textStyle="bold" | |
138 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView2" | |
139 | + app:layout_constraintStart_toEndOf="@+id/textView2" | |
140 | + app:layout_constraintTop_toBottomOf="@+id/textView18" /> | |
141 | + | |
142 | + <TextView | |
143 | + android:id="@+id/textView9" | |
144 | + android:layout_width="wrap_content" | |
145 | + android:layout_height="wrap_content" | |
146 | + android:layout_marginTop="10dp" | |
147 | + android:text="Precio:" | |
148 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
149 | + android:textSize="15sp" | |
150 | + app:layout_constraintStart_toStartOf="parent" | |
151 | + app:layout_constraintTop_toBottomOf="@+id/textView2" /> | |
152 | + | |
153 | + <TextView | |
154 | + android:id="@+id/textView12" | |
155 | + android:layout_width="wrap_content" | |
156 | + android:layout_height="wrap_content" | |
157 | + android:layout_marginStart="5dp" | |
158 | + android:layout_marginTop="10dp" | |
159 | + android:text="venta:" | |
160 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
161 | + android:textSize="15sp" | |
162 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView9" | |
163 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
164 | + | |
165 | + <TextView | |
166 | + android:id="@+id/tvPrecio" | |
167 | + android:layout_width="wrap_content" | |
168 | + android:layout_height="wrap_content" | |
169 | + android:layout_marginStart="5dp" | |
170 | + android:layout_marginTop="10dp" | |
171 | + android:text="99999.99" | |
172 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
173 | + android:textSize="18sp" | |
174 | + android:textStyle="bold" | |
175 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView12" | |
176 | + app:layout_constraintStart_toEndOf="@+id/textView12" /> | |
177 | + | |
178 | + <TextView | |
179 | + android:id="@+id/textView8" | |
180 | + android:layout_width="wrap_content" | |
181 | + android:layout_height="wrap_content" | |
182 | + android:layout_marginStart="5dp" | |
183 | + android:layout_marginTop="10dp" | |
184 | + android:text="Costo:" | |
185 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
186 | + android:textSize="15sp" | |
187 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvPrecio" | |
188 | + app:layout_constraintStart_toEndOf="@+id/tvPrecio" /> | |
189 | + | |
190 | + <TextView | |
191 | + android:id="@+id/tvCosto" | |
192 | + android:layout_width="wrap_content" | |
193 | + android:layout_height="wrap_content" | |
194 | + android:layout_marginStart="5dp" | |
195 | + android:layout_marginTop="10dp" | |
196 | + android:text="9999.99" | |
197 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
198 | + android:textSize="18sp" | |
199 | + android:textStyle="bold" | |
200 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView8" | |
201 | + app:layout_constraintStart_toEndOf="@+id/textView8" /> | |
202 | + | |
203 | + <TextView | |
204 | + android:id="@+id/textView3" | |
205 | + android:layout_width="wrap_content" | |
206 | + android:layout_height="wrap_content" | |
207 | + android:layout_marginTop="10dp" | |
208 | + android:text="Depósito:" | |
209 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
210 | + android:textSize="15sp" | |
211 | + app:layout_constraintStart_toStartOf="parent" | |
212 | + app:layout_constraintTop_toBottomOf="@+id/textView9" /> | |
213 | + | |
214 | + <TextView | |
215 | + android:id="@+id/tvDeposito" | |
216 | + android:layout_width="wrap_content" | |
217 | + android:layout_height="wrap_content" | |
218 | + android:layout_marginStart="5dp" | |
219 | + android:text="Si" | |
220 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
221 | + android:textSize="18sp" | |
222 | + android:textStyle="bold" | |
223 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView3" | |
224 | + app:layout_constraintStart_toEndOf="@+id/textView3" /> | |
225 | + | |
226 | + <TextView | |
227 | + android:id="@+id/textView5" | |
228 | + android:layout_width="wrap_content" | |
229 | + android:layout_height="wrap_content" | |
230 | + android:layout_marginTop="10dp" | |
231 | + android:text="Stock:" | |
232 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
233 | + android:textSize="15sp" | |
234 | + app:layout_constraintStart_toStartOf="parent" | |
235 | + app:layout_constraintTop_toBottomOf="@+id/textView3" /> | |
236 | + | |
237 | + | |
238 | + <TextView | |
239 | + android:id="@+id/textView15" | |
240 | + android:layout_width="wrap_content" | |
241 | + android:layout_height="wrap_content" | |
242 | + android:layout_marginStart="5dp" | |
243 | + android:layout_marginTop="10dp" | |
244 | + android:text="venta:" | |
245 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
246 | + android:textSize="15sp" | |
247 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
248 | + app:layout_constraintStart_toEndOf="@+id/textView18" /> | |
249 | + | |
250 | + <TextView | |
251 | + android:id="@+id/tvExiVenta" | |
252 | + android:layout_width="wrap_content" | |
253 | + android:layout_height="wrap_content" | |
254 | + android:layout_marginStart="5dp" | |
255 | + android:layout_marginTop="10dp" | |
256 | + android:text="99999.99" | |
257 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
258 | + android:textSize="18sp" | |
259 | + android:textStyle="bold" | |
260 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView15" | |
261 | + app:layout_constraintStart_toEndOf="@+id/textView15" /> | |
262 | + | |
263 | + <TextView | |
264 | + android:id="@+id/textView7" | |
265 | + android:layout_width="wrap_content" | |
266 | + android:layout_height="wrap_content" | |
267 | + android:layout_marginStart="5dp" | |
268 | + android:text="deposito:" | |
269 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
270 | + android:textSize="15sp" | |
271 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvExiVenta" | |
272 | + app:layout_constraintStart_toEndOf="@+id/tvExiVenta" /> | |
273 | + | |
274 | + <TextView | |
275 | + android:id="@+id/tvExiDeposito" | |
276 | + android:layout_width="wrap_content" | |
277 | + android:layout_height="wrap_content" | |
278 | + android:layout_marginStart="5dp" | |
279 | + android:layout_marginTop="10dp" | |
280 | + android:text="99999.99" | |
281 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
282 | + android:textSize="18sp" | |
283 | + android:textStyle="bold" | |
284 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView7" | |
285 | + app:layout_constraintStart_toEndOf="@+id/textView7" | |
286 | + app:layout_constraintTop_toBottomOf="@+id/tvCosto" /> | |
287 | + | |
288 | + | |
289 | + <TextView | |
290 | + android:id="@+id/textView10" | |
291 | + android:layout_width="wrap_content" | |
292 | + android:layout_height="wrap_content" | |
293 | + android:layout_marginStart="5dp" | |
294 | + android:layout_marginTop="10dp" | |
295 | + android:text="Unidad de venta:" | |
296 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
297 | + android:textSize="15sp" | |
298 | + app:layout_constraintBaseline_toBaselineOf="@+id/tvDeposito" | |
299 | + app:layout_constraintStart_toEndOf="@+id/tvPrecio" /> | |
300 | + | |
301 | + <TextView | |
302 | + android:id="@+id/tvBal" | |
303 | + android:layout_width="wrap_content" | |
304 | + android:layout_height="wrap_content" | |
305 | + android:layout_marginStart="5dp" | |
306 | + android:text="Unidades" | |
307 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
308 | + android:textSize="15sp" | |
309 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView10" | |
310 | + app:layout_constraintStart_toEndOf="@+id/textView10" /> | |
311 | + | |
312 | + | |
313 | + <TextView | |
314 | + android:id="@+id/textView11" | |
315 | + android:layout_width="wrap_content" | |
316 | + android:layout_height="wrap_content" | |
317 | + android:layout_marginTop="10dp" | |
318 | + android:text="Imagen:" | |
319 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
320 | + android:textSize="14sp" | |
321 | + app:layout_constraintStart_toStartOf="parent" | |
322 | + app:layout_constraintTop_toBottomOf="@+id/textView5" /> | |
323 | + | |
324 | + <ImageView | |
325 | + android:id="@+id/ivImagen" | |
326 | + android:layout_width="300dp" | |
327 | + android:layout_height="300dp" | |
328 | + android:layout_marginStart="5dp" | |
329 | + android:src="@drawable/no_imagen" | |
330 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
331 | + android:textSize="14sp" | |
332 | + app:layout_constraintStart_toEndOf="@+id/textView11" | |
333 | + app:layout_constraintTop_toBottomOf="@+id/textView15" /> | |
334 | + | |
335 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
336 | + </androidx.cardview.widget.CardView> | |
337 | + | |
338 | +</ScrollView> |
app/src/main/res/layout/fragment_inv_importados.xml
... | ... | @@ -24,14 +24,15 @@ |
24 | 24 | |
25 | 25 | <TextView |
26 | 26 | android:id="@+id/tvSeleccionInventario" |
27 | - android:layout_width="0dp" | |
27 | + android:layout_width="355dp" | |
28 | 28 | android:layout_height="wrap_content" |
29 | - android:layout_margin="30dp" | |
30 | - android:layout_marginTop="28dp" | |
29 | + android:layout_marginTop="15dp" | |
30 | + android:layout_marginBottom="15dp" | |
31 | 31 | android:gravity="center" |
32 | + android:padding="5dp" | |
32 | 33 | android:text="@string/tvSeleccionInventario" |
33 | 34 | android:textColor="@android:color/black" |
34 | - android:textSize="@dimen/MarginTopTitulos" | |
35 | + android:textSize="@dimen/TitulosMedios" | |
35 | 36 | app:fontFamily="sans-serif-condensed" |
36 | 37 | app:layout_constraintEnd_toEndOf="parent" |
37 | 38 | app:layout_constraintStart_toStartOf="parent" |
... | ... | @@ -43,6 +44,7 @@ |
43 | 44 | android:layout_height="0dp" |
44 | 45 | android:background="@android:color/darker_gray" |
45 | 46 | android:scrollbars="vertical" |
47 | + android:visibility="visible" | |
46 | 48 | app:layout_constraintBottom_toTopOf="@+id/guideline" |
47 | 49 | app:layout_constraintEnd_toEndOf="parent" |
48 | 50 | app:layout_constraintStart_toStartOf="parent" |
... | ... | @@ -55,7 +57,7 @@ |
55 | 57 | android:layout_height="wrap_content" |
56 | 58 | android:layout_margin="20dp" |
57 | 59 | android:text="@string/btnConfirmarAct" |
58 | - android:textSize="@dimen/MarginTopTitulos" | |
60 | + android:textSize="@dimen/SubTitulos" | |
59 | 61 | android:textColor="@android:color/white" |
60 | 62 | android:padding="10dp" |
61 | 63 | android:background="@drawable/boton_borde_redondeado" |
... | ... | @@ -65,7 +67,7 @@ |
65 | 67 | |
66 | 68 | |
67 | 69 | <ProgressBar |
68 | - android:id="@+id/loading_view" | |
70 | + android:id="@+id/pbInvSec" | |
69 | 71 | android:layout_width="wrap_content" |
70 | 72 | android:layout_height="wrap_content" |
71 | 73 | android:layout_marginStart="8dp" |
... | ... | @@ -79,6 +81,23 @@ |
79 | 81 | app:layout_constraintEnd_toEndOf="parent" |
80 | 82 | app:layout_constraintStart_toStartOf="parent" |
81 | 83 | app:layout_constraintTop_toTopOf="parent" /> |
84 | + | |
85 | + <TextView | |
86 | + android:id="@+id/tvMensaje" | |
87 | + android:layout_width="0dp" | |
88 | + android:layout_height="wrap_content" | |
89 | + android:padding="15dp" | |
90 | + android:gravity="center" | |
91 | + android:text="@string/tvSeleccionInventario" | |
92 | + android:textColor="@android:color/black" | |
93 | + android:textSize="@dimen/TitulosMedios" | |
94 | + app:fontFamily="sans-serif-condensed" | |
95 | + android:visibility="gone" | |
96 | + app:layout_constraintBottom_toBottomOf="@+id/rcDescripcion" | |
97 | + app:layout_constraintEnd_toEndOf="parent" | |
98 | + app:layout_constraintStart_toStartOf="parent" | |
99 | + app:layout_constraintTop_toTopOf="@+id/rcDescripcion" /> | |
100 | + | |
82 | 101 | <androidx.constraintlayout.widget.Guideline |
83 | 102 | android:id="@+id/guideline" |
84 | 103 | android:layout_width="wrap_content" |
app/src/main/res/layout/fragment_inv_sec.xml
... | ... | @@ -0,0 +1,245 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout | |
3 | + xmlns:android="http://schemas.android.com/apk/res/android" | |
4 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
5 | + xmlns:tools="http://schemas.android.com/tools" | |
6 | + android:id="@+id/frameLayout" | |
7 | + android:layout_width="match_parent" | |
8 | + android:layout_height="match_parent" | |
9 | + tools:context=".UI.inventario.InventarioFragment"> | |
10 | + | |
11 | + | |
12 | +<!-- <androidx.appcompat.widget.AppCompatTextView--> | |
13 | +<!-- android:id="@+id/tvTituloSec"--> | |
14 | +<!-- android:layout_width="0dp"--> | |
15 | +<!-- android:layout_height="wrap_content"--> | |
16 | +<!-- android:layout_marginStart="8dp"--> | |
17 | +<!-- android:layout_marginEnd="8dp"--> | |
18 | +<!-- android:textSize="60sp"--> | |
19 | +<!-- android:gravity="center"--> | |
20 | +<!-- android:lines="1"--> | |
21 | +<!-- android:text="@string/invTitulo"--> | |
22 | +<!-- android:textColor="@color/colorAccent"--> | |
23 | +<!-- app:fontFamily="sans-serif-condensed"--> | |
24 | +<!-- app:layout_constraintBottom_toTopOf="@id/guideline2"--> | |
25 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
26 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
27 | +<!-- app:layout_constraintTop_toTopOf="@id/guideline" />--> | |
28 | + | |
29 | + | |
30 | +<!-- <androidx.recyclerview.widget.RecyclerView--> | |
31 | +<!-- android:id="@+id/rcInventariosSec"--> | |
32 | +<!-- android:layout_width="match_parent"--> | |
33 | +<!-- android:layout_height="0dp"--> | |
34 | +<!-- android:background="@android:color/darker_gray"--> | |
35 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline5"--> | |
36 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
37 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
38 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline2"--> | |
39 | +<!-- tools:listitem="@layout/item" />--> | |
40 | + | |
41 | + | |
42 | +<!-- <Button--> | |
43 | +<!-- android:id="@+id/btnExportarInvSec"--> | |
44 | +<!-- android:layout_width="wrap_content"--> | |
45 | +<!-- android:layout_height="wrap_content"--> | |
46 | +<!-- android:text="@string/btnExportarInv"--> | |
47 | +<!-- android:textColor="@android:color/white"--> | |
48 | +<!-- android:padding="10dp"--> | |
49 | +<!-- android:background="@drawable/boton_borde_redondeado"--> | |
50 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline6"--> | |
51 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
52 | +<!-- app:layout_constraintHorizontal_chainStyle="spread"--> | |
53 | +<!-- app:layout_constraintStart_toEndOf="@+id/btnBorrarInv"--> | |
54 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline5" />--> | |
55 | + | |
56 | +<!-- <Button--> | |
57 | +<!-- android:id="@+id/btnBorrarInv"--> | |
58 | +<!-- android:layout_width="wrap_content"--> | |
59 | +<!-- android:layout_height="wrap_content"--> | |
60 | +<!-- android:text="@string/btnBorrarInv"--> | |
61 | +<!-- app:layout_constraintBottom_toBottomOf="@+id/guideline6"--> | |
62 | +<!-- app:layout_constraintEnd_toStartOf="@id/btnExportarInvSec"--> | |
63 | +<!-- app:layout_constraintHorizontal_chainStyle="spread"--> | |
64 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
65 | +<!-- android:textColor="@android:color/white"--> | |
66 | +<!-- android:padding="10dp"--> | |
67 | +<!-- android:background="@drawable/boton_borde_redondeado"--> | |
68 | +<!-- app:layout_constraintTop_toBottomOf="@+id/guideline5" />--> | |
69 | + | |
70 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
71 | +<!-- android:id="@+id/guideline"--> | |
72 | +<!-- android:layout_width="wrap_content"--> | |
73 | +<!-- android:layout_height="wrap_content"--> | |
74 | +<!-- android:orientation="horizontal"--> | |
75 | +<!-- app:layout_constraintGuide_percent="0.02" />--> | |
76 | + | |
77 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
78 | +<!-- android:id="@+id/guideline2"--> | |
79 | +<!-- android:layout_width="wrap_content"--> | |
80 | +<!-- android:layout_height="wrap_content"--> | |
81 | +<!-- android:orientation="horizontal"--> | |
82 | +<!-- app:layout_constraintGuide_percent="0.12029161" />--> | |
83 | + | |
84 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
85 | +<!-- android:id="@+id/guideline5"--> | |
86 | +<!-- android:layout_width="wrap_content"--> | |
87 | +<!-- android:layout_height="wrap_content"--> | |
88 | +<!-- android:orientation="horizontal"--> | |
89 | +<!-- app:layout_constraintGuide_percent="0.88" />--> | |
90 | + | |
91 | +<!-- <androidx.constraintlayout.widget.Guideline--> | |
92 | +<!-- android:id="@+id/guideline6"--> | |
93 | +<!-- android:layout_width="wrap_content"--> | |
94 | +<!-- android:layout_height="wrap_content"--> | |
95 | +<!-- android:orientation="horizontal"--> | |
96 | +<!-- app:layout_constraintGuide_percent="0.97" />--> | |
97 | + | |
98 | + | |
99 | + | |
100 | + <androidx.appcompat.widget.AppCompatTextView | |
101 | + android:id="@+id/tvTitulo" | |
102 | + android:layout_width="0dp" | |
103 | + android:layout_height="50dp" | |
104 | + android:layout_marginStart="8dp" | |
105 | + android:layout_marginEnd="8dp" | |
106 | + android:autoSizeMaxTextSize="100sp" | |
107 | + android:autoSizeMinTextSize="20sp" | |
108 | + android:autoSizeStepGranularity="5sp" | |
109 | + android:autoSizeTextType="uniform" | |
110 | + android:gravity="center" | |
111 | + android:lines="1" | |
112 | + android:text="@string/invTitulo" | |
113 | + android:textColor="@color/colorAccent" | |
114 | + app:fontFamily="sans-serif-condensed" | |
115 | + app:layout_constraintBottom_toTopOf="@id/guideline2" | |
116 | + app:layout_constraintEnd_toEndOf="parent" | |
117 | + app:layout_constraintStart_toStartOf="parent" | |
118 | + app:layout_constraintTop_toTopOf="@id/guideline" /> | |
119 | + | |
120 | + | |
121 | + <ImageButton | |
122 | + android:id="@+id/ivCamara" | |
123 | + android:layout_width="80dp" | |
124 | + android:layout_height="80dp" | |
125 | + android:layout_marginTop="15dp" | |
126 | + android:clickable="true" | |
127 | + android:contentDescription="@string/ibBusCB" | |
128 | + android:elevation="5dp" | |
129 | + android:background="@drawable/boton_redondo" | |
130 | + android:layout_margin="10dp" | |
131 | + android:focusable="false" | |
132 | + android:scaleType="fitEnd" | |
133 | + app:layout_constraintCircleRadius="40dp" | |
134 | + android:src="@drawable/desc" | |
135 | + app:layout_constraintBottom_toTopOf="@id/guideline3" | |
136 | + app:layout_constraintEnd_toStartOf="@+id/etDescripcion" | |
137 | + app:layout_constraintHorizontal_bias="0.0" | |
138 | + app:layout_constraintStart_toStartOf="parent" | |
139 | + app:layout_constraintTop_toBottomOf="@+id/guideline2" /> | |
140 | + | |
141 | + <EditText | |
142 | + android:id="@+id/etDescripcion" | |
143 | + android:layout_width="0dp" | |
144 | + android:layout_height="wrap_content" | |
145 | + android:autofillHints="" | |
146 | + android:clickable="true" | |
147 | + android:ems="10" | |
148 | + android:focusable="true" | |
149 | + android:hint="@string/ibBusDesc" | |
150 | + android:inputType="textPersonName" | |
151 | + android:lines="1" | |
152 | + android:textAllCaps="true" | |
153 | + android:textSize="20sp" | |
154 | + app:layout_constraintBottom_toTopOf="@+id/guideline3" | |
155 | + app:layout_constraintEnd_toEndOf="parent" | |
156 | + app:layout_constraintHorizontal_bias="0.49" | |
157 | + app:layout_constraintHorizontal_chainStyle="packed" | |
158 | + app:layout_constraintStart_toEndOf="@+id/ivCamara" | |
159 | + app:layout_constraintTop_toBottomOf="@+id/guideline2" /> | |
160 | + | |
161 | + | |
162 | + <androidx.recyclerview.widget.RecyclerView | |
163 | + android:id="@+id/rcInventarios" | |
164 | + android:layout_width="match_parent" | |
165 | + android:layout_height="0dp" | |
166 | + android:background="@android:color/darker_gray" | |
167 | + app:layout_constraintBottom_toBottomOf="@+id/guideline5" | |
168 | + app:layout_constraintEnd_toEndOf="parent" | |
169 | + app:layout_constraintStart_toStartOf="parent" | |
170 | + app:layout_constraintTop_toBottomOf="@+id/guideline4" | |
171 | + tools:listitem="@layout/item" /> | |
172 | + | |
173 | + | |
174 | + <Button | |
175 | + android:id="@+id/btnExportarInv" | |
176 | + android:layout_width="wrap_content" | |
177 | + android:layout_height="wrap_content" | |
178 | + android:text="@string/btnExportarInv" | |
179 | + android:textColor="@android:color/white" | |
180 | + android:padding="10dp" | |
181 | + android:background="@drawable/boton_borde_redondeado" | |
182 | + app:layout_constraintBottom_toBottomOf="@+id/guideline6" | |
183 | + app:layout_constraintEnd_toEndOf="parent" | |
184 | + app:layout_constraintHorizontal_chainStyle="spread" | |
185 | + app:layout_constraintStart_toEndOf="@+id/btnBorrarInv" | |
186 | + app:layout_constraintTop_toBottomOf="@+id/guideline5" /> | |
187 | + | |
188 | + <Button | |
189 | + android:id="@+id/btnBorrarInv" | |
190 | + android:layout_width="wrap_content" | |
191 | + android:layout_height="wrap_content" | |
192 | + android:text="@string/btnBorrarInv" | |
193 | + app:layout_constraintBottom_toBottomOf="@+id/guideline6" | |
194 | + app:layout_constraintEnd_toStartOf="@id/btnExportarInv" | |
195 | + app:layout_constraintHorizontal_chainStyle="spread" | |
196 | + app:layout_constraintStart_toStartOf="parent" | |
197 | + android:textColor="@android:color/white" | |
198 | + android:padding="10dp" | |
199 | + android:background="@drawable/boton_borde_redondeado" | |
200 | + app:layout_constraintTop_toBottomOf="@+id/guideline5" /> | |
201 | + | |
202 | + <androidx.constraintlayout.widget.Guideline | |
203 | + android:id="@+id/guideline" | |
204 | + android:layout_width="wrap_content" | |
205 | + android:layout_height="wrap_content" | |
206 | + android:orientation="horizontal" | |
207 | + app:layout_constraintGuide_percent="0.02" /> | |
208 | + | |
209 | + <androidx.constraintlayout.widget.Guideline | |
210 | + android:id="@+id/guideline2" | |
211 | + android:layout_width="wrap_content" | |
212 | + android:layout_height="wrap_content" | |
213 | + android:orientation="horizontal" | |
214 | + app:layout_constraintGuide_percent="0.12029161" /> | |
215 | + | |
216 | + <androidx.constraintlayout.widget.Guideline | |
217 | + android:id="@+id/guideline3" | |
218 | + android:layout_width="wrap_content" | |
219 | + android:layout_height="wrap_content" | |
220 | + android:orientation="horizontal" | |
221 | + app:layout_constraintGuide_percent="0.27" /> | |
222 | + | |
223 | + <androidx.constraintlayout.widget.Guideline | |
224 | + android:id="@+id/guideline4" | |
225 | + android:layout_width="wrap_content" | |
226 | + android:layout_height="wrap_content" | |
227 | + android:orientation="horizontal" | |
228 | + app:layout_constraintGuide_percent="0.32" /> | |
229 | + | |
230 | + <androidx.constraintlayout.widget.Guideline | |
231 | + android:id="@+id/guideline5" | |
232 | + android:layout_width="wrap_content" | |
233 | + android:layout_height="wrap_content" | |
234 | + android:orientation="horizontal" | |
235 | + app:layout_constraintGuide_percent="0.88" /> | |
236 | + | |
237 | + <androidx.constraintlayout.widget.Guideline | |
238 | + android:id="@+id/guideline6" | |
239 | + android:layout_width="wrap_content" | |
240 | + android:layout_height="wrap_content" | |
241 | + android:orientation="horizontal" | |
242 | + app:layout_constraintGuide_percent="0.97" /> | |
243 | + | |
244 | + | |
245 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 246 | \ No newline at end of file |
app/src/main/res/layout/fragment_inventario.xml
... | ... | @@ -120,6 +120,23 @@ |
120 | 120 | android:background="@drawable/boton_borde_redondeado" |
121 | 121 | app:layout_constraintTop_toBottomOf="@+id/guideline5" /> |
122 | 122 | |
123 | + | |
124 | + <ProgressBar | |
125 | + android:id="@+id/loading_view" | |
126 | + android:layout_width="wrap_content" | |
127 | + android:layout_height="wrap_content" | |
128 | + android:layout_marginStart="8dp" | |
129 | + android:layout_marginLeft="8dp" | |
130 | + android:layout_marginTop="8dp" | |
131 | + android:layout_marginEnd="8dp" | |
132 | + android:layout_marginRight="8dp" | |
133 | + android:layout_marginBottom="8dp" | |
134 | + android:visibility="gone" | |
135 | + app:layout_constraintBottom_toBottomOf="parent" | |
136 | + app:layout_constraintEnd_toEndOf="parent" | |
137 | + app:layout_constraintStart_toStartOf="parent" | |
138 | + app:layout_constraintTop_toTopOf="parent" /> | |
139 | + | |
123 | 140 | <androidx.constraintlayout.widget.Guideline |
124 | 141 | android:id="@+id/guideline" |
125 | 142 | android:layout_width="wrap_content" |
app/src/main/res/layout/fragment_main.xml
... | ... | @@ -120,67 +120,40 @@ |
120 | 120 | app:layout_constraintTop_toBottomOf="@id/tvInvDinamicos" |
121 | 121 | app:layout_constraintVertical_bias="0.0" /> |
122 | 122 | |
123 | - <androidx.appcompat.widget.AppCompatImageButton | |
124 | - android:id="@+id/ivSort19II" | |
125 | - android:layout_width="50dp" | |
126 | - android:layout_height="50dp" | |
127 | - android:layout_marginStart="10dp" | |
128 | - android:padding="5dp" | |
129 | - android:src="@drawable/ic_sort19" | |
130 | - android:visibility="gone" | |
131 | - app:layout_constraintHorizontal_bias="0.0" | |
132 | - app:layout_constraintHorizontal_chainStyle="packed" | |
133 | - app:layout_constraintStart_toStartOf="parent" | |
134 | - app:layout_constraintTop_toBottomOf="@id/tvInvImportados" /> | |
135 | - | |
136 | - <androidx.appcompat.widget.AppCompatImageButton | |
137 | - android:id="@+id/ivSort91II" | |
138 | - android:layout_width="50dp" | |
139 | - android:layout_height="50dp" | |
140 | - android:layout_marginStart="10dp" | |
141 | - android:padding="5dp" | |
142 | - android:src="@drawable/ic_sort91" | |
143 | - android:visibility="gone" | |
144 | - app:layout_constraintHorizontal_chainStyle="packed" | |
145 | - app:layout_constraintStart_toStartOf="parent" | |
146 | - app:layout_constraintTop_toBottomOf="@id/tvInvImportados" /> | |
147 | - | |
148 | - <TextView | |
149 | - android:id="@+id/tvTipoII" | |
150 | - android:layout_width="wrap_content" | |
151 | - android:layout_height="wrap_content" | |
152 | - android:layout_margin="5dp" | |
153 | - android:text="Tipo:" | |
154 | - android:layout_marginTop="12dp" | |
155 | - android:textSize="15sp" | |
156 | - android:visibility="gone" | |
157 | - app:layout_constraintBaseline_toBaselineOf="@+id/cbVentasII" | |
158 | - app:layout_constraintEnd_toStartOf="@+id/cbVentasII" /> | |
159 | - | |
160 | - <com.google.android.material.checkbox.MaterialCheckBox | |
161 | - android:id="@+id/cbVentasII" | |
162 | - android:layout_width="wrap_content" | |
163 | - android:layout_height="wrap_content" | |
164 | - android:layout_margin="5dp" | |
165 | - android:checked="true" | |
166 | - android:text="Ventas" | |
167 | - android:layout_marginTop="12dp" | |
168 | - android:visibility="gone" | |
169 | - app:layout_constraintEnd_toStartOf="@+id/cbDepositoII" | |
170 | - app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" /> | |
171 | - | |
172 | - <com.google.android.material.checkbox.MaterialCheckBox | |
173 | - android:id="@+id/cbDepositoII" | |
174 | - android:layout_width="wrap_content" | |
175 | - android:layout_height="wrap_content" | |
176 | - android:layout_margin="5dp" | |
177 | - android:checked="true" | |
178 | - android:text="Deposito" | |
179 | - android:layout_marginTop="12dp" | |
180 | - android:visibility="gone" | |
181 | - app:layout_constraintEnd_toEndOf="parent" | |
182 | - app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" /> | |
183 | - | |
123 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
124 | +<!-- android:id="@+id/ivSort19II"--> | |
125 | +<!-- android:layout_width="50dp"--> | |
126 | +<!-- android:layout_height="50dp"--> | |
127 | +<!-- android:layout_marginStart="10dp"--> | |
128 | +<!-- android:padding="5dp"--> | |
129 | +<!-- android:src="@drawable/ic_sort19"--> | |
130 | +<!-- android:visibility="gone"--> | |
131 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
132 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
133 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
134 | + | |
135 | +<!-- <androidx.appcompat.widget.AppCompatImageButton--> | |
136 | +<!-- android:id="@+id/ivSort91II"--> | |
137 | +<!-- android:layout_width="50dp"--> | |
138 | +<!-- android:layout_height="50dp"--> | |
139 | +<!-- android:layout_marginStart="10dp"--> | |
140 | +<!-- android:padding="5dp"--> | |
141 | +<!-- android:src="@drawable/ic_sort91"--> | |
142 | +<!-- android:visibility="invisible"--> | |
143 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
144 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
145 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvInvImportados" />--> | |
146 | + <ImageView | |
147 | + android:id="@+id/ivPortada" | |
148 | + android:layout_width="404dp" | |
149 | + android:layout_height="248dp" | |
150 | + android:elevation="10dp" | |
151 | + android:visibility="visible" | |
152 | + app:layout_constraintBottom_toBottomOf="parent" | |
153 | + app:layout_constraintEnd_toEndOf="parent" | |
154 | + app:layout_constraintStart_toStartOf="parent" | |
155 | + app:layout_constraintTop_toBottomOf="@+id/tvInvImportados" | |
156 | + tools:srcCompat="@drawable/imagen_portada" /> | |
184 | 157 | |
185 | 158 | <androidx.recyclerview.widget.RecyclerView |
186 | 159 | android:id="@+id/rcInventarioII" |
... | ... | @@ -191,7 +164,7 @@ |
191 | 164 | android:visibility="gone" |
192 | 165 | app:layout_constraintEnd_toEndOf="parent" |
193 | 166 | app:layout_constraintStart_toStartOf="parent" |
194 | - app:layout_constraintTop_toBottomOf="@id/ivSort19II" | |
167 | + app:layout_constraintTop_toBottomOf="@id/tvInvImportados" | |
195 | 168 | tools:listitem="@layout/item_principal" |
196 | 169 | app:layout_constraintBottom_toTopOf="@+id/guideline1"/> |
197 | 170 |
app/src/main/res/layout/fragment_servidores.xml
... | ... | @@ -75,38 +75,66 @@ |
75 | 75 | app:layout_constraintStart_toStartOf="parent" |
76 | 76 | app:layout_constraintTop_toBottomOf="@+id/etNombreServidor" /> |
77 | 77 | |
78 | + | |
78 | 79 | <EditText |
79 | 80 | android:id="@+id/etDireccionServidor" |
80 | - android:layout_width="130dp" | |
81 | + android:layout_width="150dp" | |
81 | 82 | android:layout_height="wrap_content" |
83 | + android:layout_marginStart="44dp" | |
82 | 84 | android:clickable="true" |
83 | 85 | android:ems="10" |
84 | 86 | android:focusable="true" |
85 | 87 | android:hint="192.168.100.100" |
86 | 88 | android:inputType="phone" |
89 | + android:nextFocusDown="@id/etPuertoSubida" | |
90 | + android:nextFocusRight="@id/etPuertoSubida" | |
91 | + android:nextFocusLeft="@id/etPuertoSubida" | |
87 | 92 | android:lines="1" |
88 | 93 | android:textSize="15sp" |
89 | 94 | app:layout_constraintBaseline_toBaselineOf="@+id/tvDirServer" |
90 | 95 | app:layout_constraintStart_toEndOf="@+id/tvDirServer" /> |
91 | 96 | |
97 | + <EditText | |
98 | + android:id="@+id/etPuertoSubida" | |
99 | + android:layout_width="150dp" | |
100 | + android:layout_height="wrap_content" | |
101 | + android:layout_margin="10dp" | |
102 | + android:autofillHints="" | |
103 | + android:clickable="true" | |
104 | + android:ems="9" | |
105 | + android:focusable="true" | |
106 | + android:hint="Puerto de Subida" | |
107 | + android:inputType="number" | |
108 | + android:nextFocusDown="@id/etPuertoBajada" | |
109 | + android:nextFocusRight="@id/etPuertoBajada" | |
110 | + android:nextFocusLeft="@id/etPuertoBajada" | |
111 | + android:lines="1" | |
112 | + android:textSize="15sp" | |
113 | + app:layout_constraintStart_toStartOf="parent" | |
114 | + app:layout_constraintTop_toBottomOf="@+id/tvDirServer" /> | |
92 | 115 | |
93 | 116 | <EditText |
94 | - android:id="@+id/etPuerto" | |
95 | - android:layout_width="80dp" | |
117 | + android:id="@+id/etPuertoBajada" | |
118 | + android:layout_width="150dp" | |
96 | 119 | android:layout_height="wrap_content" |
120 | + android:layout_margin="10dp" | |
121 | + android:autofillHints="" | |
97 | 122 | android:clickable="true" |
98 | 123 | android:ems="10" |
99 | 124 | android:focusable="true" |
100 | - android:hint="Puerto" | |
125 | + android:hint="Puerto de Bajada" | |
126 | + android:nextFocusDown="@id/btnGuardarServidores" | |
127 | + android:nextFocusRight="@id/btnGuardarServidores" | |
128 | + android:nextFocusLeft="@id/btnGuardarServidores" | |
101 | 129 | android:inputType="number" |
102 | 130 | android:lines="1" |
103 | 131 | android:textSize="15sp" |
104 | - app:layout_constraintBaseline_toBaselineOf="@+id/etDireccionServidor" | |
105 | - app:layout_constraintStart_toEndOf="@+id/etDireccionServidor" | |
106 | - android:autofillHints="" /> | |
132 | + app:layout_constraintBaseline_toBaselineOf="@+id/etPuertoSubida" | |
133 | + app:layout_constraintEnd_toEndOf="parent" | |
134 | + app:layout_constraintStart_toEndOf="@+id/etPuertoSubida" /> | |
107 | 135 | |
108 | 136 | |
109 | - <androidx.recyclerview.widget.RecyclerView | |
137 | + <androidx.recyclerview.widget.RecyclerView | |
110 | 138 | android:id="@+id/rvServidores" |
111 | 139 | android:layout_width="match_parent" |
112 | 140 | android:layout_height="0dp" |
... | ... | @@ -115,7 +143,7 @@ |
115 | 143 | app:layout_constraintBottom_toTopOf="@+id/btnGuardarServidores" |
116 | 144 | app:layout_constraintEnd_toEndOf="parent" |
117 | 145 | app:layout_constraintStart_toStartOf="parent" |
118 | - app:layout_constraintTop_toBottomOf="@+id/etPuerto" | |
146 | + app:layout_constraintTop_toBottomOf="@+id/etPuertoSubida" | |
119 | 147 | app:layout_goneMarginEnd="10dp" |
120 | 148 | tools:listitem="@layout/item_servidores" /> |
121 | 149 |
app/src/main/res/layout/item_inv_importados.xml
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | -<androidx.constraintlayout.widget.ConstraintLayout | |
3 | - xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" | |
4 | - android:layout_height="match_parent"> | |
2 | +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="wrap_content" | |
7 | + android:layout_margin="10dp" | |
8 | + app:cardCornerRadius="15dp" | |
9 | + app:cardElevation="10dp" | |
10 | + app:cardPreventCornerOverlap="false"> | |
5 | 11 | |
6 | -</androidx.constraintlayout.widget.ConstraintLayout> | |
7 | 12 | \ No newline at end of file |
13 | + <androidx.constraintlayout.widget.ConstraintLayout | |
14 | + android:layout_width="match_parent" | |
15 | + android:layout_height="wrap_content" | |
16 | + android:layout_gravity="center" | |
17 | + android:orientation="horizontal"> | |
18 | + | |
19 | + <com.google.android.material.checkbox.MaterialCheckBox | |
20 | + android:id="@+id/tvPrincipalinventario" | |
21 | + android:layout_width="match_parent" | |
22 | + android:layout_height="wrap_content" | |
23 | + android:layout_margin="15dp" | |
24 | + android:background="@drawable/boton_redondo2" | |
25 | + android:gravity="center_vertical" | |
26 | + android:padding="5dp" | |
27 | + android:textColor="@android:color/black" | |
28 | + android:textSize="@dimen/TitulosActMa" | |
29 | + android:textStyle="bold" | |
30 | + app:layout_constraintBottom_toBottomOf="parent" | |
31 | + app:layout_constraintStart_toStartOf="parent" | |
32 | + app:layout_constraintTop_toTopOf="parent" | |
33 | + tools:text="Inventario Sectorizado # 1487" /> | |
34 | + | |
35 | + | |
36 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
37 | +</androidx.cardview.widget.CardView> |
app/src/main/res/layout/item_principal.xml
... | ... | @@ -62,7 +62,7 @@ |
62 | 62 | android:layout_width="wrap_content" |
63 | 63 | android:layout_height="wrap_content" |
64 | 64 | android:layout_marginTop="4dp" |
65 | - android:text="Art. Contados" | |
65 | + android:text="Cantidad Art." | |
66 | 66 | android:textSize="15sp" |
67 | 67 | android:textStyle="bold" |
68 | 68 | app:layout_constraintEnd_toEndOf="parent" |
app/src/main/res/layout/item_sec.xml
... | ... | @@ -0,0 +1,171 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + xmlns:tools="http://schemas.android.com/tools" | |
5 | + android:layout_width="match_parent" | |
6 | + android:layout_height="wrap_content" | |
7 | + android:layout_margin="5dp" | |
8 | + app:cardCornerRadius="15dp" | |
9 | + app:cardElevation="10dp" | |
10 | + app:contentPadding="5dp" | |
11 | + app:cardPreventCornerOverlap="false"> | |
12 | + | |
13 | + <androidx.constraintlayout.widget.ConstraintLayout | |
14 | + android:layout_width="match_parent" | |
15 | + android:layout_height="wrap_content"> | |
16 | + | |
17 | + <TextView | |
18 | + android:id="@+id/tvDescripcion" | |
19 | + android:layout_width="0dp" | |
20 | + android:layout_height="wrap_content" | |
21 | + android:layout_marginStart="3dp" | |
22 | + android:maxLines="2" | |
23 | + android:text="abcdefghijklmnñopqrstuvwxyz0123456789abcdefghijklmnñopqrstuvwxyz" | |
24 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
25 | + android:textSize="16sp" | |
26 | + android:textStyle="bold" | |
27 | + app:layout_constraintStart_toStartOf="parent" | |
28 | + app:layout_constraintTop_toTopOf="parent" /> | |
29 | + | |
30 | +<!-- <TextView--> | |
31 | +<!-- android:id="@+id/textView2"--> | |
32 | +<!-- android:layout_width="wrap_content"--> | |
33 | +<!-- android:layout_height="wrap_content"--> | |
34 | +<!-- android:layout_marginStart="5dp"--> | |
35 | +<!-- android:text="Código:"--> | |
36 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large"--> | |
37 | +<!-- android:textSize="14sp"--> | |
38 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvSector"--> | |
39 | +<!-- app:layout_constraintHorizontal_bias="0.01"--> | |
40 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
41 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
42 | +<!-- app:layout_constraintTop_toTopOf="parent" />--> | |
43 | + | |
44 | + | |
45 | +<!-- <TextView--> | |
46 | +<!-- android:id="@+id/tvSector"--> | |
47 | +<!-- android:layout_width="wrap_content"--> | |
48 | +<!-- android:layout_height="match_parent"--> | |
49 | +<!-- android:layout_marginStart="8dp"--> | |
50 | +<!-- android:text="9999"--> | |
51 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
52 | +<!-- android:textColorHint="@android:color/black"--> | |
53 | +<!-- android:textSize="18sp"--> | |
54 | +<!-- android:textStyle="bold"--> | |
55 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
56 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView2"--> | |
57 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvCodigo"--> | |
58 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView2" />--> | |
59 | + | |
60 | + | |
61 | +<!-- <TextView--> | |
62 | +<!-- android:id="@+id/tvCodigo"--> | |
63 | +<!-- android:layout_width="wrap_content"--> | |
64 | +<!-- android:layout_height="match_parent"--> | |
65 | +<!-- android:text="99999999"--> | |
66 | +<!-- android:layout_marginStart="8dp"--> | |
67 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
68 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
69 | +<!-- android:textColorHint="@android:color/black"--> | |
70 | +<!-- android:textSize="18sp"--> | |
71 | +<!-- android:textStyle="bold"--> | |
72 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/tvSector"--> | |
73 | +<!-- app:layout_constraintEnd_toStartOf="@+id/textView5"--> | |
74 | +<!-- app:layout_constraintStart_toEndOf="@+id/tvSector" />--> | |
75 | + | |
76 | + <TextView | |
77 | + android:id="@+id/textView5" | |
78 | + android:layout_width="wrap_content" | |
79 | + android:layout_height="wrap_content" | |
80 | + android:text="Cantidad:" | |
81 | + android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" | |
82 | + android:textSize="14sp" | |
83 | + android:layout_marginStart="5dp" | |
84 | + android:layout_marginTop="5dp" | |
85 | + app:layout_constraintStart_toStartOf="parent" | |
86 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
87 | + | |
88 | + <TextView | |
89 | + android:id="@+id/tvCantidad" | |
90 | + android:layout_width="wrap_content" | |
91 | + android:layout_height="match_parent" | |
92 | + android:layout_marginTop="5dp" | |
93 | + android:text="12345.12" | |
94 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
95 | + android:textSize="18sp" | |
96 | + android:textStyle="bold" | |
97 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView5" | |
98 | + | |
99 | + app:layout_constraintStart_toEndOf="@id/textView5" /> | |
100 | + | |
101 | + <ImageView | |
102 | + android:id="@+id/ivPen" | |
103 | + android:layout_width="30dp" | |
104 | + android:layout_height="30dp" | |
105 | + android:layout_marginStart="3dp" | |
106 | + android:src="@drawable/pen" | |
107 | + android:visibility="visible" | |
108 | + app:layout_constraintStart_toEndOf="@+id/tvCantidad" | |
109 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
110 | + | |
111 | + <ImageView | |
112 | + android:id="@+id/ivDots" | |
113 | + android:layout_width="30dp" | |
114 | + android:layout_height="30dp" | |
115 | + android:layout_marginEnd="3dp" | |
116 | + android:src="@drawable/more" | |
117 | + android:visibility="visible" | |
118 | + app:layout_constraintEnd_toEndOf="parent" | |
119 | + app:layout_constraintTop_toBottomOf="@+id/tvDescripcion" /> | |
120 | + | |
121 | +<!-- <TextView--> | |
122 | +<!-- android:id="@+id/textView85"--> | |
123 | +<!-- android:layout_width="wrap_content"--> | |
124 | +<!-- android:layout_height="wrap_content"--> | |
125 | +<!-- android:layout_marginStart="5dp"--> | |
126 | +<!-- android:layout_marginTop="8dp"--> | |
127 | +<!-- android:text="Desc:"--> | |
128 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large"--> | |
129 | +<!-- android:textSize="14sp"--> | |
130 | +<!-- app:layout_constraintEnd_toStartOf="@+id/tvDescripcion"--> | |
131 | +<!-- app:layout_constraintHorizontal_bias="0.0"--> | |
132 | +<!-- app:layout_constraintHorizontal_chainStyle="packed"--> | |
133 | +<!-- app:layout_constraintStart_toStartOf="parent"--> | |
134 | +<!-- app:layout_constraintTop_toBottomOf="@id/tvCodigo" />--> | |
135 | + | |
136 | + | |
137 | +<!-- <TextView--> | |
138 | +<!-- android:id="@+id/tvCodigoBarras"--> | |
139 | +<!-- android:layout_width="match_parent"--> | |
140 | +<!-- android:layout_height="wrap_content"--> | |
141 | +<!-- android:layout_marginStart="3dp"--> | |
142 | +<!-- android:layout_marginTop="8dp"--> | |
143 | +<!-- android:maxLines="2"--> | |
144 | +<!-- android:text=""--> | |
145 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
146 | +<!-- android:textSize="14sp"--> | |
147 | +<!-- android:visibility="gone"--> | |
148 | +<!-- android:textStyle="bold"--> | |
149 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView85"--> | |
150 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
151 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView85"--> | |
152 | +<!-- app:layout_constraintTop_toBottomOf="@+id/tvCodigo" />--> | |
153 | +<!-- <TextView--> | |
154 | +<!-- android:id="@+id/tvCodigoOrigen"--> | |
155 | +<!-- android:layout_width="match_parent"--> | |
156 | +<!-- android:layout_height="wrap_content"--> | |
157 | +<!-- android:layout_marginStart="3dp"--> | |
158 | +<!-- android:layout_marginTop="8dp"--> | |
159 | +<!-- android:maxLines="2"--> | |
160 | +<!-- android:text=""--> | |
161 | +<!-- android:textAppearance="@style/TextAppearance.AppCompat.Large"--> | |
162 | +<!-- android:textSize="14sp"--> | |
163 | +<!-- android:visibility="gone"--> | |
164 | +<!-- android:textStyle="bold"--> | |
165 | +<!-- app:layout_constraintBaseline_toBaselineOf="@+id/textView85"--> | |
166 | +<!-- app:layout_constraintEnd_toEndOf="parent"--> | |
167 | +<!-- app:layout_constraintStart_toEndOf="@+id/textView85"--> | |
168 | +<!-- app:layout_constraintTop_toBottomOf="@+id/tvCodigo" />--> | |
169 | + </androidx.constraintlayout.widget.ConstraintLayout> | |
170 | + | |
171 | +</androidx.cardview.widget.CardView> | |
0 | 172 | \ No newline at end of file |
app/src/main/res/layout/item_servidores.xml
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | 2 | <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" |
3 | 3 | xmlns:app="http://schemas.android.com/apk/res-auto" |
4 | - xmlns:tools="http://schemas.android.com/tools" | |
5 | 4 | android:layout_width="match_parent" |
6 | 5 | android:layout_height="wrap_content" |
7 | 6 | android:layout_margin="5dp" |
8 | 7 | app:cardCornerRadius="15dp" |
9 | 8 | app:cardElevation="10dp" |
10 | - app:contentPadding="5dp" | |
11 | - app:cardPreventCornerOverlap="false"> | |
9 | + app:cardPreventCornerOverlap="false" | |
10 | + app:contentPadding="5dp"> | |
12 | 11 | |
13 | 12 | <androidx.constraintlayout.widget.ConstraintLayout |
14 | 13 | android:layout_width="match_parent" |
... | ... | @@ -47,7 +46,7 @@ |
47 | 46 | android:layout_width="wrap_content" |
48 | 47 | android:layout_height="wrap_content" |
49 | 48 | android:layout_marginStart="5dp" |
50 | - android:layout_marginTop="8dp" | |
49 | + android:layout_marginTop="3dp" | |
51 | 50 | android:text="Dirección:" |
52 | 51 | android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" |
53 | 52 | android:textSize="14sp" |
... | ... | @@ -71,28 +70,51 @@ |
71 | 70 | android:id="@+id/textView86" |
72 | 71 | android:layout_width="wrap_content" |
73 | 72 | android:layout_height="wrap_content" |
74 | - android:layout_marginTop="8dp" | |
75 | - android:layout_marginStart="10dp" | |
76 | - android:text="Puerto:" | |
73 | + android:layout_marginStart="5dp" | |
74 | + android:layout_marginTop="3dp" | |
75 | + android:text="Puerto Subida:" | |
77 | 76 | android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" |
78 | 77 | android:textSize="14sp" |
79 | 78 | app:layout_constraintHorizontal_chainStyle="packed" |
80 | - app:layout_constraintStart_toEndOf="@+id/tvDireccionServidor" | |
81 | - app:layout_constraintTop_toBottomOf="@id/tvDescServidor" /> | |
79 | + app:layout_constraintStart_toStartOf="parent" | |
80 | + app:layout_constraintTop_toBottomOf="@+id/textView85" /> | |
81 | + | |
82 | + <TextView | |
83 | + android:id="@+id/tvPuertoSubida" | |
84 | + android:layout_width="wrap_content" | |
85 | + android:layout_height="wrap_content" | |
86 | + android:text="9999" | |
87 | + android:textAppearance="@style/TextAppearance.AppCompat.Large" | |
88 | + android:textColorHint="@android:color/black" | |
89 | + android:textSize="14sp" | |
90 | + android:textStyle="bold" | |
91 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView86" | |
92 | + app:layout_constraintStart_toEndOf="@+id/textView86" /> | |
82 | 93 | |
83 | 94 | <TextView |
84 | - android:id="@+id/tvPuertoServidor" | |
95 | + android:id="@+id/textView87" | |
85 | 96 | android:layout_width="wrap_content" |
86 | 97 | android:layout_height="wrap_content" |
87 | - android:layout_marginTop="8dp" | |
98 | + android:layout_marginTop="3dp" | |
88 | 99 | android:layout_marginStart="5dp" |
89 | - android:text="" | |
100 | + android:text="Puerto Bajada:" | |
101 | + android:textAppearance="@style/TextAppearance.AppCompat.Widget.PopupMenu.Large" | |
102 | + android:textSize="14sp" | |
103 | + app:layout_constraintHorizontal_chainStyle="packed" | |
104 | + app:layout_constraintStart_toEndOf="@+id/tvPuertoSubida" | |
105 | + app:layout_constraintTop_toBottomOf="@+id/textView85" /> | |
106 | + | |
107 | + <TextView | |
108 | + android:id="@+id/tvPuertoBajada" | |
109 | + android:layout_width="wrap_content" | |
110 | + android:layout_height="wrap_content" | |
111 | + android:text="9999" | |
90 | 112 | android:textAppearance="@style/TextAppearance.AppCompat.Large" |
91 | 113 | android:textColorHint="@android:color/black" |
92 | 114 | android:textSize="14sp" |
93 | 115 | android:textStyle="bold" |
94 | - app:layout_constraintStart_toEndOf="@+id/textView86" | |
95 | - app:layout_constraintTop_toBottomOf="@+id/tvDescServidor" /> | |
116 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView87" | |
117 | + app:layout_constraintStart_toEndOf="@+id/textView87" /> | |
96 | 118 | </androidx.constraintlayout.widget.ConstraintLayout> |
97 | 119 | |
98 | 120 | </androidx.cardview.widget.CardView> |
99 | 121 | \ No newline at end of file |
app/src/main/res/layout/solicitar_fecha.xml
... | ... | @@ -0,0 +1,148 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
4 | + android:layout_width="match_parent" | |
5 | + android:layout_height="wrap_content" | |
6 | + android:focusable="false" | |
7 | + android:focusableInTouchMode="false" | |
8 | + android:orientation="vertical" | |
9 | + android:padding="10dp"> | |
10 | + | |
11 | + <LinearLayout | |
12 | + android:id="@+id/barraSuperior" | |
13 | + android:layout_width="0dp" | |
14 | + android:layout_height="wrap_content" | |
15 | + android:background="@color/colorPrimaryDark" | |
16 | + android:focusable="false" | |
17 | + android:focusableInTouchMode="false" | |
18 | + android:orientation="horizontal" | |
19 | + app:layout_constraintEnd_toEndOf="parent" | |
20 | + app:layout_constraintStart_toStartOf="parent" | |
21 | + app:layout_constraintTop_toTopOf="parent"> | |
22 | + | |
23 | + <androidx.appcompat.widget.AppCompatImageView | |
24 | + android:layout_width="50dp" | |
25 | + android:layout_height="60dp" | |
26 | + android:layout_marginStart="25dp" | |
27 | + android:focusable="false" | |
28 | + android:focusableInTouchMode="false" | |
29 | + android:src="@drawable/error" /> | |
30 | + | |
31 | + <androidx.appcompat.widget.AppCompatTextView | |
32 | + android:id="@+id/tvFechayHora" | |
33 | + android:layout_width="0dp" | |
34 | + android:layout_height="wrap_content" | |
35 | + android:layout_marginTop="15dp" | |
36 | + android:layout_weight="1" | |
37 | + android:background="@drawable/boton_borde_redondeado" | |
38 | + android:focusable="false" | |
39 | + android:focusableInTouchMode="false" | |
40 | + android:text="@string/tvFechayHora" | |
41 | + android:textAlignment="center" | |
42 | + android:textColor="@android:color/white" | |
43 | + android:textSize="25sp" /> | |
44 | + </LinearLayout> | |
45 | + | |
46 | + <TextView | |
47 | + android:id="@+id/textView6" | |
48 | + android:layout_width="wrap_content" | |
49 | + android:layout_height="wrap_content" | |
50 | + android:layout_margin="5dp" | |
51 | + android:focusable="false" | |
52 | + android:focusableInTouchMode="false" | |
53 | + android:gravity="center" | |
54 | + android:text="La fecha y hora del Servidor no coinciden con la fecha y hora del dispositivo." | |
55 | + android:textColor="@android:color/holo_red_dark" | |
56 | + android:textSize="20sp" | |
57 | + android:textStyle="bold" | |
58 | + app:layout_constraintEnd_toEndOf="parent" | |
59 | + app:layout_constraintHorizontal_bias="0.0" | |
60 | + app:layout_constraintHorizontal_chainStyle="packed" | |
61 | + app:layout_constraintStart_toStartOf="parent" | |
62 | + app:layout_constraintTop_toBottomOf="@id/barraSuperior" /> | |
63 | + | |
64 | + <TextView | |
65 | + android:id="@+id/textView7" | |
66 | + android:layout_width="wrap_content" | |
67 | + android:layout_height="wrap_content" | |
68 | + android:layout_margin="5dp" | |
69 | + android:focusable="false" | |
70 | + android:focusableInTouchMode="false" | |
71 | + android:text="Servidor:" | |
72 | + android:textSize="20sp" | |
73 | + app:layout_constraintHorizontal_chainStyle="packed" | |
74 | + app:layout_constraintStart_toStartOf="parent" | |
75 | + app:layout_constraintTop_toBottomOf="@+id/textView6" /> | |
76 | + | |
77 | + <TextView | |
78 | + android:id="@+id/tvHoraServidor" | |
79 | + android:layout_width="wrap_content" | |
80 | + android:layout_height="wrap_content" | |
81 | + android:layout_margin="5dp" | |
82 | + android:focusable="false" | |
83 | + android:focusableInTouchMode="false" | |
84 | + android:text="99/99/9999 99:99:99" | |
85 | + android:textSize="20sp" | |
86 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView7" | |
87 | + app:layout_constraintStart_toEndOf="@+id/textView7" /> | |
88 | + | |
89 | + | |
90 | + <TextView | |
91 | + android:id="@+id/textView8" | |
92 | + android:layout_width="wrap_content" | |
93 | + android:layout_height="wrap_content" | |
94 | + android:layout_margin="5dp" | |
95 | + android:focusable="false" | |
96 | + android:focusableInTouchMode="false" | |
97 | + android:text="Dispositivo:" | |
98 | + android:textSize="20sp" | |
99 | + app:layout_constraintStart_toStartOf="parent" | |
100 | + app:layout_constraintTop_toBottomOf="@+id/textView7" /> | |
101 | + | |
102 | + <TextView | |
103 | + android:id="@+id/tvHoraDispositivo" | |
104 | + android:layout_width="wrap_content" | |
105 | + android:layout_height="wrap_content" | |
106 | + android:layout_margin="5dp" | |
107 | + android:focusable="false" | |
108 | + android:focusableInTouchMode="false" | |
109 | + android:text="99/99/9999 99:99:99" | |
110 | + android:textSize="20sp" | |
111 | + app:layout_constraintBaseline_toBaselineOf="@+id/textView8" | |
112 | + app:layout_constraintStart_toEndOf="@+id/textView8" /> | |
113 | + | |
114 | + <Button | |
115 | + android:id="@+id/btnCambiarHora" | |
116 | + style="@style/Base.Widget.AppCompat.Button.Colored" | |
117 | + android:layout_width="0dp" | |
118 | + android:layout_height="wrap_content" | |
119 | + android:layout_margin="15dp" | |
120 | + android:background="@drawable/boton_borde_redondeado" | |
121 | + android:focusable="false" | |
122 | + android:focusableInTouchMode="false" | |
123 | + android:padding="20dp" | |
124 | + android:text="@string/btnCambiarHora" | |
125 | + android:textColor="@android:color/white" | |
126 | + app:layout_constraintEnd_toEndOf="parent" | |
127 | + app:layout_constraintStart_toStartOf="parent" | |
128 | + app:layout_constraintTop_toBottomOf="@+id/tvHoraDispositivo" /> | |
129 | + | |
130 | + | |
131 | + <Button | |
132 | + android:id="@+id/btnSalir" | |
133 | + style="@style/Base.Widget.AppCompat.Button.Colored" | |
134 | + android:layout_width="140dp" | |
135 | + android:layout_height="wrap_content" | |
136 | + android:layout_margin="5dp" | |
137 | + android:background="@drawable/boton_borde_redondeado" | |
138 | + android:focusable="false" | |
139 | + android:focusableInTouchMode="false" | |
140 | + android:padding="20dp" | |
141 | + android:text="@string/btnSalir" | |
142 | + android:textColor="@android:color/white" | |
143 | + app:layout_constraintEnd_toEndOf="parent" | |
144 | + app:layout_constraintStart_toStartOf="parent" | |
145 | + app:layout_constraintTop_toBottomOf="@+id/btnCambiarHora" /> | |
146 | + | |
147 | + | |
148 | +</androidx.constraintlayout.widget.ConstraintLayout> | |
0 | 149 | \ No newline at end of file |
app/src/main/res/navigation/mobile_navigation.xml
... | ... | @@ -15,61 +15,75 @@ |
15 | 15 | android:id="@+id/mainFragment2" |
16 | 16 | android:name="com.focasoftware.deboinventariov20.UI.main.MainFragment" |
17 | 17 | android:label="Principal" |
18 | - tools:layout="@layout/fragment_main" > | |
18 | + tools:layout="@layout/fragment_main"> | |
19 | 19 | <action |
20 | 20 | android:id="@+id/action_mainFragment2_to_configuracionFragment" |
21 | 21 | app:destination="@id/configuracionFragment" |
22 | - app:popEnterAnim="@anim/slide_in_left" | |
23 | - app:popExitAnim="@anim/slide_out_right" | |
24 | 22 | app:enterAnim="@anim/slide_in_right" |
25 | - app:exitAnim="@anim/slide_out_left" /> | |
23 | + app:exitAnim="@anim/slide_out_left" | |
24 | + app:popEnterAnim="@anim/slide_in_left" | |
25 | + app:popExitAnim="@anim/slide_out_right" /> | |
26 | 26 | <action |
27 | 27 | android:id="@+id/action_mainFragment2_to_actuaMaestrosFragment" |
28 | 28 | app:destination="@id/actuaMaestrosFragment" |
29 | + app:enterAnim="@anim/slide_in_right" | |
30 | + app:exitAnim="@anim/slide_out_left" | |
29 | 31 | app:popEnterAnim="@anim/slide_in_left" |
30 | 32 | app:popExitAnim="@anim/slide_out_right" |
31 | - app:enterAnim="@anim/slide_in_right" | |
32 | - app:exitAnim="@anim/slide_out_left" /> | |
33 | + app:popUpTo="@id/mainFragment2" | |
34 | + app:popUpToInclusive="false" /> | |
33 | 35 | <action |
34 | 36 | android:id="@+id/action_mainFragment2_to_inventarioFragment" |
35 | 37 | app:destination="@id/inventarioFragment" |
38 | + app:enterAnim="@anim/slide_in_right" | |
39 | + app:exitAnim="@anim/slide_out_left" | |
36 | 40 | app:popEnterAnim="@anim/slide_in_left" |
37 | 41 | app:popExitAnim="@anim/slide_out_right" |
42 | + app:popUpTo="@id/mainFragment2" | |
43 | + app:popUpToInclusive="false" /> | |
44 | + <action | |
45 | + android:id="@+id/action_mainFragment2_to_invSecFragment" | |
46 | + app:destination="@id/invSecFragment" | |
38 | 47 | app:enterAnim="@anim/slide_in_right" |
39 | - app:exitAnim="@anim/slide_out_left" /> | |
48 | + app:exitAnim="@anim/slide_out_left" | |
49 | + app:popEnterAnim="@anim/slide_in_left" | |
50 | + app:popExitAnim="@anim/slide_out_right" | |
51 | + app:popUpTo="@id/mainFragment2" | |
52 | + app:popUpToInclusive="false" /> | |
40 | 53 | </fragment> |
41 | 54 | |
42 | 55 | <fragment |
43 | 56 | android:id="@+id/actuaMaestrosFragment" |
44 | 57 | android:name="com.focasoftware.deboinventariov20.UI.actualizacionMaestros.ActuaMaestrosFragment" |
45 | 58 | android:label="Importaciones Varias" |
46 | - tools:layout="@layout/fragment_actua_maestros" > | |
59 | + tools:layout="@layout/fragment_actua_maestros"> | |
47 | 60 | <action |
48 | - android:id="@+id/action_actuaMaestrosFragment_to_invImportadosFragment" | |
49 | - app:destination="@id/invImportadosFragment" /> | |
61 | + android:id="@+id/action_actuaMaestrosFragment_to_invSecImpFragment" | |
62 | + app:destination="@id/invSecImpFragment" | |
63 | + app:popUpTo="@id/actuaMaestrosFragment" | |
64 | + app:popUpToInclusive="true" /> | |
50 | 65 | </fragment> |
51 | 66 | |
52 | 67 | |
53 | 68 | <fragment |
54 | 69 | android:id="@+id/inventarioFragment" |
55 | 70 | android:name="com.focasoftware.deboinventariov20.UI.inventario.InventarioFragment" |
56 | - android:label="Inventario Dinamico" | |
57 | - tools:layout="@layout/fragment_inventario" > | |
71 | + android:label="Inventario Dinámico" | |
72 | + tools:layout="@layout/fragment_inventario"> | |
58 | 73 | <action |
59 | 74 | android:id="@+id/action_inventarioFragment_to_descripcionFragment" |
60 | 75 | app:destination="@id/descripcionFragment" |
61 | - app:popEnterAnim="@anim/slide_in_left" | |
62 | - app:popExitAnim="@anim/slide_out_right" | |
63 | 76 | app:enterAnim="@anim/slide_in_right" |
64 | 77 | app:exitAnim="@anim/slide_out_left" |
65 | - /> | |
78 | + app:popEnterAnim="@anim/slide_in_left" | |
79 | + app:popExitAnim="@anim/slide_out_right" /> | |
66 | 80 | <action |
67 | 81 | android:id="@+id/action_inventarioFragment_to_mainFragment2" |
68 | 82 | app:destination="@id/mainFragment2" |
69 | - app:popEnterAnim="@anim/slide_in_left" | |
70 | - app:popExitAnim="@anim/slide_out_right" | |
71 | 83 | app:enterAnim="@anim/slide_in_right" |
72 | - app:exitAnim="@anim/slide_out_left"/> | |
84 | + app:exitAnim="@anim/slide_out_left" | |
85 | + app:popEnterAnim="@anim/slide_in_left" | |
86 | + app:popExitAnim="@anim/slide_out_right" /> | |
73 | 87 | <action |
74 | 88 | android:id="@+id/action_inventarioFragment_to_detalleArtFragment" |
75 | 89 | app:destination="@id/detalleArtFragment" /> |
... | ... | @@ -101,20 +115,20 @@ |
101 | 115 | app:destination="@id/inventarioFragment" /> |
102 | 116 | </fragment> |
103 | 117 | <fragment |
104 | - android:id="@+id/configuracionFragment" | |
105 | - android:name="com.focasoftware.deboinventariov20.UI.configuracion.ConfiguracionFragment" | |
106 | - android:label="Configuraciones" | |
107 | - tools:layout="@layout/fragment_configuracion" > | |
108 | - <action | |
109 | - android:id="@+id/action_configuracionFragment_to_servidoresFragment" | |
110 | - app:destination="@id/servidoresFragment" | |
111 | - app:popEnterAnim="@anim/slide_in_left" | |
112 | - app:popExitAnim="@anim/slide_out_right" | |
113 | - app:enterAnim="@anim/slide_in_right" | |
114 | - app:exitAnim="@anim/slide_out_left" /> | |
115 | - <action | |
116 | - android:id="@+id/action_configuracionFragment_to_mainFragment2" | |
117 | - app:destination="@id/mainFragment2" | |
118 | + android:id="@+id/configuracionFragment" | |
119 | + android:name="com.focasoftware.deboinventariov20.UI.configuracion.ConfiguracionFragment" | |
120 | + android:label="Configuraciones" | |
121 | + tools:layout="@layout/fragment_configuracion"> | |
122 | + <action | |
123 | + android:id="@+id/action_configuracionFragment_to_servidoresFragment" | |
124 | + app:destination="@id/servidoresFragment" | |
125 | + app:enterAnim="@anim/slide_in_right" | |
126 | + app:exitAnim="@anim/slide_out_left" | |
127 | + app:popEnterAnim="@anim/slide_in_left" | |
128 | + app:popExitAnim="@anim/slide_out_right" /> | |
129 | + <action | |
130 | + android:id="@+id/action_configuracionFragment_to_mainFragment2" | |
131 | + app:destination="@id/mainFragment2" | |
118 | 132 | app:popUpTo="@id/configuracionFragment" |
119 | 133 | app:popUpToInclusive="false" /> |
120 | 134 | </fragment> |
... | ... | @@ -139,12 +153,38 @@ |
139 | 153 | app:destination="@id/inventarioFragment" /> |
140 | 154 | </fragment> |
141 | 155 | <fragment |
142 | - android:id="@+id/invImportadosFragment" | |
143 | - android:name="com.focasoftware.deboinventariov20.UI.actualizacionMaestros.InvImportadosFragment" | |
144 | - android:label="Inventarios Importados" | |
145 | - tools:layout="@layout/fragment_inv_importados"> | |
156 | + android:id="@+id/invSecFragment" | |
157 | + android:name="com.focasoftware.deboinventariov20.UI.inventario.InvSecFragment" | |
158 | + android:label="Inventarios por Sector"> | |
146 | 159 | <action |
147 | - android:id="@+id/action_invImportadosFragment_to_mainFragment2" | |
148 | - app:destination="@id/mainFragment2" /> | |
160 | + android:id="@+id/action_invSecFragment_to_mainFragment2" | |
161 | + app:destination="@id/mainFragment2" | |
162 | + app:popUpTo="@id/invSecFragment" | |
163 | + app:popUpToInclusive="false" /> | |
164 | + <action | |
165 | + android:id="@+id/action_invSecFragment_to_detalleArtSecFragment" | |
166 | + app:destination="@id/detalleArtSecFragment" | |
167 | + app:popUpTo="@id/invSecFragment" | |
168 | + app:popUpToInclusive="false" /> | |
169 | + </fragment> | |
170 | + <fragment | |
171 | + android:id="@+id/detalleArtSecFragment" | |
172 | + android:name="com.focasoftware.deboinventariov20.UI.detalleProducto.DetalleArtSecFragment" | |
173 | + android:label="Detalle de Artículos"> | |
174 | + <action | |
175 | + android:id="@+id/action_detalleArtSecFragment_to_invSecFragment" | |
176 | + app:destination="@id/invSecFragment" | |
177 | + app:popUpTo="@id/detalleArtSecFragment" | |
178 | + app:popUpToInclusive="false" /> | |
179 | + </fragment> | |
180 | + <fragment | |
181 | + android:id="@+id/invSecImpFragment" | |
182 | + android:name="com.focasoftware.deboinventariov20.UI.actualizacionMaestros.InvSecImpFragment" | |
183 | + android:label="Inventarios por Sector"> | |
184 | + <action | |
185 | + android:id="@+id/action_invSecImpFragment_to_mainFragment2" | |
186 | + app:destination="@id/mainFragment2" | |
187 | + app:popUpTo="@id/invSecImpFragment" | |
188 | + app:popUpToInclusive="false" /> | |
149 | 189 | </fragment> |
150 | 190 | </navigation> |
app/src/main/res/values/dimens.xml
app/src/main/res/values/strings.xml
... | ... | @@ -22,11 +22,12 @@ |
22 | 22 | <string name="inventario">Inventario</string> |
23 | 23 | |
24 | 24 | <!-- inventarios dinamicos--> |
25 | - <string name="invDinamicoVenta">Inventarios Dinámicos</string> | |
25 | + <string name="invDinamicoVenta">Inventarios Dinámicos (0) +</string> | |
26 | 26 | <string name="invDinamicoCompra">Inventarios Importados(0) +</string> |
27 | 27 | |
28 | 28 | <!-- ventana emergente--> |
29 | 29 | <string name="adv">Ingrese la cantidad contada</string> |
30 | + <string name="tvFechayHora">Error de fecha y hora</string> | |
30 | 31 | <string name="invVentas">Inventarios Dinámicos de Ventas</string> |
31 | 32 | <string name="btnCancela">Cancelar</string> |
32 | 33 | |
... | ... | @@ -49,7 +50,7 @@ |
49 | 50 | <string name="btnValidarServidor">Validar</string> |
50 | 51 | <string name="btnAgregarServidor">Agregar un nuevo servidor</string> |
51 | 52 | <string name="tvUbicacionCarpetas">Ubicación de las carpetas de uso interno</string> |
52 | - <string name="tvTituloArea">Area de Invetnario</string> | |
53 | + <string name="tvTituloArea">Area de Inventario</string> | |
53 | 54 | <string name="rbVentas">Inventarios de Ventas</string> |
54 | 55 | <string name="rbDeposito">Inventarios de Depositos</string> |
55 | 56 | <string name="tvLosProductos">Los productos no contabilizados en Inventarios</string> |
... | ... | @@ -59,7 +60,7 @@ |
59 | 60 | <string name="rbProNoInclu">Ajusta productos no incluidos en el conteo con stock en cero.</string> |
60 | 61 | |
61 | 62 | <string name="cbMostrarStock">Mostror stock en el sistema al momento de la descarga del maestro.</string> |
62 | - <string name="cbHabiLectura">Habilitar Lectura de codigo de barras en balanza.</string> | |
63 | + <string name="cbHabiLectura">Habilitar Lectura de código de barras en balanza.</string> | |
63 | 64 | |
64 | 65 | <string name="tvColumMostrar">Columnas a mostrar en inventario</string> |
65 | 66 | |
... | ... | @@ -69,8 +70,8 @@ |
69 | 70 | |
70 | 71 | <string name="leyendaSpinner">Seleccione Servidor Predeterminado</string> |
71 | 72 | |
72 | - <string name="cbMostrarExistencia">Existencia</string> | |
73 | - <string name="cbMostrarPrecio">Precio</string> | |
73 | + <string name="btnAskTimeServer">Fecha y hora Servidor</string> | |
74 | + <string name="cbAskTimeServerToStart">Verificar fecha y hora al iniciar.</string> | |
74 | 75 | |
75 | 76 | <string name="btnGuardar">Guardar Cambios</string> |
76 | 77 | <string name="todo"> </string> |
... | ... | @@ -95,6 +96,9 @@ |
95 | 96 | <!-- Dialog--> |
96 | 97 | <string name="sTitulo">Producto Buscado</string> |
97 | 98 | <string name="btnOk">Aceptar</string> |
99 | + <string name="btnSalir">Salir</string> | |
100 | + <string name="btnCambiarHora">Configura aquí la fecha y hora </string> | |
101 | + | |
98 | 102 | <string name="btnConfirmar">Confirmar</string> |
99 | 103 | <string name="btnCancelar">Cancelar</string> |
100 | 104 | <string name="sMensaje">¡No se encontro el producto ingresado!</string> |
... | ... | @@ -207,4 +211,6 @@ |
207 | 211 | "For example, position the FAB to one side of stream of a cards so the FAB won’t interfere " |
208 | 212 | "when a user tries to pick up one of cards.\n\n" |
209 | 213 | </string> |
214 | + <!-- TODO: Remove or change this placeholder text --> | |
215 | + <string name="hello_blank_fragment">Hello blank fragment</string> | |
210 | 216 | </resources> |
211 | 217 | \ No newline at end of file |
build.gradle
... | ... | @@ -6,7 +6,7 @@ buildscript { |
6 | 6 | jcenter() |
7 | 7 | } |
8 | 8 | dependencies { |
9 | - classpath "com.android.tools.build:gradle:4.0.1" | |
9 | + classpath 'com.android.tools.build:gradle:4.1.0' | |
10 | 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" |
11 | 11 | |
12 | 12 | // NOTE: Do not place your application dependencies here; they belong |
gradle/wrapper/gradle-wrapper.properties
1 | -#Thu Aug 13 18:28:21 ART 2020 | |
2 | -distributionBase=GRADLE_USER_HOME | |
3 | -distributionPath=wrapper/dists | |
4 | -zipStoreBase=GRADLE_USER_HOME | |
1 | +#Fri Oct 16 18:23:55 ART 2020 | |
5 | 2 | zipStorePath=wrapper/dists |
6 | -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip | |
7 | - | |
8 | -# Enable Kapt Incremental annotation processing requeste | |
9 | -kapt.incremental.apt=true | |
10 | - | |
11 | -# Enable android.databinding.annotationprocessor.ProcessDataBinding (DYNAMIC) | |
3 | +zipStoreBase=GRADLE_USER_HOME | |
4 | +kapt.verbose=true | |
12 | 5 | android.databinding.incremental=true |
13 | - | |
14 | -# Decrease gradle builds time | |
15 | -kapt.use.worker.api=true | |
16 | - | |
17 | -# turn off AP discovery in compile path, and therefore turn on Compile Avoidance | |
6 | +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip | |
18 | 7 | kapt.include.compile.classpath=false |
19 | - | |
20 | -# Enable In Logcat to determine Kapt | |
21 | -kapt.verbose=true | |
22 | 8 | \ No newline at end of file |
9 | +distributionPath=wrapper/dists | |
10 | +kapt.use.worker.api=true | |
11 | +kapt.incremental.apt=true | |
12 | +distributionBase=GRADLE_USER_HOME |