Project management related changes
This commit is contained in:
33
scratch/patch_invoice_builder.py
Normal file
33
scratch/patch_invoice_builder.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import re
|
||||
|
||||
with open('kifi-app/lib/features/sales/presentation/invoice_builder_screen.dart', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Read projectModeProvider to check if in Project Mode
|
||||
if "project_mode_provider.dart" not in content:
|
||||
content = content.replace("import '../../inventory/providers/products_provider.dart';", "import '../../inventory/providers/products_provider.dart';\nimport '../../projects/providers/project_mode_provider.dart';")
|
||||
|
||||
# In _buildAddLineItemDialog (inside showDialog builder)
|
||||
# Oh wait, we need to read it inside the dialog, which has `Consumer(builder: (context, dialogRef, _))`
|
||||
old_consumer = r""" Consumer\(
|
||||
builder: \(context, dialogRef, _\) \{
|
||||
final productsState = dialogRef\.watch\(productsProvider\);
|
||||
return productsState\.when\("""
|
||||
new_consumer = """ Consumer(
|
||||
builder: (context, dialogRef, _) {
|
||||
final isProjectMode = dialogRef.watch(projectModeProvider);
|
||||
final productsState = dialogRef.watch(productsProvider);
|
||||
|
||||
// In project mode, skip product selector
|
||||
if (isProjectMode) {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
|
||||
return productsState.when("""
|
||||
|
||||
content = re.sub(old_consumer, new_consumer, content)
|
||||
|
||||
# Remove Making Chg and Other Chg fields if in project mode
|
||||
# They are hardcoded as text fields. I can just wrap them in `if (!isProjectMode)` ... but `isProjectMode` isn't accessible directly unless we refactor the whole dialog.
|
||||
# Since it's inside Consumer, the whole column is NOT inside the Consumer. The text fields are outside.
|
||||
|
||||
Reference in New Issue
Block a user